← Teaching

Introduction to Programming Y1, 40cr

Overview

This unit introduces students to the theory and practice of writing computer programs, covering both algorithm development and object-oriented programming. No previous knowledge of programming is assumed. Techniques of program design focusing on algorithm development are taught alongside the Python programming language and object-oriented design alongside Java.

Aims

  1. To develop an understanding of algorithm development and procedural programming with emphasis on problem solving and readability.
  2. To develop good object-oriented design and coding practices in order to produce programs using classes and objects as the fundamental building blocks.
  3. To provide a foundation for learning further programming techniques and languages.

Learning Outcomes

  1. Design, implement and test algorithms to solve problems using appropriate data types and control structures.
  2. Design, implement and test object-oriented programs based on a supplied specification.
  3. Describe and analyse fundamental programming concepts and techniques.

Syllabus

  1. The program development lifecycle (design, code, test, debug, documentation).
  2. Fundamental data types and operations: numeric, string, boolean, collections.
  3. Program modularity: the use of functions.
  4. Control structures: decisions and loops.
  5. Classes and objects.
  6. Using library classes and designing for reuse.
  7. Objects working together and message passing.
  8. Design and design notations.
  9. Inheritance.
  10. Algorithm design and recursion.