Syllabus

Contents

Imagine that you have been asked to solve a problem by writing a program. You come up with your solution, implement it, and cross your fingers while you execute the code. No errors print out, but it it also doesn't complete execution, even after a couple minutes! What could be going on? Your program might have an infinite loop or recursion or it might just need some more time running... 

In this course, you will develop the language and skills required to design, analyze, and communicate precisely about computational problems and their solutions. An algorithm is a computational procedure that correctly solves a specific problem. Packed into that description is the following algorithm design process: 

Each of these steps is done with a high-level description of the problem and algorithm, before writing a single line of code. The problems you will see often arise in real-world applications, and you'll discover that some are provably impossible to solve, while others are only known to have solutions that are computationally infeasible (running times that could take more than a lifetime)!

Topics

Algorithmic paradigms [common approaches for solving a problem]

Theory for computational infeasibility [intrinsic difficulty of a problem]

Textbook

We will roughly cover material from Algorithm Design by Kleinberg and Tardos, though I will use supplementary material from other sources as well.

You may wish to refer to Introduction to Algorithms, Third Edition by Cormen, Leiserson, Rivest, & Stein for a concise presentation of the material. It's often referred to as CLRS.

Kleinberg and Tardos, Algorithm Design, Addison-Wesley, 2006

How

My goal is to create an inclusive learning environment that provides the structure and support to help you successfully understand the process of algorithm design. It is your responsibility to utilize the offered resources and undertake the work that optimizes your learning experience. By taking ownership, you will leave this course with tools that can assist in your academic and professional pathway. The grade breakdown is intended to strategically guide effective learning.

The course activities are structured to help you engage with the material:

Learning is a core commitment and the instructor, TAs, and students in CS 312 are expected to be respectful, inclusive of all students, and to not discriminate. Mount Holyoke resources on diversity, equity, and inclusion can be found here. Bias incidents can be reported here. Students are encouraged to bring concerns or feedback to the attention of the instructor.

Requirements

"Laptops are available for either 3-hour or 3-day loan periods on a first-come, first-served basis at the Circulation Desk. We offer Macbook Pros, Dell Latitudes and Dell Chromebooks. You can check on current availability of student laptops at Gadgets-to-Go."

Grading (Option A)

Grading (Option B)

Lateness Policy

It's important to keep up with the content and pacing of the course. I recognize that sometimes unpredicted situations arise that may prevent you from submitting an homework. Therefore, your lowest homework grade will be dropped

In addition, you will have 2 additional days (48 hours) to submit topic modules and homeworks without a consequence to your grade. After that, the credit you receive will be reduced each day. 

To summarize: I will calculate your grade according to this chart:

Homework logistics

Computer science is a subject that builds up on itself. To encourage you to continue to deepen your understanding of a topic, you will perform a written reflection on each homework. Solutions will be released on moodle along with the homework; you should not look at the solutions until you have completed the work. It is up to you to decide if you want to review each problem’s solution as you go or wait until you’ve completed the whole homework.

It is a violation of the honor code to look at the solutions before you’ve completed your work or to share them with anyone (including students that take the course in other sections or future offerings).

Submission and Grading

When you submit the homework, you must also include a self-assessment and reflection:

Each problem on the homework will be graded on a 3 point scale, analogous to the self-assessment rubric. The grade for the entire homework will be weighted with 75% calculated from the average of the problems and 25% from the quality of your self-assessment/reflection.

Collaboration

Submission

Feedback and grading

Additional course information

Accommodations

Disability Services is the office on campus that determines academic accommodations for students with disabilities. If you need official accommodations through Disability Services, you have a right to have these met and kept confidential. Please contact Disability Services, located in Mary Lyon Hall 3rd Floor, at 413-538-2634 or disability-services@mtholyoke.edu. If you are eligible for academic accommodations, you will be provided with an accommodation letter. Once you receive your accommodation letter, I would like to meet with you and discuss these approved accommodations and our class. For more information on who might be eligible for accommodations and the application process please see the Disability Services website (https://www.mtholyoke.edu/disability-services).​​​​​

Title IX/Responsible Reporter:

If you or someone you know has been a victim of discrimination, harassment or violence based on sex or gender and you would like to talk to someone about our resources, please contact the Title IX Coordinator, Shannon Da Silva at ​titleixofficer@mtholyoke.edu​. 

As a faculty member, I am a responsible reporter for any information I learn that may be a violation of our Gender-based and Sexual Misconduct Policy. This means that I will need to share this information with our Title IX Coordinator, Shannon Da Silva. This could be anything related to sexual assault, dating violence, stalking or sex or gender-based harassment. If you are experiencing any of these things and you want to talk with someone who is not a responsible reporter, I can help direct you to private and confidential resources on campus (Counseling Service, Health Services, and Alcohol and Drug Awareness Project. These offices have a legal mandate for confidentiality. These offices are not required to turn over identifying information to the Title IX coordinator but may provide anonymous data to the Title IX coordinator for reporting requirements of the Clery Act). 

Academic Integrity & Honor Code

Mount Holyoke College is a community of students, faculty, staff, and administrators committed to free inquiry and the pursuit of knowledge in the tradition of the liberal arts. The decision to join this academic community requires acceptance of special rights and responsibilities that are essential for its effective functioning and the realization of its mission. All members of the community share the responsibility to uphold the highest standards of academic integrity. 

I expect all your work to abide by the MHC Honor Code: “I will honor myself, my fellow students, and Mount Holyoke College by acting responsibly, honestly, and respectfully in both my words and deeds.” Any work that does not will be reported to the Academic Honor Board. For more detail on what constitutes an academic violation of the Honor Code, please the Student Accountability webpage.

More specifically: 

The Computer Science Department follows the Mount Holyoke College Honor Code. Work submitted for grading must be entirely your own, unless you were instructed to work in groups. The purpose of course homeworks is to practice skills, gain a deeper understanding of the course material, and apply that knowledge to new situations. Homeworks are designed to challenge you, stimulate critical thinking, and help you understand the concepts related to the course. Your grade is a reflection of your understanding of the material. 

We recognize that collaboration can help you master course material. In fact, there are certain ways in which we will encourage you to collaborate. These include: 

However, you must do all write-ups on your own. Writing solutions on your own will test and demonstrate your mastery of course material. 

Looking at solutions from other students or any other source (including the web), or collaborating to write solutions to individual work, is considered a violation of the honor code. All suspected violations will be referred to the academic honor board. If you are uncertain whether something is allowed, it is your responsibility to ask.

If you have engaged in any of the above acceptable collaboration activities for a homework, you MUST acknowledge the classmates or TAs with whom you spoke – this should be done as a note when you submit your work.

Note that the Association for Computing Machinery has a strong Code of Ethics and Professional Conduct.  At this site you can read both the current Code from 1992 and the draft of the new 2018 version.

Honor code dos and don'ts

These lists are intended to clarify what types of behaviors are and are not generally permissible. Follow these guidelines unless specifically directed otherwise. (clarify if uncertain)

Do:

Don’t:

Audio/Visual Recording Policy 

To encourage active engagement and academic inquiry in the classroom, as well as to safeguard the privacy of students and faculty, no form of audio or visual recording in the classroom is permitted without explicit permission from the professor/instructor or without a letter from AccessAbility Services, signed by the faculty member, authorizing the recording as an accommodation. Authorized recordings may only be used by a student who has obtained permission and may not be shared or distributed for any reason. Violation of this policy is an infraction of the Mount Holyoke Honor Code and academic regulations and will result in disciplinary action. 

Thanks to Dan Sheldon for so generously letting me use his materials from his version of this course!