Syllabus



Logistics

Time and Location
MW 8:40 AM-9:55 AM in 75 Shannon, Room 224
MW 10:40-11:55 AM EST, Optional Zoom Lecture (see updated Participation requriements)
(Click link to join, or see additional zoom instructions.)
Faculty Info
Shelby Kimmel
Please call me "Professor Kimmel" or "Professor"
Pronouns: she/her
Office: 75 Shannon, Room 210 (but do not visit me there!)
skimmel [at] middlebury (dot) edu
Office Hours
Location: Zoom Office Hours (Click link to join, or see additional zoom instructions.)
Please come to office hours with specific questions, comments, or concerns
  • Drop-in: Mon 9-10am, Mon 1-2pm, Wed 4:30-5:30pm
  • Appointment: Wed 9-10am, Thurs 4-5. Reserve a time at go/KimmelHours.
  • If these options don't work, please send me an e-mail.
Communication
  • I will e-mail you for urgent matters.
  • You can always e-mail me, but I will not answer coding questions or problem set questions via e-mail, (I only answer these types of questions in office hours) except for logistical or typo questions.
  • I will keep the Calendar up-to-date with assignments and lecture notes.
Peer Tutors
CS Tutoring Site Schedule TBD, will be on Zoom.
Crowd Notes
Crowd Notes
Canvas Site
Canvas Site
Department Wiki
Department Wiki

Goals

Learning Goals are broad goals that I want you to achieve by the end of the course. Learning Objectives are concrete, measurable learning outcomes that will help you to reach the Learning Goals.

Learning Goals

Learning Objectives


Environment

My goal is to create a classroom environment that is equitable, inclusive, and welcoming, in order to promote learning for all students.

Names/Pronouns

I will honor your request to address you using your preferred name and pronoun. I will collect this information in the first week of class, but feel free to communicate this information to me through e-mail at any time.

Academic Accommodations

Students with documented disabilities who believe that they may need accommodations in this class are encouraged to contact me as early in the semester as possible to ensure that such accommodations are implemented in a timely fashion. Assistance is available to eligible students through Student Accessibility Services. Please contact the ADA Coordinator Jodi Litchfield, who can be reached at litchfie@middlebury.edu or 802-443-5936 for more information. All discussions will remain confidential.

Title IX

You deserve a community free from discrimination, sexual harassment, sexual assault, domestic violence, dating violence, and stalking. If you experience or know of a Title IX violation, you have many options for support and/or reporting; see go/titleIX. Note that I am a mandatory reporter.


Learning

Learning happens when you develop new neural pathways. You do this by repeatedly practicing new skills. My role is to facilitate your learning by providing guided practice with feedback. I expect you to manage your time to foster learning: it takes time to build new neural connections, and last minute cramming, or trying to complete the problem set in one sitting, is not conducive to long-term learning.

Based on your past learning experiences, you may already have the neural pathways in place to quickly learn certain topics, while you may have to work harder on others. This has nothing to do with your ability to learn this material. You all have the capacity, with sufficient practice, to rewire your brains to become experts in this subject.


Honor Code

All work you turn in should be your own. However, collaboration on problem sets and programming assignments is encouraged. Please adhere to the following guidelines:

For problem sets, you must acknowledge your collaborators, and write up your solutions on your own, using your own words. I recommend practicing solving some problems on your own, since this is what you will have to do for quizzes and exams.

For programming assignments, you may work with others to understand the project and sketch out an approach. Then, when you are ready, without the notes you used while working with others, write your own program. You may also discuss debugging approaches with a peer, but you should make changes to your code on your own. You may use code snippets that you find online to implement specific functionality, if you make a note in a comment about where you found the code, but you should not try to find code online that implements the full assignment.

The exams and quizzes must be entirely your own work. Exams and quizzes should be completed only with the resources specified on that exam's instructions. You may not share any information about tests or quizzes with any other students, either within or outside of the course.


Class Participation

There are three components for class participation: exit ticket, group participation, and personal participation.

Exit Tickets

After each class video and notes are held/posted, you have ~36 hours to fill out an exit ticket on Canvas. You should write one thing you learned from the class/notes, and one question or confusion. You have 5 free exit tickets (exit tickets that you can skip without penalty).

Choose Your Own Group Problem Solving Participation

Most of us are physically isolated from others, so this will give us an opportunity to connect, which can be good for our mental health! Also problem solving in groups helps you to learn. Explaining your thoughts solidifies your thinking, and understanding other people's perspectives broadens your conceptions. Additionally, working with other students will help you to build a community within the computer science department. Finally, practicing working in groups will help you to become a better team member no matter what you do after Middlebury.

To earn full credit for group participation, please do at least one of the following each week:

Group participation is based on effort and your ability to create a positive learning envirotnment for everyone in your group. Here are ways you can participate in your group: Suggest an idea; Keep track of suggested ideas/work so far; Ask questions: ask for clarification, ask for more time to think, ask someone to repeat what *you* just said/wrote, ask someone to rephrase what *they* just said/wrote; Try to restate in your own words something someone else said/wrote; Provide encouragement.

Choose Your Own Personal Participation

You should also participate in one or more of the additional ways:


Assessments

Problem Sets

The problem sets provide you with low-stakes opportunities to practice problem solving, to make mistakes, and to build up new neural connections before taking quizzes and exams. You will often have to transfer knowledge from a problem you've seen before to a new context. The only way to develop this skill is to practice. If you need additional practice beyond the problem set, see these textbooks.

You will be graded on effort and thoughtfulness, not correctness. Please see these detailed instructions for how to submit the Rough Draft, Problem Set, and Self-Assessment.

Sometimes, life happens. You can not submit up to 2 of each problem set part without an effect on your grade. If you turn in all problem sets, I will drop your two lowest grades. You do not need to tell me when you are not turning them in. You are still responsible for all material.

If you are the first to find a typo in any material, I will give you a small bonus.

If my problem set deadlines are not working for you (for example, you have a regular evening commitment, or you prefer to work at 2am - not recommended!) please let me know and we can work to find deadlines that are acceptable to us both.

If being graded based on effort does not work for you and you would prefer to be graded based on correctness, please let me know and we can work to find an alternative that is acceptable to us both.

Programming Assignments

There will be several programming assignments. They will be graded for correctness, readability, documentation, and style. The goal of the assignments is to learn about and overcome the challenges of translating theoretical algorithms into code.

Quizzes

There will be a weekly quiz for me to assess your understanding and problem solving. Additionally, giving these types of assessments improves learning through the "testing effect." Quizzes will usually consist of two problems, one from topics on the problem set due earlier that week, and one from earlier topics. Quizzes will be taken through Canvas. All quizzes must be completed individually but you may use the crowd-sourced notes. I will drop your two lowest quiz scores.

Tests

The midterms will be self-scheduled. You should plan to set aside 3 hours during the exam windows to take the test. If your schedule will not allow this, please let me know as soon as possible. The dates of the midterms are:

The final will be available through Canvas, and you can take the final at any point during the exam period, from May 14-19. However, if you take it by May 16 AOE (that's anywhere on earth time zone) I will get you your grade (hopefully in the class overall, but definitely on the final) by May 19.

Self-grade

At the end of the semester, you will give yourself a final grade based on your self-grading criterion.

Lateness

I expect all work to be handed in on time. If you are unable to meet a deadline, it is important that you get in touch with me as soon as possible. (If you plan to use one of your dropped quizzes or problem sets, you do not need to let me know.)


Grading

Your final grade will be determined as follows:


Texts

There are no required texts; lecture notes are posted on the crowd-sourced notes. However, you may find the following textbooks useful for finding practice problems. In addition, you may find SensusAccess helpful, a service which converts pdfs into mp3 or ebook format.

The following e-books are available through the Middlebury library or open access. If you find another resource that you is helpful, please let me know, or better, post to the Crowd Notes. If you would like to review topics from CS200, see these texts and several pdfs posted filed on Canvas Files Resources By Topic:
Topic Chapters
Divide and Conquer
  • ItA: 4
  • Algs: 1.1-3
QuickSort
  • ItA: 7
  • Algs: 1.5
Dynamic Programming
  • ItA: 15
  • Algs: 3
Greedy Algorithms
  • ItA: 16
  • Algs: 4
Shortest Paths
  • ItA: 24/li>
  • Algs: 8
NP and Reductions
  • ItA: 34
  • Algs: 12
Randomized Analysis
  • ItA 5
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.