CS 3420 - Embedded Systems

General Information

You will have to take either this course, or CS 3410 - Computer System Organization and Programming. Generally, people who have taken ECE 2300 will take this course instead of 3410. You learn the basics of how high level code can be expressed through assembly, and relevant topics such as concurrency, stacks, interrupts, etc.


ECE 2300 - Digital Logic and Computer Organization

This is strongly encouraged, as basic knowledge of CPU functionality will be assumed.

Topics Covered

  • Assembly language programming
  • Interrupts and I/O
  • Managing interrupts: Concurrency
  • Concurrency models
  • Tasks/threads
  • Synchronization
  • Real-time constraints and scheduling
  • Communication
  • Data conversion
  • Case studies


You will using the MSP430 Development Tool by Texas Instruments for all your labs. Labs mainly consist of implementing certain concepts learned in class, using C, and testing them with the MSP430. Homeworks are short, and are generally questions explicitly on lecture material.

Overall workload is fairly light, although debugging the labs can be tedious. Make use of office hours and TAs, they will generally cut down your debugging time by an order of magnitude.

General Advice

Don’t wait to do your labs!

The labs and lectures go very hand in hand; if you finish your lab early, make sure that all of your implementation matches up with what you were taught in lecture! This caught a lot of people off guard for the first couple labs


This course changed significantly after Spring 2010, so I can’t comment on it.

Spring 2015 - Taught by Prof. Jose Martinez. Great lecturer, may be the best I’ve had. He’s actually holds 2-3 degrees in CS and half or more of the class is CS majors so its a great introduction to lower level programming taught by someone who knows just about anything you think of in the subject.

Took it with Martinez too. Class wasn’t too much work at all, there are roughly weekly quizzes, two prelims, a final project and no final exam. The only problem was that there were really sparse lecture notes, so you had to pay close attention in class/videonotes and also write good notes to do well.

Videonotes are a lifesaver. Martinez is the best professor I have had at Cornell and his lectures are very engaging. Make sure to participate a lot in class and ask questions when they come up, as he is very good at addressing student inquiries. It is a shame that no other semesters will have Skand as the head TA ):

Past Offerings

Semester Time Professor Median Grade Course Page
Spring 2010 - Douglas Long B+ -
Spring 2012 - Rajit Manohar - http://www.csl.cornell.edu/courses/ece3140/ (link is broken)
Spring 2014 - José F. Martínez B -
Spring 2015 - José F. Martínez B -


If you can hack the server then this is almost the best resource you can get http://www.csl.cornell.edu/courses/ece3140/

Textbook: http://www.sciencedirect.com/science/book/9780750682763

Edit this page on Github: classes/CS3420.md

Edit me on GitHub