Undergraduate Teaching 2022-23

Engineering Tripos Part IA, 1P4: Computing, 2017-18

Engineering Tripos Part IA, 1P4: Computing, 2017-18

Not logged in. More information may be available... Login via Raven / direct.

PDF versionPDF version

Course leader

Dr Garth N. Wells

Lab leader

Tim Love

Timing and Structure

Michaelmas Term: week 1, 1 introductory lecture; weeks 2-, 12 independent exercises: Lent Term: week 1, 1 lecture; weeks 2-, group exercise




The aims of the course are to:

  • Introduce students to computing for engineering applications.
  • Introduction to programming in Python.
  • Enable students to devise and implement algorithms to compute solutions to problems.
  • Develop good software engineering skills.
  • Develop skills for team-based software development, including use of version control.


As specific objectives, by the end of the course students should be able to:

  • Describe using text and mathematics the purpose and flow of a program.
  • Write and run Python progams in (i) Jupyter notebooks and (ii) from multiple source files.
  • Understand variables, assignment, simple operators and precedence.
  • Appreciate the importance of types and the pitfalls of round-off error and floating point arithmetic.
  • Use of data structures and libraries.
  • Understand the concept of an algorithm and algorithmic complexity.
  • Apply error handling and unit testing as part of good software engineering practice.
  • Develop skills for numerical computing for engineering applications.
  • Be able to develop simple object-oriented data structures.
  • Fetch data from different sources, and manipulate the data and display graphically.


Michaelmas Term

The Michaelmas Term part of the course involves 12 activities for self-study, and each activity has exercises to be completed. The exercises for at least the first six activities must be competed by the middle of the Term and will be checked at a sign-up session, and the remainder must be competed by the sign-up session at the end of the Term.  

  • Familiarisation with the Jupyter environment for Python, including use of LaTeX for displaying mathematics
  • Variables and assignment of values
  • Control statements (if, for and while)
  • Types and floating point arithmetic
  • Functions
  • Libraries
  • Numerical computation, including array processing
  • Data plotting
  • Code testing and error handling
  • Algorithms
  • Complexity
  • Data structures
  • Object oriented design

Lent Term

The Lent Term activity is a group exercise, with students working in pairs. Each student takes charge of writing part of a software solution. A modular design and unit testing are required to ensure that the two parts work together correctly. 

  • Problem solving using abstraction and modularisation
  • Structured programming and program modularisation using functions
  • Using data structures
  • Using library functions and handling exceptions
  • Developing and running programs written in multiple source files
  • Use of git for version control

Further notes

There are separate web pages associated with each Term's coursework:



Examples papers

There are two examples papers: the first one is issued over the Christmas vacation, the second over the Easter vacation.


Please see the Booklist for Part IA Courses for module references.

Examination Guidelines

Please refer to Form & conduct of the examinations.

Last modified: 12/12/2017 06:43