Syllabus:
Title: CSE 101: Introduction to Algorithms Miles Jones (mej016@ucsd.edu). Office: 4208 CSE.
 Office hours: Wed 13 CSE 4208
 Lecture:
 TuTh
 8:009:20 (B00)
 9:3010:50 (C00)
 CENTER 212
 Russell Impagliazzo (russell@ucsd.edu) Office: 4248
 Office hours: Thursday, 111 starting in 4248 CSE
 Lecture:
 MWF 4:004:50 (A00)
 CENTER 212
 Discussion:
 Mondays:
 4:004:50 WLH 2204
 5:005:50 WLH 2204
 Wednesdays:
 8:008:50am PETERSON 104
 9:009:50am PETERSON 104
 Fridays:
 4:004:50 WLH 2204
 5:005:50 WLH 2204

We will concentrate on general techniques that have been used to develop and analyze efficient algorithms for a wide variety of applications. We organize algorithms by technique, rather than application domain. Students will be expected to master these techniques, not just to understand the standard algorithms, but to design new algorithms using similar methods.
We shall cover the most widely used algorithm techniques in depth: Graph Algorithms (DFS/BFS/etc.), Greedy Algorithms, Divide and Conquer, Algorithms, Dynamic Programming Algorithms, and Hillclimbing (e.g.,Max Flow). We will also give a quick introduction to Complexity, especially NPcompleteness and its consequences for algorithm design.
Homework:Homework will be assigned on this website and you will upload your homework via Gradescope.
Due Thursdays on gradescope with groups of size 14. Your lowest Homework grade will be dropped.
It is required to type your homework. (using latex, word, ....) (Figures can be handdrawn.)
Points will be taken off for handwritten homework.
Please make regrade requests on gradescope. Regrade requests will be open for 4 days. The entire problem will be reevaluated so grades may go down. Please only make a regrade request if you believe that the assignment was graded incorrectly. If you would like to understand how the assignment was graded please bring that up during office hours.
There will be three quizzes. Each will be 10% of your grade. There is an option to drop your lowest quiz score and have the final exam count for more. You must take your quiz during the lecture you are enrolled in.
Most required assignments will be mathematical or theoretical in nature, involving designing and analysing an algorithm. Although some assignments will require students to design and analyze pseudocode programs, no implementation will be needed to complete these assignments. However see below for algorithm experiments. Grading of all problems (homework and exam) will be both on the basis of correctness and on logical consistency and completeness, i.e., “mathematical style”. It is your obligation to provide a compelling argument that forces the reader to believe the result, not just notes from which an argument could be constructed. In particular, the correct formulas or pseudocode are not a complete solution by themselves; their significance and the logic of their application need to be explained.
When giving an algorithm, the following three things should always be included, unless the problem explicitly says not to:
 a clear and complete description of your algorithm, including a highlevel description;
 a correctness proof, showing why the algorithm solves the problem in question;
 a time analysis, giving the worstcase runtime (up to order, in Onotation).
Collaboration Guidelines:
Students are encouraged to collaborate on homework assignments. You may work in groups of up to four students. Your group will submit one assignment and gradescope will give you the opportunity to add all of your group members to the assignment. Groups do not have to be the same people for every assignment. You can change group members any time.
You may work with student from other CSE 101 sections regardless of the professor.
Final Examination:The final examination will be held at the date and time stated in the course calendar. It is your responsibility to ensure that you do not have a schedule conflict involving the final examination; you should not enroll in this class if you cannot take the final examination at its scheduled time.
Final Grade:The final grade will be computed by taking the maximum of the two schemes:
30% Homework, 30% 3 quizzes, 40% Final Exam
30% Homework, 20% 2 best quizzes (lowest quiz dropped.), 50% Final Exam
In addition, you must earn a passing grade on the final examination in order to pass the course.
Academic dishonesty is considered a serious offense at UCSD. Students caught violating the UCSD Policy on Integrity of Scholarship will face an administrative sanction which may include suspension or expulsion from the university. You should read the UCSD Policy on Integrity of Scholarship, especially the Students’ Responsibility section.
Academic integrity will be taken very seriously be the course staff. Breaches of integrity may have broader consequences outside of the assignment in question. The following will all considered to be breaches of academic integrity:
 Collaboration on homeworks beyond the scope outlined in the section above (including sharing of homework solutions with other students before the homework deadline).
 Collaboration or copying on exams of any kind.
 Use of aids on exams outside of explicitly allowed materials (this may vary by exam)
You should not attempt to search for homework solutions online or in sources outside of the course text. If you accidentally stumble upon a homework solution in such an outside source you should cite it in your homework solution. If your solution proves to be too similar to the cited one, you may lose credit on the problem, however failure to cite the other solution will be treated as academic dishonesty.