I have been frequently asked about the courses that I studied during my master’s, now that I’m done with all the courses. I can share my experience of the courses that I studied.
Just for the background, I had options to select from these four specialization tracks when I started my master’s
- The Embedded Electronics track which addresses the problems of integrating sensors and communication devices into SoC/ASIC and PCB-based embedded systems, with a focus on Internet of things.
- The Embedded Platforms track which addresses the problems of designing and assembling an embedded single-/multi-/many-core CPU platform, including embedded software
- The Embedded Software track which addresses the problems of designing and maintaining embedded software running on single-/multi-/many-core systems, including computer hardware fundamentals.
- The Embedded Control track which addresses the problems of designing electronics/embedded systems that are closely integrated with mechanical systems.
I studied the Embedded Electronics track but was more inclined towards PCB and circuit level design of the embedded systems, and I tried to strengthen this through the various course based and external projects. My thesis was also eventually in the same field, and my current job profile is also as Hardware Engineer.
I’ll quickly go through the courses I studied and how has been my experience has been with them.
This is a mandatory course for everyone who studies the masters in Embedded systems. The course gives an insight into the design process of Embedded Systems, the computing platform, and the implementation. The focus is also on scheduling algorithms, Real-time operating systems and hardware accelerators. The course also required learning ADA and C Programming languages for labs.
It is an interesting course, but it perhaps serves as a foundation for the people studying the embedded software track as there are follow-up courses in that track which study these topics in detail.
There are three labs associated with this course, for which students get an Altera FPGA development board to work with. I found the labs pretty interesting and they were all different from each other and gave insights into different things. The best part was the virtual machine prepared by the department for the students, which was well equipped with all the tools required to complete the labs.
I didn’t find the recommended textbook as the best source for literature, and I ended up studying most of the things from various online sources. The course lectures are quite helpful too.
This is another mandatory course (wasn’t mandatory when I studied, but I studied it), It focuses on digital hardware modeling with VHDL. It’s a pretty interesting and complete course which starts from basics and takes you to the point where you can apply those skills in building useful things. You can learn the typical design techniques for combinational circuits, asynchronous and synchronous state machines and buses.
The lab for this is also performed on an Altera FPGA development board coupled with the virtual machine which has everything you need. The labs are pretty interesting and move from basic VHDL in lab 1 to pretty advanced HDL coding in Lab 4.
A perk to this is that you get to attend the FPGA world conference and get to meet the companies working in the field.
If you have never studied HDL before, I’d suggest starting with the basics from a book “Circuit Design with VHDL Textbook by Volnei A. Pedroni”, which is available easily as a PDF on the internet. Once you have the basics, move on to the recommended textbook.
One of the best courses that I studied at KTH. Sensor based systems is a project based course, you have to perform a few lab assignments to know the basics of the things you are going to work with. Following this, you are expected to come up with a project idea which is based on Sensors, that could be building and characterizing a sensor or creating an application using multiple sensors. Once approved, you’ll need to work on the project with weekly status update meetings with the professor. There is a final presentation after the completion of the project, where everyone presents the concept of their project and illustrate it with a demo.
The best part about this course is that you get to do hands-on work and learn to use tools and machines in the lab. The course is conducted in the Mentorspace lab which has a lot of free-to-use equipment.
One of the comparatively advanced courses. If you are into Hardware design, the labs of this course will give you an idea of what you’re going to work within the industry. You get to learn about the use of HDL code styles for efficiency, simulation, timing, clock distribution and estimated overload. Restrictions on technology and optimization, interface to manufacturing and final physical synthesis flow. Static timing analysis; Concept for high-level synthesis and design flow. If you are taking this course, try not to miss any lectures as there are very fewer sources on the internet which have all the information. Also, start working on the labs well in advance as they are pretty time taking. If you are not into ASIC design and have a choice to not take this course, skip it.
One of the most interesting courses for me personally. The course is focused on the basics of Integrated Electronics. If you intend to work in Analog Mixed Signals, this course can be the first step in that direction. I really liked the content of the course, however, the course covers a wide variety of topics. If you haven’t studied these topics before, I suggest you follow the MOSFET section of the lectures by Behzad Razavi, then start studying from the book. The exercises given during the course are very very useful.
In the lab and the project, you will work on the tool that is used in Industry (Cadence Virtuoso) and will have to complete a design project.
This turned out to be one of the most useful courses (at least for me as I am working in electronic system design right now), this will give you the basic idea of the electronic things around, and how they are manufactured. This course gives you an idea of the importance of impedance matching and signal integrity in PCB design. Analysis or noise budget, designing power distribution and analyze power supply related noise; impedance matching network for RF electronic systems.
It is more of a theoretical course but gives a lot of practical knowledge of how things are done and the basics of things a person should know as an electronics engineer. The project/lab of this course is based on designing a PCB, soldering components to it and then programming the microcontroller on your PCB to implement a particular application.
The second year of masters is pretty much all mandatory and hectic.
This is an industrial Embedded Systems project sponsored and offered by a company and you need to work in teams of size 5-10 people to solve a real life problem in the period of 5 months.
The course is very practical and allows you to apply what you have learned so far to something real. Usually, four different companies come up with their own project proposals (As far as I have seen Scania and Sandvik are there and rest two change). You have to send in your application to chose a project and your role in the project. The companies allot a budget for every project.
This is a very practical, although nontechnical course. If you are going to work in the industry, you will realize how helpful this course is in getting to know about how things are done in big companies. The course teaches you planning, managing, following-up, and documenting the different phases of the project. The best part of taking this course with the Embedded Systems programme is that you don’t have to apply these skills on any imaginary project. You rather do all these activities for the Embedded Systems Design project.
This course will be very useful when you write your thesis. This course intends to enable you to explain and apply scientific methodologies, methods, as well as techniques for scientific writing, and research methodology to prepare the writing of a scientific report, as well as a degree project.
The course requires you to perform investigation and evaluation using methods, explain and take position to the results, as well as list and summarize related work. At the end of the course, you are required to present your work and perform opposition on someone else’s work.
This was the elective course that I took during the second year, honestly, I selected this course just because I wanted to fabricate something in the clean room. But it turned out to be much more knowledgeable and nice. 90% of students who have studied this course in the past rate this course as the top 15% of the courses they have studied at KTH.
This course includes just 4 lectures which are finished in the first week of the course. Thereafter you are given a real world problem which has to be solved by developing different concepts of microsystem actuators. You need to design concepts under consideration of fabrication-technology limitations. After one month of weekly tasks, which are perhaps four stages of reaching the final design. You send your designs for preparing the masks for fabrication.
After the very intense first month, the second month needs your four days for fabricating the design in the clean room (which is a fun part) and then testing and characterizing your fabricated designs. So in a span of two months, you get to learn a new thing, design it, fabricate it, and test it. The course has no exams, and your grades are decided on the basis or your work and your final presentation and report.
Few more recommended electives
- Embedded Software (IL2212): Recommended for anyone with interest in RTOS and Embedded Software.
- Analog-Digital Interfaces (IL2239): Highly recommended for people who want to work in the field of Analog Mixed Signal Design.
- Microsystem Technology (EK2350): Another course which involves learning to design MEMS sensors and fabricating them in the clean room.
- RFID Systems (IS2500): One of the best options for elective courses, another project based course. Highly recommended.
- System Design Languages (IL2452): If you want to build a career in Embedded Platforms, this is the course you should take in the second year. Knowledge of SystemC can help in building virtual platforms that are beneficial for behavioral testing of software before hardware has been manufactured. It is also used as input to High level Synthesis tools