Skip to content

Instantly share code, notes, and snippets.

@NiallEgan
Created April 28, 2018 22:44
Show Gist options
  • Save NiallEgan/2346e7e10d09e7d946d125dad2a89f5c to your computer and use it in GitHub Desktop.
Save NiallEgan/2346e7e10d09e7d946d125dad2a89f5c to your computer and use it in GitHub Desktop.
CST Revision Guide

CST Revision Guide for Emmanuel College Students

Below are some tips on revision for Part 1A CST, made with <3 by your wonderful subject parents, Niall & Matteo.

Paper 1

FoCS

Despite its name, this is mostly just a functional programming course. The only way to get good at it is by doing all of the past exam questions. Paulson's book, ML for the Working Progammer also provides some useful exercices and more detail. Don't forget the simple definitions in there too, e.g. big O notation, as that is also examinable.

OOP

This is quite a fun course, and shouldn't be too hard. The best way to learn it is just by coding in Java as much as possible; doing all of the exercises on the example sheet is a good place to start. Also probably the most useful course, many of the topics covered are typical interview questions.

Algorithms

This is a really big course, and it's important you get all of the nooks and crannies in it. The best resource for this course is the mighty CLRS3. As well as providing great explanations, the exercices are really good too. I'd reccomend doing a mix of pastpaper questions and CLRS exercices, as often exam questions are suspicously similar to CLRS exercices, so you might get lucky there. It's important to really understand the proofs of the algorithms, because this will allow you to come up with new algorithms, a common requirement for the harder parts of questions. An important course.

Numerical Methods

Bit of a mess really, pretty useless. It's quite an esoteric subject, so there aren't really many good resources. Best approach is Greave's example sheet and then past exam questions. Just try to make your exam answer look convincing and you'll probably be ok.

Paper 2

Digital Electronics

While the concepts in this course are quite easy, in recent years Wassel has decided to make the questions a bit harder. Definitely try to do the later questions, because otherwise you will be lulled into a false sense of security. The course is based on Digital Design and Computer Architecture, which provides a pretty detailed overview of all of the content and would recommend over just the slides.

Discrete Maths

Just do the whole example sheet and all of the past paper questions. This is a really good place to get ahead of everyone else in Paper 2. The Languages stuff is comparitively easy, so make sure you understand it really well and do that question in the exam. The Kozen book is good for this part. With the other stuff it's just imporant not to be intimidated by notation. A really important course.

Operating Systems

The best place to learn this course is with the Operating Systems Concepts book, as the notes are pretty sparse. The course is based off of this book. Doing past exam questions definitely useful, but you should bare in mind that it is quite a detailed course, so possible that questions come up that have never been asked before, so making detailed notes from the book and the slides is also very important. Important course.

Software and Security Engineering

A weird course because it is a humanity really. You should do a few past exam questions, and try to get to review them really critically. Also, making notes based on the slides very important for the basic parts of the questions. However, to get high marks on these questions you need to do at least some of the recommended reading on the course webpage. Probably want to read parts of Security Engineering that Anderson recommends and some of the Mytical Man Month.

Paper 3

Databases

As this is a pretty new course, hard to know what will come up. Practice writing SQL and Cipher queries, as well as designing various types of database. You also need to know the various engineering tradeoffs between the different types of databse.

Graphics

Again, hard to revise because quite a new course. If you find any parts of the notes lacking, a good resource is Fundamentals of Computer Graphics.

MLRD

Very strange course, but luckily not very much content because it is so practical based. Maybe go over some of the code you wrote last term to remind yourself of the algorithms. Also bear in mind that things in the suggested reading are considered fair exam game, so make sure you read the relavant parts of the Jurafsky book.

Interaction Design

A pretty tedious course, but not too hard. At this level, really a lot of it is just memorising lists and definitions and being able to apply it to interfaces. As long as you put the monotnous work in to memorise the basic stuff, should be fine in the exam.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment