CS110: Fall 2021

Intro to Computer Programming with Python

CS110: Fall 2021

Syllabus

Term Fall, 2021
Course CS 110: Intro to Computer Programming with Python
Prerequisites None
Instructor Sarah Van Wart
Lecture Time Monday, Wednesday, & Friday, 10:00 - 10:50am
Lecture Location Lutkin Hall

About the Course

CS 110 is an introduction to computer programming using Python, and assumes no prior programming knowledge. The intent of the course is twofold. First, we want to give you a sense of the kinds of problem-solving and creative pursuits that programming can support. Programming can be many different things — a representational medium, a tool for thinking about problems, a way of amplifying and/or communicating ideas, a means of performing complex calculations over massive datasets, and so forth. Most people who write computer programs are not computer scientists, but rather people who occupy a range of professions (journalists, geographers, sociologists, scientists, artists, musicians, entrepreneurs, researchers, etc.), and who use various programming languages to accomplish diverse and specialized goals. Moreover, as data and computing increasingly mediate modern life, knowing a bit about the mechanisms (and risks!) that underlie these systems is a valuable modern literacy that is likely to serve you well.

A second goal of the course is to introduce you to the fundamental constructs of computer programming, and some skills and strategies for helping you apply these low-level constructs in creative and useful ways. Towards this end, there will be quite a few drills and practice problems to get you familiar with ‘the basics.’ You need to dedicate enough time to practicing the basics: the fun, creative parts of programming are only possible when you understand the building blocks; and understanding comes from an active, consistent, and iterative engagement with new ideas. Taking this course means committing — for 10 weeks — to attending lectures and office hours, turning in assignments / projects, doing (lots of) practice problems, and most importantly, persevering when things get difficult and asking questions. We have an excellent staff of teaching assistants and peer mentors who are here just for you and your questions and ideas. With your consistent and active participation in your own learning, we can guide you through the material so that you can become a proficient programmer. Welcome to the course!

Course Format

Lectures

Lectures will be both synchronous and asynchronous. We will use our scheduled class time to do practice problems together and make sure your questions get answered. All in-class lectures will be recorded. You will also be assigned some pre-recorded videos, which cover specific concepts and ideas that we will be practicing during lecture. Organizationally, some topics/modules span multiple lectures (see the course schedule).

Bottom line: We want you to attend the in-person lectures. That said, all lectures will be recorded and posted to the website, and therefore it is possible to successfully complete this course without ever attending a “live” lecture.

Tutorial Sessions (Your Participation Grade)

The best way to learn how to program is to practice writing lots of programs. To encourage this, you will sign up for a required tutorial section on on Friday, 9/21. There will be around 17 tutorial sections that you can sign up for (with around 12 students per section). Your tutorial peer mentor will be your “go to person” for the course – feel free to reach out to them with any questions or concerns that you may have.

These tutorials have a few goals:

  1. To help you become familiar with the types of strategies you might use to approach problems (which will be closely related to the homework / projects).
  2. To force you to write lots of programs (practice makes perfect!)
  3. To help you to assess what you know and don’t know, so that you can make a plan to attend office hours.

Tutorials will be graded pass/fail. Even if you don’t get everything working perfectly, you will still get full credit if you demonstrate a good-faith effort. You must submit at least 7 tutorials, but are encouraged to complete them all.

Course Staff

We have 17 peer mentors (BA/BS or MS students) and 2 graduate TAs to help you:

Peer Mentors

Graduate Teaching Assistants

Course Materials and Resources

Free Online Books

Installing Software

As this is a programming course, you will be using some free software programs and libraries in order to write Python programs. Installing and configuring this software can be a huge hassle, but it is part of the process of developing your working computing knowledge.

If you are struggling to get Python and your code editor installed, this is (alas) normal (ask any software engineer). This is also one of the reasons why we have such a big course staff: to troubleshoot individual laptop problems with students.

Getting Questions Answered

Office Hours

Office hours (and tutorials) are hands down THE BEST resource this course has to offer. We have 19 TAs/peer mentors whose job is to help you to be successful and find your own power as current and future programmers. That said, it’s up to you to take initiave and cultivate a weekly / bi-weekly office-hours-going practice that works for you and your schedule. This looks different for everyone: some people go to 1-2 office hours sessions per week and finish their homework with a TA or peer mentor nearby (if needed). Other students never go to office hours (though this is rare, as the homeworks and projects are challenging). Also, different people connect with different TAs/peer mentors, so do shop around to find a person with whom you work well…and drop in sooner rather than later!

The kinds of questions that are perfectly legitimate to ask in office hours include (but are not limited to):

Campuswire

For assignment- and programming-related questions you should post questions on our class Campuswire site.

Register for Campuswire

To register for the course Campuswire (you will only have to do this once), please click this link: https://campuswire.com/p/G7DE56EF3 and use the following join code: 1793.

Some guidelines for using Campuswire:

Grading Questions

For grading questions/concerns you should contact one of the graduate TAs. You can also send them a private message through Campuswire with assignment grading questions/concerns.

Other Questions

For any other issues that you think are not appropriate for the peer mentors or graduate TAs, please come talk to me. This might include things like concerns about your progress in the course, questions about content from my lectures, personal matter related to your participation in the course, larger grade concerns, advice about future courses, majors and internships, etc.

Office Hours

Office hours and locations / Zoom links are posted here. Some office hours will be in person. Others will be virtual. See the course calendar for details.

Grading

Your course grade is calculated based on 200 points as follows:

2 Projects 2 x 40 Points 80 Points 40%
2 Quizzes (of 3) 2 x 30 Points (lowest score dropped) 60 Points 30%
5 Homeworks (of 6) 5 x 8 Points (lowest score dropped) 40 Points 20%
7 Tutorials (of 9) 7 x ~3 Points (lowest scores dropped) 20 Points 10%
    200 Points 100%

Final grades are assigned on a fixed scale: 93-100 is an A, 90-92.99 is an A-, 87-89.99 is a B+, etc. Some other logistics:

  1. Final course grades will not be rounded or curved.
  2. We will not be using the final exam time for this class.

NOTE: Leniency is built into the course

Because there are unprecedented and uncertain times, I have built leniency into the design of the class. You will be able to:

  • drop your lowest quiz score (best 2 of 3)
  • drop your lowest homework score (best 5 of 6)
  • Keep your best 7 tutorial scores (best 7 of 9)

I have done this to make the class equitable. Use this leniency wisely. In other words, skipping HW1, Quiz1, and Tutorial1-2 is an ill-advised approach. I will not grant additional exceptions unless the circumstances are truly exceptional, and this will need to go through the Dean of Students (or some similar NU entity).

Homework Grading

Homework will be approximately weekly, and is due at 11:59pm on the specified date.

We will still accept late homework up to 48 hours after the original due date, but with a 2 point penalty (25%). Homework is graded on the following scale:

No submission / little understanding 0 Points Little to no understanding/effort demonstrated
Check minus 3 Points Some effort made, but significant features are missing or not working
Check 6 Points Mostly working, but some errors or issues were found
Check Plus 8 Points Working exactly as it should

On occasion, the grader may make an error. You will receive your assignment grades on Canvas. If you have any grading questions/concerns, please send a private message on Campuswire within 1 week to the graduate TA to resolve the issue. Finally, it is your responsibility to keep up-to-date on class material and announcements, as the schedule is subject to change. This includes material presented and announcements made in class, via email, or on Campuswire.

Policy on Academic Honesty

In the past, there have been a few unfortunate instances in which students have presented work other than their own. For the programming assignments: You are allowed (encouraged, even!) to discuss general approaches to solving problems, but all work you submit must be your own. Working “together” and presenting variants of the same file is not acceptable. Here are some specific guidelines to make sure you don’t cross the line:

Contact Sarah Van Wart if you have any questions about what is appropriate.

Syllabus Statements from the Provost’s Office

Below, we have also included the following statements, written by the Provost’s office:

Academic Integrity

Students in this course are required to comply with the policies found in the booklet, “Academic Integrity at Northwestern University: A Basic Guide”. All papers submitted for credit in this course must be submitted electronically unless otherwise instructed by the professor. Your written work may be tested for plagiarized content. For details regarding academic integrity at Northwestern or to download the guide, visit: https://www.northwestern.edu/provost/policies/academic-integrity/index.html.

Accessibility

Northwestern University is committed to providing the most accessible learning environment as possible for students with disabilities. Should you anticipate or experience disability-related barriers in the academic setting, please contact AccessibleNU to move forward with the university’s established accommodation process (e: accessiblenu@northwestern.edu; p: 847-467-5530). If you already have established accommodations with AccessibleNU, please let me know as soon as possible, preferably within the first two weeks of the term, so we can work together to implement your disability accommodations. Disability information, including academic accommodations, is confidential under the Family Educational Rights and Privacy Act.

COVID-19 Testing Compliance

To protect the health of our community, Northwestern University requires unvaccinated students who are in on-campus programs to be tested for COVID-19 twice per week.

Students who fail to comply with current or future COVID-19 testing protocols will be referred to the Office of Community standards to face disciplinary action, including escalation up to restriction from campus and suspension.

Prohibition of Recording of Class Sessions by Students

In this class, we will NOT be recording classes. Note from the Provost’s office:

Unauthorized student recording of classroom or other academic activities (including advising sessions or office hours) is prohibited. Unauthorized recording is unethical and may also be a violation of University policy and state law. Students requesting the use of assistive technology as an accommodation should contact AccessibleNU. Unauthorized use of classroom recordings — including distributing or posting them — is also prohibited.

Under the University’s Copyright Policy, faculty own the copyright to instructional materials — including those resources created specifically for the purposes of instruction, such as syllabi, lectures and lecture notes, and presentations. Students cannot copy, reproduce, display or distribute these materials. Students who engage in unauthorized recording, unauthorized use of a recording or unauthorized distribution of instructional materials will be referred to the appropriate University office for follow-up.

Support for Wellness and Mental Health

Northwestern University is committed to supporting the wellness of our students. Student Affairs has multiple resources to support student wellness and mental health. If you are feeling distressed or overwhelmed, please reach out for help. Students can access confidential resources through the Counseling and Psychological Services (CAPS), Religious and Spiritual Life (RSL) and the Center for Awareness, Response and Education (CARE). Additional information on all of the resources mentioned above can be found here:

COVID-19 Classroom Expectations

Students, faculty, and staff must comply with University expectations regarding appropriate classroom behavior, including those outlined below and in the COVID-19 Code of Conduct. With respect to classroom procedures, this includes:

  • Policies regarding masking and social distancing evolve as the public health situation changes. Students are responsible for understanding and complying with current masking, testing, Symptom Tracking, and social distancing requirements.
  • In some classes, masking and/or social distancing may be required as a result of an Americans with Disabilities Act (ADA) accommodation for the instructor or a student in the class even when not generally required on campus. In such cases, the instructor will notify the class.
  • No food is allowed inside classrooms. Drinks are permitted, but please keep your face covering on and use a straw.
  • Faculty may assign seats in some classes to help facilitate contact tracing in the event that a student tests positive for COVID-19. Students must sit in their assigned seats.

If a student fails to comply with the COVID-19 Code of Conduct or other University expectations related to COVID-19, the instructor may ask the student to leave the class. The instructor is asked to report the incident to the Office of Community Standards for additional follow-up.

Exceptions to Class Modality

Class sessions for this course will occur in person. Individual students will not be granted permission to attend remotely except as the result of an Americans with Disabilities Act (ADA) accommodation as determined by AccessibleNU.

Maintaining the health of the community remains our priority. If you are experiencing any symptoms of COVID do not attend class and update your Symptom Tracker application right away to connect with Northwestern’s Case Management Team for guidance on next steps. Also contact the instructor as soon as possible to arrange to complete coursework.

Students who experience a personal emergency should contact the instructor as soon as possible to arrange to complete coursework.

Should public health recommendations prevent in person class from being held on a given day, the instructor or the university will notify students.