UGS Bridging Materials

Introduction

The BSc Computing Science degree programme assumes you have expertise in a range of core Computer Science technologies. Many of these you will already know well, but in preparation for starting the programme you should learn, or refresh your familiarity with, them as detailed below.

This is self-directed study. Feel free to discuss with your fellow students, but you should not need to discuss with academic staff.

Many of the resources are available on the web, and most of the books are available to you in the Republic Polytechnic Library.

Java

You should have a good standard of Java programming. You may wish to refresh your Java skills by studying Absolute Java, or some other introductory Java text.

Python

You should familiarise yourself with Python. The following three resources are recommended for this:

C

You should familiarise themselves with the C programming language (not C++). Students are recommended to study the first 4 chapters of Kernighan and Ritchie:
Kernighan; Dennis Ritchie (March 1988). The C Programming Language (2nd ed.). Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110362-8.

Swing

You should have a good working knowledge of the Java Swing GUI toolkit as detailed in the Swing Worksheet.

Algorithms and Data Structures

You should have a deep knowledge of Algorithms and Data Structures (ADS), including the analysis of algorithms. The most useful material here is the second year BSc Computing Science Algorithms and Data Structures (ADS2) course delivered in Glasgow. As you are studying independently some of the material is not relevant for you.

You're encouraged to obtain a copy of the course text Data Structures and Algorithms in Java, 4th Edition by Goodrich and Tamassia. Many lectures contain references to the relevant sections of the book, and you are strongly encouraged to read them.

The topics of the ADS2 course you should cover are listed below.

  • Introduction
  • Linked Lists
  • Recursion
  • Analysis of Algorithms
  • Stacks and Queues
  • Lists & Iterators & Comparators
  • Binary Trees & Trees (Splay trees are optional)
  • Priority Queues
  • Sorting
  • Hash Tables