CSE 830 Syllabus
General information:
Instructor: Emily Dolson
- Pronouns: she/her
- E-mail: dolsonem@cse.msu.edu (course-related contact should be through Piazza)
- Office: EB 3582 (but I’ll be working from home this semester)
Office Hours:
- Tuesdays 11:40am (after class, in class zoom room) and by appointment.
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:
T/Th 10:20am-11:40am EST/EDT, Zoom (link sent by e-mail and on Piazza)
Credit hours: 3
Pre-reqs:
No explicit pre-requisites, but it is expected that you are comfortable programming in at least one language (ideally Python or C++) and that you are famliiar 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 MediaSpace, Piazza, and Mimir. 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 delivery format:
This course will be delivered completely online. Synchronous meetings will be provided, but students are also allowed to take the course in an asynchronous format. We will use the following platforms:
- Course website as an index for all course materials
- Mimir for homework assignments
- Piazza for all discussions outside of class time
- Zoom (link e-mailed and on Piazza) for all synchronous class sessions and office hours. If you need help using Zoom, see this resource: http://www.cse.msu.edu/Students/Current_Undergrad/UsingZoom.php
Class Recordings:
Each class session of this course will be recorded. The recordings will be available to students registered for this class. This is intended to supplement the classroom experience. Students are expected to follow appropriate University policies and maintain the security of passwords used to access recorded lectures. Recordings may not be reproduced, shared with those not in the class, or uploaded to other online environments. Doing so may result in disciplinary action. If the instructor or another University office plan other uses for the recordings beyond this class, students identifiable in the recordings will be notified to request consent prior to such use. Note that the above restrictions apply only to recordings of class sessions. All videos recorded ahead of time by the instructor may be freely shared. Check the permissions on any supplemental videos recorded by people other than the instructor before sharing them (although most of them shouldn’t have restrictions).
Course organization
Grading:
80% Homeworks ; 20% Lecture reviews;
Homework assignments
There will be seven homework assignments, each worth 10%-15% of your final grade. Assignments will consist of programming projects, with occasional mathematical or short-answer 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. All assignments will be due at 11:59pm Michigan time on the due date. You will lose 10% off your maximum grade per day late, to a cap of five days (and 50% off), after which it will not be accepted. We do understand that unexpected events befall even the most dedicated student, so we will provide 5 free late days that can be used on a single assignment or spread across assignments without a penalty. Do not waste this extension or feel obligated to use it; the goal is for it to cover all unforeseen circumstances.
Lecture review assignments
There will be 15 lecture review assignments, each worth 1% - 2% of your grade. These will be due every friday at 11:59pm Michigan time. 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. These assignments may not be turned in late, but your lowest 2 scores will be dropped.
Grading
We will determine your final grade based on your scores on the homework assignments, as described above. By default, you need 90% of the points to receive a 4.0, 85% for a 3.5, 80% for a 3.0, 75% for a 2.5, 70% for a 2.0, 65% for a 1.5, and 60% for a 1.0. We reserve the right to adjust these numbers later in the term if needed.
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.
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. We plan to keep the class flexible to the learning styles that seem to work best for the students, so feedback is always appreciated.
Policies:
- Students are expected to watch all required videos (as indicated on the course website) either as part of the synchronous class or asynchronous on their own. 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.”