School of Computer Science

Module 06-21978 (2014)

ICY Introduction to Computer Science

Level 1/C I

Steven Vickers Semester 1 10 credits
Co-ordinator: Steven Vickers
Reviewer: Uday Reddy

The Module Description is a strict subset of this Syllabus Page.


The module will explore the broader context of programming, in particular in Java, at both lower levels (hardware and software) and higher (logical). Topics will include: introduction to computer architecture and low level code, programming by contract and invariants.


The aims of this module are to:

  • Introduce the fundamentals of stored program computing
  • Introduce the reasoning principles for object-oriented computing

Learning Outcomes

On successful completion of this module, the student should be able to:

  1. Demonstrate knowledge of the fundamentals of computer hardware and software architectures
  2. Explain the relation between high level and low level code
  3. Explain and apply basic principles for reasoning about high level code



Taught with

  • 06-21933 - Fundamentals Intro to Computer Science

Teaching methods

2 hrs lectures/tutorials per week

Contact Hours: 24


Sessional: 1.5 hour examination (80%), continuous assessment (20%)

Supplementary (where allowed): 1.5 hour examination (100%)

Detailed Syllabus

  1. Numbers.
  2. Memory.
  3. CPUs and stored programs.
  4. Subroutines and stacks.
  5. High and low level; compilers, interpreters.
  6. Java Virtual Machine (JVM) and bytecode.
  7. Objects in JVM.
  8. Instance invariants.
  9. Loop invariants.
  10. Reasoning with recursion.
  11. Computability and complexity.

Programmes containing this module