COMP10002-Notes

View on GitHub

COMP10002-Notes

Welcome! These are my notes for University of Melbourne’s Foundations of Algorithms course (COMP10002 2021 Semester 2)

The notes are organised by weeks. They are meant to accompany your weekly tutorials.

How to install GCC and VSCode

Week 2

Week 3

Week 4

Week 5

Week 6

Week 7

Week 8

Week 9

Week 10

Week 11

About Me

Who is Andrew?

What is Foundations of Algorithms about?

It’s about algorithms (duh). We study efficient programs that can process mass amounts of data.

It’s also about C, a programming language that is more demanding than Python. C was invented 49 years ago, so that means it does a lot less for the programmer. You won’t have access to dictionaries or tuples by default. A five minute python script can take an hour to rewrite in C. What else was happening while C was invented

But C is still one of the most popular languages in the world. Unlike Python, C allows you to directly access the computer’s memory and hardware interfaces. It’s also usually 100x faster than Python. It’s like driving an F1 racecar vs a sedan, the sedan is a lot easier to drive and a lot more comfortable, but sometimes you need control and speed. Some of the most important software in the world is written in C, here are some examples: Python, Windows and Tesla Autopilot.

The Tesla roadster

Your Journey with C

Just in case I haven’t fully convinced you to learn C yet, C is an important part of your computing degree. You will use C to write some really cool software in Design of Algorithms (COMP20007) and Computer Systems (COMP30023). So the best advice I can give you is to learn C very well now, rather than suffering in this subject and having to learn it later.

Warning: As we delve deeper into C (especially when we get into memory manipulation), we will encounter errors with no messages to help us. Because C is a bare-bones language, it does not have good error handling. But do not worry. With some new debugging tools, we will be able to squash all of our errors.