Techniques for designing efficient computer algorithms and for analyzing computational costs of algorithms. Common design strategies such as dynamic programming, divide-and-conquer, and Greedy methods. Problem-solving approaches such as sorting, searching, and selection; lower bounds; data structures; algorithms for graph problems; geometric problems; and other selected problems. Computationally intractable problems (NP-completeness). <\blockquote>Prerequisites
Prerequisites: CSE 30141 (Theory of Computing) and CSE 20312 (Data structures), or equivalentTextbook
Course Materials:
Our primary textbook will be Algorithms, by Jeff Erickson. Note that you’ll be completing readings on Perusall, but you are welcome to also download a pdf or purchase a paperback version as well. There is also a webpage associated with many homework and exam practice questions, which can be a good resource for studying. In addition, I pull material from the following texts, all of which are excellent references if you find yourself in need of a different explanation or proof style to understand some of the concepts:
- Algorithms (freely available online)
- by S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani
- Introduction to Algorithms
- by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
- Algorithm Design
- by Jon Kleinberg and Éva Tardos
Note that all of these additional references are available in the library or can be purchased used; you can also look at them in my office, if you want to look them over.
Attendance Policy
In general, I won't be taking attendance in lectures. However, you will miss important material if you are not present, including occasional opportunities for extra credit, hints on the homework, and guidance on studying for exams. You are responsible for any material covered in class; this includes course material as well announcements such as exam dates, changes in homework due date, etc. I will do my best to also post these in the lecture notes and/or in course announcements on Canvas, but that is a courtesy and not a requirement, so please plan accordingly! If you will miss a lecture, I'd suggest checking with a fellow student, since my tablet does occasionally fail. You're also welcome to check in with me with any questions.Graded work:
Homework (40%)
There will be homework due (almost) every week, for a total of about 10-12 homework assignments over the course of the semester. Some homeworks will be written assignments turned in on Gradescope, while others will be presented orally to the instructor. At the end of the semester, we will drop the lowest HW grade.
For all homeworks, you are allowed to submit in groups of 2-3. In fact, given the difficult nature of the assignments, I encourage all of you to work with another student, as the best way to learn this material is to discuss and problem solve in a small group.Reading (10%)
:I will be uploading reading assignments from the course text to Perusall this semester. Your grade for reading is then set by the system based on how you comment on and interact with the material assigned. (Please come talk to me during the semester if you notice odd grades, as I'm happy to tinker with the grading system they use if needed!) I do not extend any reading due dates, but at the end of the semester will drop the lowest 3 scores, to cover any illness or technical issues that prevent completion.
A reading assignment will be due every morning we have class, at 8am. I plan to use your comments and questions to target lecture to the topics you are confused on.Exams (50%)
- Midterm (20%): March 4, 8-9:15am, in 138 DeBartolo Hall
- Final Exam (30%): TBD
Percentages
Letter grades will be based on each students overall percentage of awarded points according to the following formula.
- Student percentage above 93% will result in a grade of A or better.
- Student percentage above 90% will result in a grade of A- or better.
- Student percentage above 87% will result in a grade of B+ or better.
- Student percentage above 83% will result in a grade of B or better.
- Student percentage above 80% will result in a grade of B- or better.
- Student percentage above 77% will result in a grade of C+ or better.
- Student percentage above 73% will result in a grade of C or better.
- Student percentage above 70% will result in a grade of C- or better.
- Student percentage above 60% will result in a grade of D or better.
- Student percentage below 60% will result in a grade of F.
Any modification to this scale at the end of the year will be in favor of the students. That is we may later decide to award an A to a student who is slightly below the cutoff, but we certainly will not deny an A from someone who is above the cutoff.
No matter what curve I impose, I maintain that the minimum passing grade for this class is a 50% - so if your average is lower than that, you will fail this class.Extra Credit
In general, extra credit will not be assigned in this class. The homework assignments provided will be challenging enough for everyone, so I would like for students to focus on the assignments provided.
Upon occasion (and solely at the instructor's discretion), some small extra credit activities may be included, either by announcement in class or as part of an assignment. Please keep in mind that the extra credit is unlikely to significantly affect your grade; if you are concerned about your final grade, it is much better to focus your energy on the regular assignment. Extra credit is solely designed to provide an opportunity to students who wish to explore the topics further.
Late Homework
Homeworks will generally be due at 11:59pm on canvas, or (if an oral presentation) will be due during the time slot you sign up for in class. Late submissions will generally not be accepted unless arrangements have been made ahead of time. Please contact me as early as possible with any potential issues, since I am much more likely to grant an extension if you come to be ahead of time! In general, I try to be flexible if students have good reason, but I do reserve the right to not accept late submissions if solutions have already been released or if a student is abusing this flexibility.Regrade Requests
I am happy to regrade any assignmentss or exam problems which you think were unfair or incorrect. Please bring me the original assignment, plus a written explanation of your question or complaint, within two weeks of the time the paper in question is graded and returned to you.Life Clause policy
In general, late assignments will not be accepted or graded. However, life does happen, and occasionally emergencies come up. So, once per semester, you are welcome to get a 3 day extension, with no questions asked or no details needed, on any homework assignment. Please email myself and the TAs before 11;59pm on the due date, if you choose to exercise this. Note that this policy does *not* apply to Persusall readings. I will drop your lowest three persusall readings, so that if you miss one or two due to travel or illnes, it will not hurt that portion of your grade.Policy on Children in class
For any student raising children, I understand that minor illnesses and unforeseen disruptions in childcare often put parents in the position of having to chose between missing class to stay home with a child and leaving him or her with someone you or the child does not feel comfortable with. While this is not meant to be a long-term childcare solution, occasionally bringing a child to class in order to cover gaps in care is perfectly acceptable. (You are likely to meet mine at some point this semester!) All exclusively breastfeeding babies are welcome in class as often as is necessary to support the breastfeeding relationship. Because not all women can pump sufficient milk, and not all babies will take a bottle reliably, I never want students to feel like they have to choose between feeding their baby and continuing their education. You and your nursing baby are welcome in class anytime. I ask that all students work with me to create a welcoming environment that is respectful of all forms of diversity, including diversity in parenting status. In all cases where babies and children come to class, I ask that you sit close to the door so that if your little one needs special attention and is disrupting learning for other students, you may step outside until their need has been met. Non-parents in the class, please reserve seats near the door for your parenting classmates. (Policy adapted from Dr. Melissa Cheyney)Academic Integrity
As I'm sure you are all aware, Notre Dame students are expected to abide by Academic Code of Honor Pledge. “As a member of the Notre Dame community, I acknowledge that it is my responsibility to learn and abide by principles of intellectual honesty and academic integrity, and therefore I will not participate in or tolerate academic dishonesty." In addition: “All students must familiarize themselves with the Honor Code on the University’s website and pledge to observe its provisions in all written and oral work, including oral presentations, quizzes and exams, and drafts and final versions of essays.” When in doubt about whether something is allowable, don’t assume that you are right – ask me first.In the context of this course, I encourage students to discuss general course material, which includes studying for exams, sharing notes if a student must miss class, and working on any practice problems which are assigned. You are also allowed to turn in homework assignments in pairs. I also encourage you to discuss problems with other students, but please be careful to write up all solutions separately in your own group, and do not copy any material from another student. As a good rule of thumb, make sure to write your solutions without using any notes or papers written while talking to anyone other than your partner. Remember, you will be on your own in the exam, so it is in your own best interest to make sure that you really understand the material and can solve each problem on your own! In addition, please be aware that ChatGPT scores on average scored around a C level the last time I taught the class, so don't assume the answer it generates is correct, although it may be a helpful resource and starting point.
You are allowed to use outside sources of information in this class, including textbooks and webpages. If the complete and correct answer is on page 263 of the textbook, the best solution you can submit is "See page 263 of the text." Period. However, if you find a solution from any other source, such as a web page, a journal paper, a different algorithms textbook, or your mom, you must rewrite the solution in your own words, and you must properly cite your sources. Assume the graders have access to all the official course material, but nothing else. While we strongly encourge you to use any outside source at your disposal, please remember that the homework is supposed to demonstrate that you understand of the material, not just how to use Google. In particular, verbatim copying is worth NOTHING, and will be considered a violation of the academic integrity policy. (Note that I'm also pretty good with google as well as ChatGPT, so I wouldn't recommend copying!) We strongly encourage you to use any printed, online, or living resource at your disposal to help you solve homework problems, but you must cite your sources.
This is not an exhaustive list!
- If you use an idea from a book, cite the book.
- If you use an idea from a paper, cite the paper.
- If you use an idea from Wikipedia, cite Wikipedia.
- If you use an idea from CS StackExchange, cite CS StackExchange.
- If you use an idea from last semester's homework solutions, cite last semester's homework solutions.
- If you use an idea from the class Discord server, cite the class Discord server.
- If you use an idea from another student, cite that student.
- If you use an idea from Chegg, cite Chegg.
- If you use an idea from ChatGPT, cite ChatGPT.
- If you use an idea from the bathroom graffiti at Fiddler's Hearth, cite the bathroom graffiti at Fiddler's Hearth.
There are only two exceptions to this rule. You are not required to cite the following:
- Official course materials (lectures, lecture notes, textbook, and homework and exam solutions) from this semester
- Sources for prerequisite material (which we assume you already know)
Submitting someone else's work without giving them proper credit is plagiarism, even if you have the other person's explicit permission. Submitting someone else's work without giving them proper credit is plagiarism, even if that “someone else” is a computer program. Citing your sources will not lower your homework grade.
Allowing someone else to use your ideas without giving you credit is also an academic integrity violation.
Students who violate academic integrity policies will be reported to the department, particularly in cases where relevant sources are not cited or in cases of direct copying of another student's work. First time offenses on homework will result in a minimum of a failing grade on the assignment in question, with egregious or repeated offenses resulting in failure in the course.
Accommodations and disability services
It is the policy and practice of The University of Notre Dame to provide reasonable accommodations for students with properly documented disabilities. Students who have questions about Sara Bea Accessibility Services or who have, or think they may have, a disability are invited to contact Sara Bea Accessibility Services for a confidential discussion by emailing at sarabeacenter@nd.edu or by phone at 574-631-7157. Because the University’s Academic Accommodations Processes generally require students to request accommodations well in advance of the dates when they are needed, students who believe they may need an accommodation for this course are encouraged to contact Sara Bea Accessibility Services at their earliest opportunity. Additional information about Sara Bea Accessibility Services and to learn more about the student process for requesting accommodations, please visits Accessibility Support. As an instructor, I encourage you to utilize these services, and feel free to reach out if you'd like to discuss how this might help in the context of this specific class.Diversity and Inclusion
The University of Notre Dame is committed to social justice and diversity. I share that commitment and strive to maintain a positive learning environment based on open communication, mutual respect, and non-discrimination. In this class we will not discriminate on the basis of race, sex, age, economic class, disability, veteran status, religion, sexual orientation, color or national origin. Any suggestions as to how to further such a positive and open environment will be appreciated and given serious consideration.