Module 06995.2 (2004)
Syllabus page 2004/2005
06-06995
Fundamentals of Computer Science
Level 4/M C
Eike Ritter
Jim Yandle
Eike Ritter (coordinator)
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus
The Module Description is a strict subset of this Syllabus Page. (The University module description has not yet been checked against the School's.)
Relevant Links
Additional Material for part ii: Programming Methodologies
Outline
The module will explore the fundamentals of computer science, both hardware and software. Topics will include: introduction to hardware, operating systems, networking; programming languages; the software lifecycle, stages of the lifecycle, case studies; data types and algorithms.
Aims
The aims of this module are to:
- introduce some basic software engineering issues, including requirements, specification, design and testing
- develop an appreciation of the difference between good and bad software design
- introduce the main hardware components of a computer and their function
- explain the role of an operating system and system software
- give an overview of fundamental data structures and algorithms
Learning Outcomes
| On successful completion of this module, the student should be able to: | Assessed by: | |
| 1 | demonstrate knowledge of the fundamentals of computer hardware and software architectures | Examination |
| 2 | explain the differences between software engineering models and the circumstances in which each model is appropriate | Examination |
| 3 | understand the role of requirements and specifications | Examination |
| 4 | select a suitable design methodology for a given problem | Examination |
| 5 | understand the role of validation and verification and be able to evaluate and test simple programs | Examination |
| 6 | understand and be able to select from a range of data structure and associated algorithms | Examination |
| 7 | appreciate differences between basic complexity classes of algorithms | Examination |
Restrictions, Prerequisites and Corequisites
Restrictions:
None
Prerequisites:
None
Co-requisites:
None
Teaching
Teaching Methods:
4 hrs of lectures/tutorials per week in Semester 1 and 2 hrs of lectures/tutorial per week in Semester 2
Contact Hours:
Assessment
- Supplementary (where allowed): As the sessional assessment
- 3 hr examination (100%).
Recommended Books
| Title | Author(s) | Publisher, Date |
| Computer Science - a modern Introduction | L Goldschlager, A Lister | Prentice Hall, 1988 |
| Software Engineering - a practitioner's approach | R Pressman | McGraw Hill, |
| Data Structures and Algorithms in Java, 2nd Edition | M Goodrich | Wiley, 2000 |
Detailed Syllabus
-
Introduction to Computer Science
- A brief history of the development of the Stored-Program Digital Computer. The von Neumann computer.
- Computer Hardware Organisation (Central Processing Unit, Primary and Secondary Memory, Input/Output devices).
- Instruction sets (CISC, RISC); Instruction execution cycles; Memory addressing modes; Interrupts.
- System Software (Compilers, Interpreters, Assemblers, Loaders)
- Operating Systems basic functions (Device Management, Process Management, Memory Management)
- Scheduling and Synchronization.
- Networks (Topology, Security).
- Computability, complexity and correctness.
- Programming Methodology
- Importance of good Programming Methodology
- Definition of Software Engineering
- The Software Lifecycle
- Requirements and Specification
- Software Design
- Design Methodologies
- Verification and Testing
- Data Structures and Algorithms
- What is a Data Type?
- Specification and representation of Abstract Data Types
- Lists
- Index lists
- Stacks and Queues
- Sets as abstract data types
- Trees as abstract data types
- Graphs as abstract data types
Last updated: 24 Sep 2004
Source file: /internal/modules/COMSCI/2004/xml/06995.xml
Links | Outline | Aims | Outcomes | Prerequisites | Teaching | Assessment | Books | Detailed Syllabus