Introduction to Algorithms by Prof. Erik Demaine and Prof. Srini Devadas via MIT
Introduction to Algorithms free videos and free material uploaded by Massachusetts Institute of Technology Staff .
Lectures and Recitations
One-hour lectures are held twice a week. You are responsible for material presented in lectures, including oral comments made by the lecturer (or other information that may not be present in the notes).
One-hour recitations are held twice a week, one day after the lectures. You are responsible for the material presented in recitation, which may include new material not presented in lectures. Recitation attendance has been well-correlated with quiz performance in past semesters. Recitations also give you a more intimate opportunity to ask questions of and to interact with the course staff. Your recitation instructor is responsible for determining your final grade.
Problem Sets
We will assign seven problem sets during the course of the semester. Each problem set will consist of a programming assignment, to be completed in Python, and a theory assignment.
If you collaborate with others in any fashion, you must list their names as collaborators. For details, please see the section on our collaboration policy; we take this very seriously.
Late assignments will be severely penalized. (This penalty is currently a 1?duction every six minutes or part thereof until the end of the tenth hour after the deadline, after which submissions will receive no credit.)
Quizzes
We will give two evening quizzes during the semester; these will each be two hours in duration. There will also be a final exam during finals week.
Grading Policy
Your final grade will be determined by the grades you receive on problem sets, on quizzes, and on the final. The particulars of this policy are subject to the discretion of the course staff.
Coding Assignments
The code that you hand in will be graded based on its correctness, its quality, and the details of the algorithm that it implements.
Correctness
We will provide a set of public unit tests with each problem to help you test your work. However, when grading, we will use additional unit tests that will not be available to you; we reserve the right to test any behavior specified by or following from the problem statement. Submissions that run for excessive amounts of time may be scored as incorrect.
Theory
Code should represent an implementation of an appropriately designed algorithm. While we do not necessarily expect you to achieve any lower bounds that may exist for a particular problem, submissions should not be overly inefficient in either time or space.
Copying another student's code is considered cheating. We may use both manual and automated methods to detect cheating.
Written Assignments
We expect you to enter proofs using LaTeX math mode directly into Gradetacular. We have a two-step process for grading proofs. First, you'll enter your proof into Gradetacular before the time that the problem set is due. We will provide the solutions 10 hours after the problem set is due, which you will use to find any errors in the proof that you submitted. Your critique will usually be due by the following lecture. Your grade will be based on your solution and your critique.
The same late policy applies to the grading part of the assignment (1% off every six minutes that the problem set is late). Please note that if you require an extension, we will need to know in advance and you must have a good reason for needing it. In addition, we trust that you will not look at the posted solutions when completing the problem set under an extension. Looking at the solutions under these conditions constitutes a breach of the honor code, and is a serious offense.
The best responses will be concise, correct, and complete. Failing to answer part of the question, being overly verbose, missing special or edge cases, and answering mistakenly will each reduce your score.
When you are called upon to "give an algorithm," you must provide (1) a textual description of the algorithm, and, if helpful, pseudocode; (2) at least one worked example or diagram to illustrate how your algorithm works; (3) a proof (or other indication) of the correctness of the algorithm; and (4) an analysis of the time complexity (and, if relevant, the space complexity) of the algorithm.
Remember that, above all else, your goal is to communicate. After all, if a grader cannot understand your solution, they cannot give you any credit for it.
This course provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. The course emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems
Write a public review