CSE 431 Syllabus
General information:
Instructors:
Emily Dolson
- Pronouns: she/her
- E-mail: dolsonem@msu.edu (course-related contact should be through Piazza)
- Office hours: After class or by appointment (feel free to reach out!)
Teaching Assistants:
Undergrad TAs:
Aman Dhruva Thamminana
- Email: thammina+CSE431@msu.edu (piazza is preferred)
- Office hours: Tentative/TBD
- https://calendar.app.google/aHnknMKdaZQkdrQK9
- Github: https://github.com/amantham20
- website: https://amantham.com
Textbook:
There are no required textbooks for this course. If you would like an additional reference, good options include:
- The Algorithm Design Manual, Second Edition by Steven Skiena, Springer, 2008, ISBN 1848000693 -or-
- Introduction to Algorithms, Third Edition by Cormen, Leiserson, Rivest, and Stein, McGraw Hill, 2009 ISBN 0262033844
Meeting time:
M/W 3:00pm-4:20pm EST/EDT, Wonders Hall
Credit hours: 3
Pre-reqs:
CSE 331.
It is expected that you are comfortable programming in at least one language (ideally Python or C++) and that you are familiar with basic ideas related to data structures and analysis of algorithmic efficiency. We will review these topics quickly at the beginning of class.
Description:
Advanced techniques for designing and implementing correct and efficient algorithms. A broad range of useful algorithmic theory will be covered from the perspective of utility in solving applied problems. Specific topics covered will include divide-and-conquer techniques, dynamic programming, graph algorithms, custom data structures, math tricks for rapid calculations, effective profiling, efficient algorithms for NP-Complete problems, heuristics, and generally how to evaluate and solve unfamiliar algorithmic challenges.
Course requirements:
Internet connection, computer, ability to access, Piazza, and Gradescope.
Note: if you have trouble accessing any of these resources due to geographical restrictions, talk to the instructor and we’ll figure out a solution.
Course platforms:
We will use the following platforms:
- Course website as an index for all course materials
- Gradescope for homework assignments
- Piazza for all discussions outside of class time
Course organization
Grading:
60% Homeworks; 15% Lecture reviews; 10% Take-home midterm; 15% Take-home final
Homework assignments
There will be seven homework assignments, each worth ~8% of your final grade.
Assignments will consist of programming projects, with occasional mathematical or written questions. You must solve the homework on your own. You may not share code or look at other students’ code.
That said, asking questions and discussing higher-level concepts on Piazza is highly encouraged. The best way to understand the subtleties of algorithmic problems is to argue about how to solve them.
Due Dates: All assignments will be due at 11:59pm Michigan time on the due date.
Late Policy: If you need to submit your work late, please ask for an extension (see the extension policy below). Otherwise, it will not be accepted.
Extensions: We understand that various life events can get in the way of you doing homework on time. Consequently, we have a no-questions-asked extension policy for extensions up to a week. Please make a Piazza post visible to all instructors requesting an extension. If we notice you repeatedly needing extensions, we might reach out to you to help you make a plan for how to get back on track. Note that if you need an extension longer than a week, that will pose much more significant problems, as we need to discuss homework in class. Extensions longer than a week will only be granted under serious extenuating circumstances.
Lecture review assignments
There will be 15 lecture review assignments, each worth 1% of your grade.
They will be a mix of multiple choice and short answer questions (no programming) covering the material in the lectures for the week.
These assignments are intended to be quick (assuming you paid attention to the lectures) and serve as a way for both you and us to confirm that you’re getting the intended key information out of the lectures.
Due Dates: These are due every Friday at 11:59pm Michigan time.
Late Policy: These assignments may not be turned in late, but your lowest 2 scores will be dropped.
Extensions: There are no extensions on the lecture review assignments.
Grading
We will determine your final grade based on your scores on the homework assignments, as described above. By default, the grading shceme is as follows:
| 90%+ | 4.0 |
| 85-89% | 3.5 |
| 80-84% | 3.0 |
| 75-79% | 2.5 |
| 70-74% | 2.0 |
| 65-69% | 1.5 |
| 60-64% | 1.0 |
| -59% | 0.0 (No Credit) |
We reserve the right to adjust these numbers later in the term if needed.
Grade Adjustments: Note that at the end of the semester we often receive requests from students with borderline scores to be bumped up to the next letter grade. In order to do this fairly, we need to have some additional piece of evidence beyond assignments and exams that suggests that you have mastered the material. The most likely way for you to demonstrate this is through participation. If you participate in the synchronous portion of class or on Piazza, you provide us with another source of information as to how well you are learning the material, and how much effort you are putting into the course. We can use this information to help counterbalance a difficulty with exams or assignments. Let’s have an active class! Class participation will never harm your grade; always ask any questions you may have about the material. Likewise, getting “Good Question” or “Good Answer” flags on Piazza is another source of information for us to help raise your grade.
Academic Dishonesty: Because a primary goal of this course is to teach professionalism, any academic dishonesty will be viewed as evidence that this goal has not been achieved, and will be grounds for receiving a failing grade on the assignment, the exam, or in the course as a whole. Examples of academic dishonesty include (but are not limited to):
- Copying another student’s code or exam answers.
- Using code implemented by someone else to solve the specific assigned question (i.e., don’t get someone else to do your project for you!)
- Using any code implemented by someone else without attributing proper credit (i.e., if you take code off of StackOverflow, provide a link to it in a comment!)
- Providing false information to an instructor about matters related to the course.
- Exploiting loopholes in auto-grading scripts to get points on a homework without actually solving the stated problem.
- Facilitating another student in any of these activities.
Generative AI/Large Language Models: Please do not use LLMs to assist in writing code for this class. The purpose of the assignments is to give you practice in figuring out how to apply algorithmic techniques in your programming. To learn, you really need to practice thinking through these problems yourself. The problems we will give you in this class are bite-sized, because we believe that this will be the best learning experience for you. However, that also means AI tools are more able to solve them than they are able to solve problems you will encounter in the real-world. It is easy to trick yourself into thinking the AI is helping you learn when you are in fact using it as a crutch. If we find evidence that you are using LLMs to write code for this class, you will receive a 0 on the assignment, a final grade reduction, and an Academic Dishonesty Report submitted to the university.
General Notes
The goal of this class is for you to learn how to effectively design and implement algorithms. If anything is coming in your way of that goal, please talk with us about it.
COVID
Please do not come to class if you are sick. We will happily grant whatever extensions, etc. you need to get yourself back on track once you are feeling better.
Policies:
- Students are expected to attend class. If you miss class, you can make up some of the content for a given day by watching the associated videos on the course website and looking through the slides on Google Drive. Note, however, that you will miss things this way. Additionally, students are expected to monitor Piazza, which will be used as the communication forum for this course.
- Inform your instructor of any accommodations needed
- Michigan State University is committed to providing equal opportunity for participation in all programs, services and activities. Requests for accommodations by persons with disabilities may be made by contacting the Resource Center for Persons with Disabilities at 517-884-RCPD or on the web at rcpd.msu.edu. Once your eligibility for an accommodation has been determined, you will be issued a verified individual services accommodation (“VISA”) form. Please present this form to me at the start of the term and/or two weeks prior to the accommodation date (test, project, etc). Requests received after this date will be honored whenever possible.
Religious observance:
Michigan State University has long had a policy to permit students, faculty/academic staff, and support staff to observe those holidays set aside by their chosen religious faith. If you wish to be absent from class to observe a religious holiday, make arrangements in advance with the instructor.
Final Exam Policy
can be found at https://reg.msu.edu/ROInfo/Calendar/FinalExam.aspx
The Office of Institutional Equity policies
can be found at:
- Disability and Reasonable Accommodation Policy-https://oie.msu.edu/policies/disability-and-reasonable-accommodation-policy.html
- Policy on RVSM- https://oie.msu.edu/policies/rvsm.html
- Tolerance and Civility- “ MSU strives to build an academic community with living and learning environments that expects tolerance of viewpoints and civility toward others, whether at public forums, athletic events, in residential communities, classrooms or laboratories. We call upon all who participate in university events to promote tolerance and civil behavior and to hold themselves to high standards that reflect the university’s commitment to respect viewpoints that may be different from their own. Only by respecting individuals with diverse perspectives and ideas can we build an environment of civility that is conducive to advancing knowledge and transforming lives.”