Peter Siepmann PhD, LRSM, ARCO

BSc Computer Science Notes

From October 2002 - June 2005, I was an undergraduate in the School of Computer Science and  Information Technology at the University of Nottingham reading for the honours degree of Bachelor of Science in Computer Science. This page contains an extensive collection of revision materials which other students may find useful. I've also provided a very brief blurb about each module. As you can see, I vastly prefered the more scientific, formal, mathematics- or programming-based modules to the wishy-washy 'design principals' ones!

Marks [Details]
S1 - Semester I; S2 - Semester II; S3 - year-long modules
Year One: 88% (S1: 85%, S2: 91%, S3: 89%)
Year Two: 79% (S1: 82%, S2: 77%, S3: 76%)
Year Three: 74% (S1: 76%, S2: 78%, S3: 69%)
Cumulative mark: 76%

Revision Materials

The following material is merely from my own personal revision. It is not guaranteed to be 100% correct. There are no notes for modules assessed purely by coursework. The revision notes are based closely on the lecture notes for the module.

Nottingham undergraduates, please note also that modules will obviously change over the years (content, lecturer, etc.) and that my notes (and any opinions expressed below) are, of course, based only on my experience during 2002-5.

If you find these notes useful, I would be very grateful for any donations towards hosting, etc. of this material.

Also, please feel free to leave comments in the guestbook.


Semester: [I] [II] [III] [IV] [V] [VI]


Semester One

G51PRG: Programming (Semester I and II) [Revision Notes]
This module is an introduction to Programming designed suitable for those with no previous experience. The teaching language is Java. I found this module very interesting, engaging and well-taught (Dr Colin Higgins)

G51CUA: Computer Use and Applications [Revision Notes]
A bit of a doss module, although the labs were good, espeically Build a Computer. Didn't really learn much.

G51CSA: Computer Systems Architecture  [Revision Notes]
A general introduction to low-level computing - binary, processor instructions, etc. Well organised and interesting.

G51MCS: Mathematics for Computer Science  [Revision Notes]
Included Propositional and Predicate logic (and the proof checker, Tutch), Inductive proofs and set theory. Pretty tough but made easy by the excellent teaching of Dr Thorsten Altenkirch.

G5AIAI: Introduction to Artificial Intellienge [Revision Notes]
An introduction to basic AI methods such as blind and heuristic searches as well as general thinking points such as the Turing Test and related arguments. An interesting module. Coursework was programming intensive which was very hard seeing as many of the students were new to programming, but it forced us to learn more programming which was good!


Semester Two


G51FUN: Functional Programming [Revision Notes]
A thourough introduction to Haskell. Very interesting, very hard but very rewarding when you finally 'get' it. Outstanding teaching from Dr Graham Hutton.

G51MAL: Machines and their Languages [Revision Notes]
Included an introduction to automata and language theory - grammars, parsing, etc. Surprisingly interesting!

G51MC2: Mathematics for Computer Science II [Revision Notes]
Proof, Vectors, Matrices, Graphs and Probability. Pretty mundane stuff, really - a lot of 'A' level revision.

G51SWT: Software Methods and Tools [Revision Notes]
An introduction to UNIX shell scripting, CVS and Perl. I loved learning Perl - it's a great language but I'm a PHP convert, now :) Also included a bunch of tedious Software Development stuff (development lifecycles, etc.).

G5AIVI: Introduction to Image and Vision Processing [Revision Notes]
An introduction to image processing techniques - manipulation, filtering, effects. Pretty programming intensive and really interesting. It's ridiculously satisfying writing a program to do something cool with an image :)


Semester Three

G52GRP: Group Project (Semesters III & IV) [Group Report] [Individual Report]
Our project, supervised by the very approachable Prof David Brailsford, was to build a web-based coursework submission system. More details in the reports. I found doing this project very enjoyable (I had a terrific group) and arguably learnt more from it than any other module.

G52DBS: Database Systems [Revision Notes]
A comprehensive introduction to databases - theory, design and implementation. Interesting, extremely useful, and very well taught by Dr Steve Mills.

G5BADS: Algorithms and Data Structures [Revision Notes & ADTs]
An overview of the implementation of common algorithms and data structures as well as concepts such as efficiency and time/space complexity. Although a bit dull at times, in the end I found this module pretty interesting.

G52CCN: Computer Communication and Networks [Revision Notes] [Supplemental Notes]
A fascinating introduction to networkings. I'm really interesting in this so maybe that's why I enjoyed it so much!

G5BDOC: Digital Documents
A fascinating introduction to what documents actually are. We learnt type-setting languages such as Troff, LaTeX and even PostScript as well as XML and it's related technologies (parsers, XSLT, etc.) Hard, programming intensive, MASSIVE courseworks (there is no exam), but very interesting.

G5BUID: User Interface Design
A rather tedious look at user interfaces. Coursework One involves programming an interface in Java Swing which was fun, but the rest of it was pretty dull.


Semester Four

G52OBJ: Object-oriented Methods [Revision Notes] [Supplemental Notes]
Basically, an entire module devoted to UML and Software Development concepts. Very dull but I'm told this stuff is important in industry.

G52CMP: Compilers [Revision Notes]
A thourough introduction to the Compilers - what they are and how they work. Illustrated by both Haskell and Java. Pretty tough going at times, but rather interesting. Excellent java programming coursework.

G52CSD: Commercial Systems Design [Revision Notes]
Introduction to system design/development principles. Like OBJ, incredibly dull, but important in industry.

G52CON: Concepts of Concurrency [Revision Notes] [Supplemental Notes]
An interesting, but pretty tough, look at the issues involved in running concurrent programs. Well organised and taught by Dr Brian Logan. Interesting java programming coursework.

G5BCFJ: C/C++ for Java Programmers
Hard, badly-taught, but very useful. Two massive programming courseworks (very hard to start but very satisfying when it works!).


Semester Five

G53IDS: Individual Dissertation (Semesters V & VI) [Dissertation]

G53CAS: Crytography [Revision Notes] [Supplemental Notes]
An interesting introduction to the theory and implementation of both ancient and modern methods of crytography. Lots of maths :)

G5CSEC: Computer Security [Revision Notes] [Supplemental Notes]
A pretty dull look at the ideas behind computer security. One large practical coursework with which no technical assistance was given.

G53POP: Principals of Programming Languages [Revision Notes] [Supplemental Notes]
An interesting look at the low level mathematical and functional concepts behind programming languages and their syntax and semantics. Characteristically excellent teaching from Dr Graham Hutton.

G53SRP: System & Real-time programming [Revision Notes]
Concentrates on the issues involved in real-time programming. Not particularly good or bad!


Semester Six


G53ELC: Enterprise Level Computing [Course Notes]
A module full of things useful in industry including databases, scripting languages, sevlets, components, web services and other useful bits and bobs.

G53ACC: Advanced Computer Communication [Revision Notes] [Supplemental Notes]
Well organised, well taught, lots of good interesting content including Distributed Systems, Java RMI and socket programming.

G53OPS: Operating Systems [Revision Notes] [Supplemental Notes]
Enormous amount of (mostly uninteresting) content. Shockingly taught. Quite good (but needlessly complex) coursework.

G5BAIM: Artificial Intelligence Methods [Revision Notes]
Extending the IAI module looking at neural networks, agents and search techniques. Each section was delivered by a guest lecturer who varied in quality. It would have been better to have a single lecturer (especially as the convenor, Dr Kendall is very good!).



Back to homepage