If you find any data displayed on this website that should be amended, please contact the Curriculum Management Team.

Module Title

LC Foundations of Computer Science

School

Computer Science

Department

Computer Science

Module Code

06 22754

Module Lead

Dr DR Ghica, Dr JA Bullinaria

Level

Certificate Level

Credits

20

Semester

Full Term

Pre-requisites

Co-requisites

Restrictions

None

Contact Hours

Practical Classes and workshops-22 hours
Lecture-45 hours Total: 67 hours

Exclusions

Description

The module will introduce the fundamental concepts of Computer Science, such as the representation of data in computer memory, programming constructs, data models and data structures and the analysis of algorithms. The ideas will be presented abstractly, although examples will be given in the language used in the parallel programming workshop modules

Learning Outcomes

By the end of the module the student should be able to:

Demonstrate understanding of the principles of algorithmic programming;

Demonstrate understanding of abstract models of data and computation;

Make informed choices between alternative ways of implementation, justifying choices on grounds such as time and space complexity or considerations of numerical accuracy;

Explain and apply data structures such as binary trees, heap-trees, graphs and tables, together with their internal representations and relevant algorithms;

Select, with justification, appropriate data structures to ensure efficient implementation of an algorithm (e.g. searching, insertion, deletion or sorting);

Explain the differences between basic complexity classes of algorithms (constant, linear, quadratic, logarithmic, exponential);

Argue that algorithms are correct, and derive their time complexity;

Select, with justification, appropriate algorithms for basic tasks such as searching, including reference to the algorithm's complexity class.

Adamson I, Data Structures & Algorithms: A First Course, 1997;
Goldschlager L & Lister A, Computer Science, a Modern Introduction, Prentice Hall, 1988;
Detailed module notes will be provided;
Brookshear, Computing Science: an Overview, Addison-Wesley;
Horstmann C S, Computing Concepts with Java Essentials, 1998;
Collins W J, Data Structures: An Object-Oriented Approach, 1992;
Aho A V & Ullman J D, Foundations of Computer Science in C, Freeman & Co..
Standish T A, Data Structures in Java, 1997;