CSCI 3410 Syllabus

The purpose of this course is to engage computer science undergraduates and graduates with hardware and embedded systems. While CS students get a strong conceptual overview of systems and hardware in various organization and architecture courses, many students have never experienced actually working with hardware. This course will focus on hands-on projects (through homework, labs and final project) involving both hardware and low-level software. This course will discuss the design issues in an embedded system and the technologies needed to support such systems (with the focus on the software aspects). In addition, we will also cover a gamut of real-time embedded systems-related topics. The class can be taken for graduate and undergraduate credit, the work load being scaled appropriately. Updated for Spring 2009.


Office hours

  • The hour just before class in the classroom
  • By appointment

Class time/place

  • Tuesdays 6:10-8:40pm (note the new times), Tompkins 211




  • Each of these will be graded at 25% of the total and your final grade will be based on the best 4 of the 5 
    • Labs 
    • Exercises
    • Mid Term
    • Final
    • Project

Useful things to remember

Class Topics

  • Intro to labs
  • Hardware fundamentals for the software engineer
  • Microprocessors & microcontrollers
  • General purpose IO
  • Interrupts
  • Assembly Language, Registers, Memory
  • Debugging embedded systems
  • Timers
  • Software Architecture for embedded systems
  • Serial communications: I2C, SPI IrDA, Uarts
  • Analog IO
  • Basics of embedded hardware
  • Operating System services
  • Development Tools
  • Networked embedded systems