Mathematics for Computer Scientists (G51MCS)

Year 2012-2013 (For Year 2013-2014, log on to Moodle)

Mathematics for Computer Scientists teaches you the basic logical and mathematical theory that is necessary to become a good programmer and computer scientist.
It covers some familiar fields, like Arithmetic and Algebra, but also parts of Math that are more specific to the study of data structures and algorithms.
First of all, it is necessary to learn the fundamental reasoning techniques: how to prove mathematical statements and how to check that a proof is correct.
Then you must become familiar with the concepts of set, function, relation and be able to work with them with confidence.
All this forms the basis for specific mathematical theories.
Arithmetic is the first one: the most important method of proof here is induction on natural numbers.
Then comes Boolean Algebra, essential to understand the logic of circuits and data structures.
Other topics of study are Combinatorics, which studies the way to count complex arrangements of objects, and Modular Arithmetic, the "Mathematics of clocks".
At the end of the module you will have acquired the intellectual tools that allow you to understand the abstract nature and the workings of algorithms.

Outline of lectures

In this section you will find, after each lecture, a list of topics that were taught and links to additional material and lecture notes.
I'm constantly trying to improve these notes, so I encourage you to tell me if you find mistakes or things that are not clearly explained.

How to study

Here are my suggestions on how you should study and prepare for the exam.
There are three activities that will help you get the best results:

Read and study the lecture notes;

Try to solve the coursework assignments;

Try to solve the past exam papers.

You must make sure that you understand and know the material in the lecture notes.
When you try to solve the coursework assignments, do it from scratch, without looking at the solutions and feedback that you received the first time that you did them.
You should reach a level where you can do them without support.
If this doesn't happen yet, you can go back and read your notes and study the part of the lecture notes that deal with the topic of the assignment.
Then, on a different day, try it again.
Repeat this process until you can do the exercises confidently.

Use a similar strategy when doing the past exams.
You should give yourself a couple of hours to solve a complete exam paper.
Sit at your desk with it and without books or notes and try to do it.
Afterwards check your answers: the complete solution to last year's exam is given above.

Suggested reading

The main study material for the module are the lecture notes that you find on this page.
If you think you need more explanations and examples or if you want to learn more advanced topics, here are some very good books:

Roland Backhouse, Algorithmic Problem Solving

Steven G. Krantz, Discrete Mathematics Demystified

Rowan Garnier and John Taylor, Discrete Mathematics

Norman L. Biggs, Discrete Mathematics

The first book is used in the module APS, which is the twin of MCS: It gives more motivation and examples of application of the theory. It uses games and puzzles to teach the material.
The second book is a simple introduction to all the basic mathematical notions. It doesn't require much previous background and is written in a plain easy style.
The last two books present the topics in more depth and give many useful examples; they also cover more advanced material that is not treated in this module.

These texts, however, are not a replacement for the lecture notes.
If you don't understand something and you find that the lecture notes are not clear enough, the right thing to do is to come to me and I will try to explain things better and expand the lecture notes.

Coursework and Tutorials

Every two weeks on Thursday, you will find an assignment on this page.
You have to solve the given problems and hand you solutions in by the following
Wednesday at 16:00 at the school office (stamp the assignment and put it
in the letter box).

The following week the teaching assistants will demonstrate the solutions during the tutorials.
You have been divided into five groups, each having a tutorial on a different day and time.
Check this timetable to see when and where your tutorial session is.
If you're unable to attend the tutorial you've been assigned to, contact one of the teaching assistants, Laurence Day or Bas van Gijzel and ask to change your group.

Write on the cover letter of the assignment what group you belong to.

The average mark of the four assignments will be your coursework mark, which counts for 25% of you final mark.

The first tutorial takes place in the week 8-12 October: It will give you a chance to ask any question about the first few lectures.

Be sure to read carefully the regulations about submission of coursework and plagiarism in the student handbook.
In addition to those regulations, assignments must be submitted at the latest by the end of the week of their official deadline and standard penalties apply.

Contacting the teacher

Please don't hesitate to ask me any question you may have about the module.
You can contact me by e-mail: put G51MCS in the subject line, so I know immediately that it is about this module.