Ïã¸ÛÁùºÏ²Ê

XClose

Ïã¸ÛÁùºÏ²Ê Module Catalogue

Home
Menu

Principles of Programming (COMP0002)

Key information

Faculty
Faculty of Engineering Sciences
Teaching department
Computer Science
Credit value
15
Restrictions
Module delivery for UG (FHEQ Level 4) available on BSc Computer Science; MEng Computer Science; MEng Mathematical Computation.
Timetable

Alternative credit options

There are no alternative credit options available for this module.

Description

Aims:

This module provides an introduction to computer programming using two different programming styles, imperative and functional programming. Its primary aim is to develop core design, programming, and problem-solving skills, with a secondary aim of building confidence in the ability to take on and learn new programming languages within a short space of time. In order to achieve these aims the module has a substantial practical element in the form of compulsory lab classes where students work through sets of programming exercises to apply the programming concepts introduced during the module lectures.

Learning outcomes:

On successful completion of the module, a student will be able to:

  1. Design, implement, and debug small programs using two different programming paradigms, given straightforward specifications.
  2. Develop straightforward algorithms to solve a range of common programming problems.
  3. Compare and contrast the different paradigms, understanding the relative advantages and disadvantages of each.
  4. Use common programming tools such as compilers, editors and debuggers.
  5. Gain a basic understanding of how programs use computer memory, memory management, and the binary representation of data values.

Indicative content:

The following are indicative of the topics the module will typically cover:

Core Programming Concepts:

  • What is programming?
  • Programming languages.
  • Programs and algorithms.
  • Compilers and tools.
  • Running and debugging programs.

Introduction to Imperative Programming:

  • Core imperative programming ideas: sequence, selection, iteration, recursion, assignment and variables.
  • Types and type checking.
  • Functions, parameters, scope and lifetime.
  • Arrays and files.
  • Pointers, memory allocation, and memory management.

Introduction to Functional Programming:

  • Core functional programming ideas.
  • Recursion and recursive data structures such as lists.
  • Lazy evaluation.
  • Role of types.
  • Higher order functions.
  • List comprehension.
  • Recursive functions.

Program design in the small:

  • Designing and implementing small programs.
  • Implementing and using basic algorithms and data structures.
  • Good programming and design practice.

Requisites:

To be eligible to select this module as optional or elective, a student must be registered on a programme and year of study for which it is formally available.

Module deliveries for 2024/25 academic year

Intended teaching term: Term 1 ÌýÌýÌý Undergraduate (FHEQ Level 4)

Teaching and assessment

Mode of study
In person
Methods of assessment
90% Exam
10% Coursework
Mark scheme
Numeric Marks

Other information

Number of students on module in previous year
142
Module leader
Dr David Clark
Who to contact for more information
cs.undergraduate-students@ucl.ac.uk

Last updated

This module description was last updated on 19th August 2024.

Ìý