Below is the description of a course I’ll be teaching in the spring. It’s the first time I’ve been able to teach a special topics course (i.e., have complete control of the content of the course), and I’m really looking forward to it.
CSci490: Embedded Development
Instructor: Ben Pharr
M W 5:30 PM – 6:45pm
Weir 235
Embedded systems are all around us and are becoming more common by the day. Embedded systems typically perform a few dedicated functions as part of a larger system such as a vehicle, appliance, vending machine, etc. They are often resource constrained in some way, yet must respond in near real-time to events happening in the physical world. Obviously, developing for these systems can be quite different from developing in Java for a desktop application.
This class will use the Arduino hardware to explore embedded development. The Arduino is a development board powered by an Atmel AVR ATmega328 microcontroller. It runs at 16 MHz and has 2kB of SRAM and 32kB of flash.
Instead of the usual Arduino language, we will use ANSI C in order to build skills that are transferable to other embedded platforms.
Topics will include:
- The C Programming Language
- Data Representation
- Computer architecture
- General Purpose Input/Output
- Basic electronic concepts
- Timers
- Pulse width modulation
- Analog to Digital Conversion (ADC)
- Interrupts
- Serial communication
- Embedded debugging and troubleshooting
Textbook:
Introduction to Embedded Systems: Using ANSI C and the Arduino Development Environment
Morgan and Claypool Publishers (July 12, 2010)
ISBN: 978-1608454983
Related links:
http://arduino.cc/en/
http://arduino.cc/en/Main/ArduinoBoardUno
Sounds fun. I’d take it if I were still in Oxford. :)
Interesting… I’m guessing the students are required to buy a small arduino kit? I think they need more of this in CS!
They have to buy an Arduino and a breadboard. We’re going to provide everything else except for components for the final project.