CS110: Spring 2020

Intro to Computer Programming with Python

CS110: Spring 2020

Syllabus

Term Spring, 2020
Course CS 110: Intro to Computer Programming with Python
Prerequisites None
Instructor Sarah Van Wart
Lecture Time Tuesdays and Thursdays, 3:30 - 4:50pm
Lecture Location Online (for now)

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 a combination of synchronous and asynchronous content, which will include a combination of slides, pre-recorded “live-coding” videos (during lecture), programming exercises, and (sometimes) a mini-quiz. We will still be using the scheduled lecture time for more interactive Q&A sessions on Zoom with Sarah (professor Van Wart) to answer any questions about the material for that day. Organizationally, some topics/modules span multiple lectures (see the course schedule). So, you are encouraged to attend the regularly scheduled lecture sessions on Zoom, but everything will be recorded and posted to the website.

Tutorial Sessions

This course involves weekly small-group tutorial sessions where you will work with a member of the teaching staff, beginning in Week 3. Tutorial sessions will be run synchronously (live) by your assigned peer mentors via Zoom. During each tutorial session, you will work through an exercise together with your peer mentor, to advance your understanding of targeted programming concepts. Tutorial sessions count for 10% of your grade.

You must complete/attend at least five tutorial sessions (4 points each).

There are two ways to earn full participation credit in each tutorial session:

  1. By attending them (synchronously), working through the exercises, and asking questions (as they arise).
  2. By turning in the tutorial exercise(s) before the tutorial session. Tutorial exercises will be posted at the beginning of the week (at least 48 hours in advance).

I (prof. Van Wart) have a strong preference for option #1, because it’s a form of low-pressure, built-in accountability that will help you learn. That said, it’s up to you. Attending and working in the tutorials is worth 10% of your grade. But you have to actually work – if you zone out, we will know, and will not give you credit.

Following the submission deadline, a solution and walkthrough of each problem will be made available via Canvas.

Course Staff

Peer Mentors

  1. Aditi Atreyasa (AditiAtreyasa@u.northwestern.edu)
  2. Alberta Yoo (albertayoo2021@u.northwestern.edu)
  3. Allan Farkash (allanfarkash2020@u.northwestern.edu)
  4. Andrew Chung (andrewchung2022@u.northwestern.edu)
  5. Anthony Chen (anthonychen2021.1@u.northwestern.edu)
  6. Ariella Silver (a.silver@u.northwestern.edu)
  7. Athipat Pipatpinyopong (athipatpipatpinyopong2022@u.northwestern.edu)
  8. Barbara Sledz (barbarasledz2022@u.northwestern.edu)
  9. Caroline Lobel (carolinelobel2022@u.northwestern.edu)
  10. Charlotte Jones (charlottejones2022@u.northwestern.edu)
  11. Chase Duvall (chaseduvall2023@u.northwestern.edu)
  12. Faraaz Beyabani (faraazbeyabani2020@u.northwestern.edu)
  13. Isaac Henry (isaachenry2022@u.northwestern.edu)
  14. Joshua Kennedy (joshuakennedy2021@u.northwestern.edu)
  15. Katherine Johns (katherinejohns2021@u.northwestern.edu)
  16. Kevin Hou (kevinhou2022@u.northwestern.edu)
  17. Lily Yan (lilyyan2023@u.northwestern.edu)
  18. Linus Okoth (linusokoth2023@u.northwestern.edu)
  19. Linxin Chen (linxinchen2021@u.northwestern.edu)
  20. Megan Hwang (meganhwang2023@u.northwestern.edu)
  21. Olivia Gallager (oliviagallager2021@u.northwestern.edu)
  22. Poom Sombutboon (poomsombutboon2022@u.northwestern.edu)
  23. Peter Zhong (peterzhong2023@u.northwestern.edu)

Graduate Teaching Assistants

  1. Michail Mamakos (mamakos@u.northwestern.edu)
  2. Mohammed Alam (mohammedalam2009@u.northwestern.edu)

Course Materials and Resources

Free Online Books

Software

As this is a programming course, you will be using some free software programs (TBD). Installing and configuring programming software can be a hassle, but it is part of the process of developing your working computing knowledge. We will help you.

Getting Questions Answered

Assignment & Programming Questions

For assignment and programming related questions you should post questions on our class Piazza site. Before you post a question, please do a quick search to make sure that one of your classmates hasn’t already asked the same question. Piazza gives you the option of posting anonymously (to your classmates) so that you don’t feel intimidated to ask a question. As a general rule, do not post ANY code that would be part of an answer to an assignment question. It is critical that you use Piazza for assignment questions; any assignment questions emailed directly to any course staff will be forwarded to Piazza.

If you have a question about code that requires you to show someone your code, please go to one of the peer mentor office hours. These hours (days/times/locations) are posted on a google calendar linked to from the Piazza resources page (under the ‘course information’ tab) for our class. In general, please use the peer mentor hours, these mentors were selected from a large number of applicants and are highly qualified!

Grading Questions

For grading questions/concerns you should go to the graduate TA’s grading office hours (also posted on the google calendar). You can also send them a private message through Piazza 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. See the course Canvas page for the Zoom password.

Grading

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

2 Projects 2 x 40 Points 80 Points 40%
1 Exam 60 Points 60 Points 30%
5 Homeworks 5 x 8 Points 40 Points 20%
5 Tutorials 5 x 4 Points 20 Points 10%
    200 Points 100%

Ordinarily, 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. However in light of the COVID-19 situation, the provost has instituted Pass/No Pass grading for all undergraduate students. In this class, that means that if you earn at least 140 points (i.e. a 70% or above), you pass.

To me, the P/NP option is a wonderful opportunity to explore ideas without the stress. That said, I absolutely encourage you to complete ALL of the assignments to the best of your ability. 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.
  3. Exam 2 will be on the last day of class (Thursday, 6/4). The purpose of Exam 2 is to get a second chance if for some reason, don’t do well on your first exam.

Homework Grading

Homework will be approximately weekly. They are due at 11:59pm on Tuesdays unless otherwise specified.

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 0 Points Little to no understanding/effort demonstrated
Check minus 4 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, this testing/grading 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 Piazza within 1 week to the graduate TA (Mohammed Alam - MohammedAlam2009@u.northwestern.edu) to resolve the issue. We will NOT drop any scores in this class, but may offer up to 15 points of extra credit. Finally, it is your responsibility to keep up-to-date on class material and announcements. This includes material presented and announcements made in class, via email, or on Piazza.

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.

Zoom Instructions

To ensure a smooth lecture experience for everyone, we have created a Zoom Guide for you. Please refer to it to understand how to access the course Zoom sessions, and some of the recording and etiquette policies.

A Note on Class Recordings

The Provost’s office has asked instructors to publish the following language in the syllabus:

Class Recordings

This class or portions of this class may be recorded by the instructor for educational purposes. These recordings will be shared only with students enrolled in the course and will be deleted at the end of the Spring Quarter, 2020 course. Your instructor will communicate how you can access the recordings.

Policy On Unauthorized Student Recording of Classroom or other Academic Activities

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.

Accommodations for Students with Disabilities

Any student requesting accommodations related to a disability or other condition is required to register with AccessibleNU (847-467-5530) and provide professors with an accommodation notification from AccessibleNU, preferably within the first two weeks of class. All information will remain confidential.