Module overview
To introduce the student to the concepts of programming using the C programming language, with an emphasis on programming for embedded systems.
Aims and Objectives
Learning Outcomes
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Analyse existing programs
- Debug and test programs
- Design new structured programs
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Program
- Record and report laboratory work
- Manage your time in a laboratory
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- Write programs for microcontrollers.
- Use a scripting language for numerical and graphical tasks
- Use a number of compilation tools
- Use network communications protocols for microcontrollers.
Syllabus
Basic concepts:
- Storage and CPU
- Data movement
- Flow control
- Input/output
Program design:
- Structured programming
- Function decomposition
- Data representation
- Hardware/software decomposition
- Testability
Software development:
- C Programming under Windows and Linux
- IDEs and command line tools
- Debugging
- Static analysis
- Testing
Embedded software development on the AVR microcontroller:
- C programming
- Assembly language
- AVR instruction set
- Digital interfacing (De-bouncing, parallel and serial IO)
- Analogue interfacing (ADC, PWM)
- Timers and counters
- Interrupts
Simple communications:
- UART (for communications and debugging)
- I2C
- SPI
- JTAG (for programming and OCD)
Learning and Teaching
Teaching and learning methods
The content of this module is delivered through lectures, module website, directed reading, pre-recorded materials and tutorials.
Students work on their understanding through a combination of independent study, preparation for timetabled activities, discussion seminars, tutorials and in-class tests.
Students work on their practical skills, professional skills and technical understanding in technical laboratories.
Type | Hours |
---|---|
Follow-up work | 12 |
Wider reading or practice | 17 |
Lecture | 24 |
Specialist Laboratory | 24 |
Completion of assessment task | 51 |
Preparation for scheduled sessions | 12 |
Total study time | 140 |
Resources & Reading list
Textbooks
R.H. Barnett et. al. (2006). Embedded C Programming and the Atmel AVR. Delmar Cengage Learning.
M. McGrath (2012). C Programming in Easy Steps. Easy Steps Limited.
S. Kochan (2004). Programming in C. Pearson.
Assessment
Assessment strategy
This module is assessed by a combination of examination and assessed laboratories. The Laboratory assessments on this module include in-semester opportunities for redeeming failure. These marks are carried forward to the Supplementary Assessment period.
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Laboratory | 50% |
Examination | 50% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Examination | 50% |
Lab Marks carried forward | 50% |
Repeat
An internal repeat is where you take all of your modules again, including any you passed. An external repeat is where you only re-take the modules you failed.
Method | Percentage contribution |
---|---|
Examination | 50% |
Coursework | 50% |
Repeat Information
Repeat type: Internal