Design and Analysis of Algorithms

Grading

Grades will be tentatively weighted as follows:
35% Homework Assignments
5% Classroom and Lab participation
30% Midterm Exam
30% Final Exam

Most lab assignments will consist of in-class exercises and will not be graded. Expect roughly 13 homework assignments during the semester. You'll be able to work with a partner on several but not all of them; each homework assignment will specify if working with a partner is allowed.

Homework Policy

Written homework will typically go out Tuesday afternoon and be due the next Monday evening. The initial couple of homeworks will be individual assignments; after the first few weeks, you'll be able to work with a partner. You must write your solutions in LaTeX and submit .tex files using git. Resources for LaTex are here.

Partner Etiquette policy. The expectation is that you and your partner are working together on your partnered homework assignments. You should work together on planning, discussing, and writing up the problems. There may be short periods where you each go off and independently work on the problems, but you should frequently come together to talk about your progress as a team. Your partner is there to help brainstorm and talk through ideas. You and your partner are equally responsible for coordinating times that you can meet and work on the homework. The final submission has everyone's names on it and should represent work done as a team. You should not submit your name on work which is not your own.

Partnerships where partners work mostly independently tend to result in incomplete and buggy submissions, and do not help you learn the material thoroughly. Partnerships where partners work together for most of the time are much more productive and helpful in learning the material and successfully solving the problems.

If you have any issues with your partnership, please contact a professor.

Extra challenge problems. In many of the homework assignments, there will be one or two extra challenge problems. These problems are completely optional -- do not feel obligated in any way to complete these problems. They are there to provide an extra challenge and something more for your brain to work on, if you have the time and interest. Extra credit for completing these problems is imaginary (in the sense of i, the square root of -1) and will not directly applied to your overall grade. Please contact me if you have questions about the extra credit policy.

Late Policy. Each student will be given 3 late days for the semester. This will encompass any reason---illness, interviews, paper deadlines, hackathons, etc. For partnered assignments, both students need to have late days to use them. If only one partner has late days remaining, you cannot use late days for the assignment. Once you use up your late days, further late assignments will not be accepted except in very unusual extreme circumstances. Even if you do not fully complete a lab assignment you should submit what you have to receive partial credit.

You do not need to notify me ahead of time to use late day(s). Instead, push your completed solution (.tex and any other relevant files) to github, and email me to inform me of the late submission.

Academic Integrity

Note: in the following paragraphs, "code" refers to all homework solutions, including written programs but also proofs, analysis, written reports, etc.

Academic honesty is required in all your work. Under no circumstances may you hand in work done with or by someone else under your own name. Discussing ideas and approaches to problems with others on a general level is encouraged, but you should never share your solutions with anyone else nor allow others to share solutions with you. You may not examine solutions belonging to someone else, nor may you let anyone else look at or make a copy of your solutions. This includes, but is not limited to, obtaining solutions from students who previously took the course or solutions that can be found online. The use of generative AI (e.g., chatGPT or GitHub CoPilot) is also considered to be unauthorized collaboration with an outside source and is a violation of our academic integrity policy.

You may not share information about your solution in such a manner that a student could reconstruct your solution in a meaningful way (such as by dictation, providing a detailed outline, or discussing specific aspects of the solution). You may not share your solutions even after the due date of the assignment.

In your solutions, you are permitted to include material which was distributed in class, material which is found in the course textbook, and material developed by or with an assigned partner. In these cases, you should always include detailed comments indicating on which parts of the assignment you received help and what your sources were.

Failure to abide by these rules constitutes academic dishonesty and will lead to a hearing of the College Judiciary Committee. According to the Faculty Handbook: "Because plagiarism is considered to be so serious a transgression, it is the opinion of the faculty that for the first offense, failure in the course and, as appropriate, suspension for a semester or deprivation of the degree in that year is suitable; for a second offense, the penalty should normally be expulsion."

This policy applies to all course work, including but not limited to code, written solutions (e.g. proofs, analyses, reports, etc.), exams, and so on. This is not meant to be an enumeration of all possible violations; students are responsible for seeking clarification if there is any doubt about the level of permissible communication.

The general ethos of this policy is that actions which shortcut the learning process are forbidden while actions which promote learning are encouraged. Studying lecture materials together, for example, provides an additional avenue for learning and is encouraged. Using a classmate's solution, however, is prohibited because it avoids the learning process entirely.

Please contact me if you have any questions about what is permissible in this course.

Exam Policy

Students must strictly adhere to the following policy, which applies to all exams taken in a Computer Science course at Swarthmore:

Exam takers must place all non-essential items at the front of the room (or other designated area). Unless otherwise permitted, students may not have any electronic devices or course materials in their possession during the entirety of the exam. This includes cell phones, tablets, laptops, smart watches, course notes, articles and books, among others. These items should be placed at the front of the room near the proctor. If you need to leave the room during the exam, you must obtain permission from an instructor first. Any non-permitted discussion or aide in regards to exam material will result in immediate forfeiture of the exam and a report to the College Judiciary Committee. Please discuss any concerns or accommodations with your instructor prior to starting the exam.