Module 06-21978 (2014)
ICY Introduction to Computer Science
Level 1/C I
|Steven Vickers||Semester 1||10 credits|
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
On successful completion of this module, the student should be able to:
- Demonstrate knowledge of the fundamentals of computer hardware and software architectures
- Explain the relation between high level and low level code
- Explain and apply basic principles for reasoning about high level code
- 06-21933 - Fundamentals Intro to Computer Science
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%)
- CPUs and stored programs.
- Subroutines and stacks.
- High and low level; compilers, interpreters.
- Java Virtual Machine (JVM) and bytecode.
- Objects in JVM.
- Instance invariants.
- Loop invariants.
- Reasoning with recursion.
- Computability and complexity.