|
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.
|
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 |