Daniel Sutantyo, Department of Computing, Macquarie University
Introduction
Delivery
Lectures, Workshops
Resources
iLearn, GitHub
Assessments
Weekly submissions, Assignments, Class Tests, Final Exam
Questions?
1.0 - Introduction
1.0 - About
From the handbook:
this unit covers general issues of the theory of computation and algorithm design, including computability and complexity
COMP3010 grew from the traditional theoretical computer science course
Turing Machines, Automata, Languages, Decidability
Past offerings of the course cover many topics:
Cryptography
Graph Theory
Number Theory and Computation
etc (used to change depending on who the lecturer is)
Notorious for being the hardest computing unit (because ... math!)
1.0 - About
My background: cryptography and number theory (i.e math), coding competitions, general problem solving
Main goals:
Understand how to analyse the complexity and correctness of different algorithms
Get comfortable with the mathematics in algorithm analysis
Understand different approaches to problem solving and the theory behind them
Gain exposure to different kind of algorithms (i.e. learn by example)
1.0 - About
COMP1000/115
learn how to write code with no syntax errors
COMP1010/125
learn how to write code to do something
COMP2010/225
learn about efficient code that do something
COMP3010
learn to write your own efficient code
Complexity Analysis
complexity notation (\(O\), \(\Theta\), \(\Omega\))
Correctness Analysis
loop invariants, induction
Brute-Force Methods
search-space, permutations and combinations, recursive backtracking
Dynamic Programming
Greedy Algorithm
Divide and Conquer Algorithm
recursion-tree, substitution method, master method
1.0 - Topic
1.0 - About
See efficient algorithms
See correct algorithms
Write efficient algorithms
Write correct algorithms
Write good algorithms
Complexity analysis
Correctness analysis
String Algorithm
Huffman encoding, Edit distance
Graph Algorithms
Bellman-Ford, Floyd-Warshall
1.0 - Topic
1.0 - Topic
Illustration by Stefan Szeider, https://www.ac.tuwien.ac.at/people/szeider/cartoon/
1.0 - Topic
Illustration by Stefan Szeider, https://www.ac.tuwien.ac.at/people/szeider/cartoon/
1.0 - Topic
Illustration by Stefan Szeider, https://www.ac.tuwien.ac.at/people/szeider/cartoon/
To be able to construct a good algorithm to solve a problem
To be able to derive the time complexity of an algorithm
To be able to prove the correctness of an algorithm (or at least logically argue its correctness)
To be able to communicate using a formal and precise language (e.g. mathematics)
To have some basic understanding of the P vs NP topic
1.0 - About
1.0 - About
1.0 - About
Lectures are held online via zoom
Zoom link is on iLearn, near the top of the page
Lecture slots:
Tuesday 3-4
Friday 3-5
Most of the material for this unit will be given using video recordings that you can watch at your own pace
Tuesday lectures will be used to introduce the week's topic and Q&A session
Friday lectures will be used for assessments (e.g. class test) or if we need more time to discuss thing
1.0 - Delivery
Friday lecture slot:
You are required to make yourself available on some Fridays to sit the assessment (Week 7 and Week 13 Class Tests, plus any additional quizzes)
You need to lodge a special consideration request (ask.mq.edu.au) if you cannot sit the assessment on a Friday
Otherwise, I don't expect to use the Friday lecture slot on most weeks
1.0 - Delivery
Workshops start in Week 2
Not compulsory
Workshops:
Mon 1-3 is on-campus
Tue 1-3 and Tue 5-7 are online via zoom (link is on iLearn)
if you were enrolled in Mon 11-1, you got moved to Tue 5-7
Questions to be released every weekend, week n workshop will discuss week (n-1) material
Submission questions every week, due Sunday morning
first submission due this Sunday
1.0 - Delivery
Use the workshop to practice doing the questions and ask for help if you need any
You are allowed, and actually encouraged, to discuss the workshop questions with your peers, even the submission question (BUT NOT ASSIGNMENTS)
please note who you are working with
You need to learn the technique, not just knowing the answers
questions in the workshops are similar in nature to what will be asked in the exams and class tests, but don't expect to see the same question
I may release a video solution to some questions, depending on how much time I have
1.0 - Delivery
Assessment Section
Communications
Forum
Contact Teaching Staff
Discord (https://macs.icu)
1.0 - Resources
https://github.com/sutantyo/comp3010_2020 (see Week 1 Workshop)
1.0 - Resources
CLRS
Skiena
Main textbook, more theoretical
Chapters 1-5, 15-16, 24-26, 32, 34-35
We are going to follow the same approach for some materials (Dynamic Programming, Greedy Algorithms, Divide and Conquer)
Easier to read, background reading
Chapters 1, 2, 7-10
Guide to Algorithm
1.0 - Resources
1.0 - Resources
1.0 - Assessments
Due every Sunday morning
The plan is to have 12 submissions, each marked out of 1 for a maximum of 10 marks total
The marks will be aggregated, so you can get 0.5 mark 6 times and still get the full 10%
Four assignments, coding-based (using Java)
Assessment may include quizzes or report-writing
it is not enough to just write the code --- you need to understand how the code works and explain it
quizzes may ask you to make small modifications on the code
1.0 - Assessments
Week 8 and Week 13
corrected to Week 8, was set at Week 7 earlier
One-hour online quiz (may give more time due to COVID restrictions)
Standard 3 hours written exam
If the university procedure doesn't change, you will have a 6-hour window, similar to last semester
1.0 - Questions