Skip to main navigationSkip to main content
The University of Southampton
Courses

ELEC1201 Programming

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
  • Design new structured programs
  • Debug and test programs
Transferable and Generic Skills

Having successfully completed this module you will be able to:

  • Program
  • Manage your time in a laboratory
  • Record and report laboratory work
Subject Specific Practical Skills

Having successfully completed this module you will be able to:

  • Write programs to execute on an AVR microcontroller
  • Communicate with an AVR microcontroller using simple serial protocols
  • Interact with the physical world using an AVR microcontroller
  • Use a number of compilation tools
  • Use a scripting language for numerical and graphical tasks

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

TypeHours
Completion of assessment task60
Follow-up work12
Wider reading or practice42
Lecture24
Preparation for scheduled sessions12
Total study time150

Resources & Reading list

R.H. Barnett et. al. (2006). Embedded C Programming and the Atmel AVR. 

M. McGrath (2012). C Programming in Easy Steps. 

S. Kochan (2004). Programming in C. 

Assessment

Assessment Strategy

These technical labs consider C programming and embedded C programming, addressing the above-listed learning outcomes. They are conducted under the umbrella of ELEC1029 but the marks contribute towards this module. The design exercise considers circuits and programming, addressing the above-listed learning outcomes, as well as those of ELEC1200. It is conducted under the umbrella of ELEC1029 but the marks contribute towards this module and ELEC1200.

Summative

MethodPercentage contribution
Design Exercise 15%
In-class Test 20%
In-class Test 20%
Technical Laboratories 20%
Technical Laboratories 25%

Repeat

MethodPercentage contribution
Coursework 50%
Examination 50%

Referral

MethodPercentage contribution
Coursework 50%
Examination 50%

Repeat Information

Repeat type: Internal & External

Share this module Share this on Facebook Share this on Twitter Share this on Weibo
Privacy Settings