Skip to main content

Unit information: Introduction to Computer Programming in 2019/20

Please note: Due to alternative arrangements for teaching and assessment in place from 18 March 2020 to mitigate against the restrictions in place due to COVID-19, information shown for 2019/20 may not always be accurate.

Please note: you are viewing unit and programme information for a past academic year. Please see the current academic year for up to date information.

Unit name Introduction to Computer Programming
Unit code EMAT10007
Credit points 10
Level of study C/4
Teaching block(s) Teaching Block 1 (weeks 1 - 12)
Unit director Dr. Hauser
Open unit status Not open


To emphasise: the unit assumes no prior knowledge of computer programming. Students should have some prior experience of using a PC for basic email, web browsing and word processing tasks.



Some basic aptitude in systematic and logical thinking is needed, which we anticipate most undergraduates at the University of Bristol will have.

School/department Department of Engineering Mathematics
Faculty Faculty of Engineering

Description including Unit Aims

The purpose of this unit is to provide students with a basic and accessible introduction to computer programming - assuming no prior experience of it.

The aims are to:
• Understand the basic principles, concepts and terminology used in computer programming. So for example, a student who might have to manage software engineers in later life has some appreciation of what they do - even if programming is not that individual's own speciality.
• Give a basic introduction to designing and building short computer programs.
• Translate high-level "problem statements" into algorithms which can then be implemented as a computer program.
• For Engineers, Scientists, Mathematicians: provide first steps in computing to feed into more advanced and technical programming units later on.

The course will be delivered using "Python" - see which is fully functional scripting language. Over the last few years, Python has become one of the most popular programming languages in the world - yet, it is still a relatively "simple" language, accessible to students with no background in computer programming. The unit will cover the basic principles of sequential (procedural) programming, namely input/output, variables, data types, conditionals, iteration, exceptions and functions. Throughout there will be a focus on the principles of good programming practice, such as design and debugging

In summary, the unit will aim to help students (whether or not they require computer programming as a core element of their undergraduate degrees) to feel confident of their ability to create programs that allow them to accomplish useful goals, and to make profitable use of computational methods in later life.

Intended Learning Outcomes

On successful completion of this unit, students will be able to:

1) Apply the process of designing, writing and debugging a program.

2) Move from a problem statement to a computational formulation of an algorithm for solving a practical problem.

3) Use and understand basic computer programming terminology.

4) Employ good programming practice in the creation of computer programs.

5) Use basic procedural programming constructs appropriately, with correct syntax.

Teaching Information

Lectures and hands-on computer laboratory sessions.

Assessment Information

Summative Assessments:

Test: Elementary Concepts and Syntax (20%)

Coursework: Building Programmes (20%)

Coursework: Python Programming Project (60%).

There will also be ample opportunity for students to obtain feedback, through weekly formative worksheets (0%).

Reading and References

  • Dawson, Mike. Python Programming for the Absolute Beginner. Course Technology PTR, 2010.
  • Guttag, John. Introduction to Computation and Programming Using Python. MIT Press, 2013.
  • Code Academy: Learn to Code. (Excellent resource for learning Python)