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

Module Aims

- Know how to write and debug programs using an IDE. - Understand the principles of designing structured programs. - Know when to use the appropriate statements available in the C language. - Know how to download and debug programs on an embedded target. - Understand the differences between compiled and interpreted languages

Learning Outcomes

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
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

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
Follow-up work12
Wider reading or practice42
Completion of assessment task60
Preparation for scheduled sessions12
Lecture24
Total study time150

Resources & Reading list

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

S. Kochan (2004). Programming in C. 

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

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%

Referral

MethodPercentage contribution
Coursework marks carried forward %
Exam %

Repeat Information

Repeat type: Internal & External

Share this module Facebook Google+ Twitter Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×