Non-required textbook: Introduction to Algorithms, 3rd edition, by Cormen, Leiserson, Rivest and Stein.
Prerequisites: Discrete math is important. Basic understanding of some data structures and probability will matter too. Overall, you should possess
mathematical maturity.
Topics:
This is an introduction to the design and analysis of algorithms, which involves discussing a few basic data structures as well. Many topics could fit in such a course, and not all intro courses go over exactly the same material.
Grading (exams)
Gradescope: How to submit homework. Making regrade requests.
Tips for doing well in this course, if you find it challenging:
Everyone involved in this course is to respect the following:
Moses Center Statement of Disability:
If you do not attend lectures on campus, you are expected to keep up with the schedule that can be found on the course Schedule page.
This is commonly just referred to as ``CLRS".
More info at MIT press.
Note: my Resources page refers to this book so you can find relevant chapters if you wish. The course doesn't explicitly rely on the book though. Also, CLRS is massive. We will not cover everything in it. See "Topics" below.
See the Resources page and search for the word "prerequisite" to see when you will need to know background material.
You will probably find this course difficult if you're not comfortable with induction, recursion and proofs, or if big-O seems like a challenging concept. It is assumed that you know the basics about arrays, linked lists and trees. Knowledge of basic probability will be helpful for two or three lectures but I will recap what you need to know.
If you have not done well in discrete math or have not passed data structures, you should seriously consider taking your time to create a solid background before taking this course.
We will place all emphasis on theory instead of programming. This course is about figuring out how to solve a problem before you start coding.
To see what is taught in this course, please visit the
Resources page.
Excused absence:
Important note:
The way I have taught the course until now, exam scores are typically low.
It is important that you understand that these are just numbers. Getting a 40 in this course is not the same as getting a 40 in a course where the median is 80. I will provide feedback and distributions after exams, so that you know where you stand.
Don't bet on getting a low score and passing because of a curve. Even though the median is often low and a curve is applied, getting under 30% is usually a strong indication that you have not comprehended the material well enough to pass the course. You might still pass with a curve, but that will not be determined until the end of the course.
Warning:
If you need credit for this course in order to graduate or maintain a scholarship, it is your responsibility to do well. There will be no extra credit options.
Summary: please respect the effort that your graders will put into grading your work.
There should be no shadows, coffee mugs, pets, body parts, etc, visible in your figures.
Taking extensive notes in class works well for some people, but keep in mind that all class notes displayed are already available to you.
Consider bringing a printout of the condensed notes to class. Then you can mark your own observations, clarifications and questions quickly, and spend more time paying attention.
Don't cheat: