Undergraduate Teaching

Engineering Tripos Part IIA Project, GF2: Software, 2019-20

Engineering Tripos Part IIA Project, GF2: Software, 2019-20

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

PDF versionPDF version


Dr A Gee

Timing and Structure

Thursdays 11-1pm, Mondays 9-11am plus afternoons (set P2) or Fridays 11-1pm, Tuesdays 9-11am plus afternoons (set P3)


Part I computing assumed


The aims of the course are to:

  • Introduce students to various issues in the development of large software systems.
  • Develop and test a logic simulator in Python.


The aim of this project is to develop a logic simulation program using the programming language Python. The project introduces students to all major phases of software engineering practice, viz. specification, design, implementation, testing and maintenance.

The project is organised in the form of a 'real life simulation'. You are asked to imagine that you have joined a software development company. You have been assigned to a team of programmers who have just begun work on a contract to develop a logic simulation program. You are given the 'client's' original requirements document and asked to produce a detailed specification for part of the system. Following this, you move onto the design stage. You are told that the program has been divided into eight functional modules and your team has been given the responsibility for designing and implementing four of them. When you have completed these, you have to integrate them with the remaining four modules of the system and test it. Finally, the client requests some changes to be made to the program and you are asked to implement these.


Students work in groups of three. Each student in the group will write different parts of a large software system, test them independently and then integrate into a complete simulator.

Week 1

Introductory exercises in Python. Lecture on formal language theory, lexical analysis, grammars and parsing. Form development team. Start designing the logic specification language.

Week 2

Finish designing the logic specification language, document it in an interim report. Familiarization with provided software modules. Software design, implementation and unit testing.

Week 3

Software design, implementation and unit testing (continued).

Week 4

Integration and testing of the complete system. Implement the client's requested modifications and write a final report.


Coursework Due date Marks

Interim report 1

4pm Saturday 16 May 2020 (set P2)

4pm Sunday 17 May 2020  (set P3)


(all group)

Interim report 2

11am Thursday 28 May 2020 (set P2)

11am Friday 29 May 2020 (set P3)


 (7 group 8 individual)

Final report

4pm Wednesday 3 June 2020 (set P2)

4pm Thursday 4 June 2020 (set P3)


(all individual)


Examination Guidelines

Please refer to Form & conduct of the examinations.

Last modified: 04/10/2019 14:03