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 Practical Skills
Having successfully completed this module you will be able to:
- Write programs for microcontrollers.
- Use a number of compilation tools
- Use network communications protocols for microcontrollers.
- Use a scripting language for numerical and graphical tasks
Transferable and Generic Skills
Having successfully completed this module you will be able to:
- Manage your time in a laboratory
- Record and report laboratory work
- Program
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- Debug and test programs
- Design new structured programs
- Analyse existing programs
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 |
---|---|
Specialist Laboratory | 24 |
Lecture | 24 |
Follow-up work | 12 |
Wider reading or practice | 17 |
Completion of assessment task | 51 |
Preparation for scheduled sessions | 12 |
Total study time | 140 |
Resources & Reading list
Textbooks
M. McGrath (2012). C Programming in Easy Steps. Easy Steps Limited.
R.H. Barnett et. al. (2006). Embedded C Programming and the Atmel AVR. Delmar Cengage Learning.
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 |
---|---|
Examination | 50% |
Laboratory | 50% |
Referral
This is how we’ll assess you if you don’t meet the criteria to pass this module.
Method | Percentage contribution |
---|---|
Lab Marks carried forward | 50% |
Examination | 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