Monthly Archives: August 2014

Master of Science in Computer Science

After 1 year and 8 months of being a Graduate Student at Kansas State University and Research Assistant at SAnToS Lab Research Group I got my Master of Science degree.

Courses I took:

In my first semester as a Graduate Research Assistant at SAnToS Lab I was working on integration Bakar Kiasan with GNAT Programming Studio (using Python and PyGTK).

In Summer 2013 I started my actual research work, which is captured in my Master Thesis: A Model-Driven Development and Verification Approach for Medical Devices. The main problem of my research was to propose translation of AADL/BLESS models to SPARK Ada programming language. I created PCA Pump Prototype for BeagleBoard-xM platform, by translating already existing models (using translations developed by me), and performed verification (static analysis) using SPARK Verification Tools.

This is a video from my defense:

Unfortunately, QuickTime crashed 3 minutes before the end. Fortunately, you can catch up with slides.

I created additional video with PCA Pump Prototype demonstration. Pump is developed in SPARK Ada, and it runs on BeagleBoard-xM platform.

Patient Controlled Analgesia (PCA) pump is a medical device, which allows the patient to self-administer small doses of narcotics (usually Morphine, Dilaudid, Demerol, or Fentanyl). PCA pumps are commonly used after surgery to provide a more effective method of pain control than periodic injections of narcotics. A continuous infusion (called a basal rate) permits the patient to receive a continuous infusion of pain medication. Patient can also request additional boluses, but only in specified intervals. It prevents from overinfusion. In addition to basal and patient bolus, clinician can also request bolus called clinician bolus or square bolus.

My Master Thesis in PDF format can be found here. LaTeX source is available here.

I spent 2 years at Kansas State University (4 months as an Exchange Student, and 20 months as a Graduate Student). I had very good time and I learnt a lot. I really recommend to get Master degree from a different University than you get your Bachelor. Wroclaw University of Technology (where I got my Bachelor) is more practical. Graduates are ready to work at the industry. Kansas State is more theoretical and research oriented. I had an opportunity to experience both and I am very happy with that!

C# in Nutshell

C# 5.0 in a Nutshell: The Definitive Reference

C# 5.0 in a Nutshell is a great reference book about C#. Furthermore, it is worth to read it from the beginning to the end, to understand how C# works and to get familiar with the language features (can be used in the future as a reference). This book describes many features, which I have never used (after over 4 years programming in C#) like some XML serializers, COM interoperability or advanced threading/tasking techniques. Now, I know about them and where to look if needed.

This book is rather for experienced C# programmers. I do not recommend it as “first C# book”. It has a lot of examples, but the structure is rather encyclopedia style, than discovering the language from the basics. For beginner I would recommend Sams Teach Yourself Visual C# 2010 in 24 Hours.

C# in Nutshell has 1064 pages! Although it takes a while to read, it is worth your time if you think seriously about becoming good C# programmer. There are very detailed overviews and analysis of the language, supported by examples. If you do not want to spend time reading entire book, I recommend to use it as a reference and start learning about concrete feature, which you need at the time, from specific chapter in this book.

Why we read

Recommended Build 2014 sessions

build 2014

Finally, I had time to watch Build 2014 sessions. Here are the best I have seen.

Thinking for programmers (Leslie Lamport)

This session is intersection of Computer Science and programming. It will really makes you rethink your approach for solving problems and writing code. One of many interesting thoughts mentioned by Leslie Lamport was a role of specification. It is hard to disagree that in case of very complex code, need for change, after a few months or years, or by other programmer, will cause rewriting code for scratch if we do not have specification. I am recommending this session, because it is not demo of some new Microsoft tool/technology, but a solid piece of knowledge. It is not session for everybody, some may not like it. I love it!

Windows and the Internet of Things (Steve Teixeira)

This session is about writing Software for devices. But not only for PC, tablet or Phone. Also for embedded devices, or customized devices running on Windows Embedded. It is an overview of the future. Not only in Windows World, but at all. Steve Teixeira shows cool demos. E.g. controlling traffic lights using the Phone. He presents Intel Galileo, board which you can get for free by signing up! Only limited number available.

Building Azure Web Sites with Visual Studio Online “Monaco” (Chris Dias)

Visual Studio in Web Browser? I’m in! I am very impressed with progress which is being made in online version of Visual Studio. In addition to simple edits, there is a command line access, intellisense, git integration, side by side file comparison and more.

What’s New for ASP.NET and Web in Visual Studio 2013 Update 2 and Beyond (Scott Hanselman and Scott Hunter)

This is an update of ASP.NET features and future directions. Now, it really starts looking like LEGO pieces. If you are Web Developer, definitely worth to see.

Modern C++: What You Need to Know (Herb Sutter)

This talk is an overview of new features of C++. There is also 10-20 minutes about performance. Recommended if you are not familiar with new C++ features yet. For me, this session could be shorter, and some things could be skipped.

The Future of C# [and VB] (Dustin Campbel and Mads Torgersen)

First part (presented by Dustin Campbel) is about Roslyn. There is demo how custom code diagnostics can be created. Second part (presented by Mads Torgersen) is about new language features. My observation is that they started adding weird things to the language syntax. More over, Mads talk also about Visual Basic (for ~5 mins), which – as he claims – has a future as well. Mads already had similar session on other conferences (dotNetConf, NDC).

Go Mobile with C# and Xamarin (Miguel de Icaza)

Good introduction to Xamarin if you are not familiar with it. There is general overview and philosophy explained. There is also short demo. Good point to get started with Xamarin!

TypeScript (Anders Hejlsberg)

Anders Hejlsberg announced TypeScript 1.0. This session is an overview of TypeScript presented in a very solid way. Timestamped draft notes of the entire talk can be found here.

Developing Neural Networks Using Visual Studio (James McCaffrey)

This session is worth to see at least for first 8 minutes when James is summarizing entire build conference 🙂 The main content is good intro to Neural Networks. It awakened my desire to learn more about Artificial Intelligence and Machine Learning.

I’ve seen also: Building a Large Scale JavaScript Application in TypeScript (only slides, no code…), Building a Single Page Application with ASP.NET and AngularJS (I am not a fan of pasting large chunks of code during demos), Avoiding Cloud Fail: Learning from the Mistakes of Azure with Mark Russinovich (advanced, useful if you use Azure intensively), Building Modern Web Applications with Visual Studio and Web Essentials (just update in new Web Essentials features).