Syllabus
Common Questions
- Quizzes: We do not offer extensions or reopen closed quizzes because we release the answers. We understand that there are many valid reasons why a student may miss a quiz, so we drop the two lowest quiz scores to account for these circumstances.
- Manual Grading: Grading in CS220 is results-based. We do not manually grade code that looks almost correct or fix mistakes in code. You are responsible for ensuring that your code passes the autograder tests.
- Getting Help: Office Hours, Piazza, attend Lab. Email is the slowest way to get help.
- The best way to study for the exams: Check out the old exams found under the Resources tab at the top of the webpage.
- I missed lecture: Check out the files for the missed lecture. The notebooks developed during lecture and the solutions are posted there after class. Do the reading, study the worksheets and their posted solutions. Attend office hours with questions.
Course Description
Welcome to your first programming course! CS 220 / CS 319 (Data Science Programming I) is a gentle introduction to coding for students outside of Computer Science. Our goal is simple: to write Python code to answer questions about real datasets. CS 220 / CS 319 will require you to practice coding a lot this semester. CS 220 students will complete 13 programming projects. CS 319 students will complete 9 programming projects and work on a self-chosen graduate-level project. It's a lot of work, but if you take this course seriously and invest the time, you'll walk away with an incredible new skill: the ability to make computers work on your behalf. Students must have access to a laptop with MAC or Windows OS, where they can install Python to complete projects for this course.
CS319 meets with CS220, and common aspects between CS319 and CS220 include lectures, quizzes, exams, and the first nine programming projects.
Additions To Syllabus Made During Semester
- Added common questions to the top of the syllabus.
Readings
We'll assign readings from four primary sources this semester (all free). Stay on top of them!
- Python for Everybody by Barb Ericson, et. al.: Read Online
- Think Python 2nd Edition by Allen B. Downey: Read Online
- Automate the Boring Stuff with Python by Al Sweigart: Read Online
- Course Notes (we'll sometimes write these ourselves)
Course Instructors
- Mike Doescher (Teaching Faculty - Department of Computer Sciences) mdoescher@wisc.edu
- Louis Oliphant (Teaching Faculty - Department of Computer Sciences) ltoliphant@wisc.edu
Lectures (Meeting Time and Location)
- LEC001 2650 Mosse Humanities Building MWF 08:50 AM - 09:40 AM
- LEC002 2650 Mosse Humanities Building MWF 11:00 AM - 11:50 AM
- LEC003 204 Educational Sciences MWF 9:55 AM - 10:45 AM
- LEC004 145 Birge Hall MWF 1:20 PM - 2:10 PM
Lecture recordings will not be provided. In-person attendance is expected.
Instructional Modality
- LEC001 through LEC004: in-person
CS220 Grading (not applicable to CS319 students)
Your overall grade is based on the following:
- Class surveys: 1%
- 13 Labs: 4% (numbered P1 to P13, none dropped)
- 13 Projects: 47% (numbered P1 to P13, none dropped)
- P1: 1%
- P2-P13 (except P9): 4% each
- P9: 2%
- 10 quizzes: 16% overall (Q1 to Q10 2% each, lowest 2 scores dropped)
- 3 Exams: 32% distributed as follows:
- Exam1 and Exam2: 10% each,
- Exam3 (Final Exam): 12%.
CS319 Grading (not applicable to CS220 students)
Your overall grade is based on the following:
- Class surveys: 1%
- 9 Labs: 2% (numbered P1 to P9, none dropped)
- Projects: 31% (numbered P1 to P9, none dropped)
- P1: 1%
- P2-P8: 4% each
- P9: 2%
- Graduate-level project: 18%
- Graduate Project Part 1: proposal: 4%
- Graduate Project Part 2: data set: 4%
- Graduate Project Part 3: initial code: 4%
- Graduate Project Part 4: final code: 4%
- Graduate Project Presentation: 2%
- 10 quizzes: 16% overall (Q1 to Q10 2% each, lowest 2 scores dropped)
- 3 Exams: 32% distributed as follows:
- Exam1 and Exam2: 10% each,
- Exam3 (Final Exam): 12%.
Graded Component Details
Class surveys are based on filling out surveys: including a start of the semester, end of the semester and two midsemester surveys. Corresponding assignments will be created on Canvas.
- Labs are the first part of the projects. They are self-guided activities designed to prepare you to work on the project.
- Labs and projects are in the same document. You will submit this document twice: once for the lab portion and once for the project portion.
- For P2-P13 you may work on the labs with a partner. This should be the same partner that you work with on the corresponding project
- Attendance at the lab section is not required by highly recommended.
- Labs are submitted to gradescope for grading. The labs have built in auto-grader tests - it is your responsibility to make sure that your work passes the tests.
- You may submit the lab as many times as you wish until the due date. Please make sure the lab you wish to be graded is marked as the active submission.
- If you work with a partner, both partners should submit the lab to gradescope.
- Primarily focus on your ability to write and debug code.
- Please see the course schedule for project due dates. Projects are due by 11:59:00 pm on the day stated.
- Students are required to have access to a laptop with MAC or Windows OS, where they can install Python.
- Partnership:
- For P2-P13, you may work alone or with one project partner of your choosing. We strongly encourage you to find a project partner.
- CS220/319 students can partner up with any other CS220/319 student, no matter which lecture they are enrolled in. We strongly recommend going to the same lab as your partner. Students are not allowed to find a different partner just for the lab.
- Project partners must not work on alternating projects. Project partners must not split the project questions and work on separate half of the project. Both of these will be considered as cheating! The point of partners is to learn from your peers, not to do half the work.
- Ideally, you and your partner would program in pairs (two people sitting in front of a screen at the same time). Take turns writing code and giving advice. This process is called pair programming.
- Submission:
- Every project has auto-grader tests embedded into the project notebook file. It is your responsibility to run auto-grader tests on your local laptop prior to submitting your project.
- Project submission will happen on the GradeScope platform. Additional instructions will be provided in the project notebook file.
- Both partners should upload the project on behalf of both partners.
- Additional Tests may be run once you submit your project to GradeScope. You will receive feedback from these tests and you should revise your project to fix errors identified by the GradeScope tests.
- IMPORTANT: If your project did not clear auto-grader tests, it is your responsibility to attend office hours to figure out further details and get your project to pass the auto-grader tests on time. If your code does not pass the auto-grader tests, your project submission may not be accepted.
- Late Policy:
- Students have a bank of 12 late days for the semester.
- After that you have used your late days a 5% deduction per day late will be applied.
- Projects which are late by more than 7 days will not be accepted.
- If a student's code fails on the GradeScope server, late-day rules still take effect.
- Late days only apply to projects. They do not apply to Quizzes.
- Late days are automatically applied and do not need to be requested.
- Late days may not be used on the last project, P13.
- Project Grading (Code Review):
- Project grading is results-oriented. That means it doesn't matter how much effort you put in; it only matters how well your code works. This means it is essential that your code runs. If we can't run your code for a project, you'll get a zero on that project because the auto-grader tests will fail. We'll never fix the code for you, and we'll never manually give a better grade for code that "looks" almost correct. It is your responsibility to make sure your code clears auto-grader tests.
- Grades are based on auto-grader tests.
- Grades will be posted on Canvas automatically by Gradescope.
- You must follow the provided directions and rubric to solve the project questions. Otherwise, you will lose points.
- Help you assess your understanding of course content (lecture and readings).
- Open notes, computer/Internet use allowed, Python interpreter allowed.
- No collaboration allowed.
- Quizzes will be on Canvas. The quizzes will be multiple-choice, multiple answers, multiple dropdowns, matching, or some other relevant Canvas question style.
- Quizzes focus on content from recent lectures. Topics will be listed in the quiz instructions.
- Out of the 10 quizzes assigned, we will drop your lowest 2 quiz scores. This is meant to accommodate emergencies, technical difficulties, or other unforeseen circumstances.
- Quizzes must be completed before 11:59:00 pm on the date specified. Please see the course schedule for quiz due dates.
- Quizzes do not have a time limit.
- Extensions are not given on quizzes because we release the answers when the quiz closes.
- Measure your ability to read and understand code.
- All lectures will have in-person exams. The location for in-person exams will be shared via Canvas message two days before the exam date.
- Exams are closed-book and closed-laptop. The exams will be multiple-choice scantron (use a #2 pencil). They are cumulative.
- You will be allowed one 8.5-by-11-inch note sheet (printed or written) on both sides, which you must turn in with your exam.
- Exam proctoring tools (eg: HonorLock) will be used if you need to take an online exam. Failure to use the proctoring service will result in a zero on the exam.
- Please see the course schedule for midterm and final exam dates.
- If you miss the first exam your second exam score will replace the first exam score.
- If you miss the second exam hour final exam score will replace the second exam score.
- If you miss both the first and second exams your final exam score will replace both your first and second exam scores.
- If you miss the in person final exam. You will have an opportunity to take the exam online.
Letter Grades
At the end of the semester, we will assign final grades based on these thresholds:
- 93% - 100%: A
- 88% - 92.99%: AB
- 80% - 87.99%: B
- 75% - 79.99%: BC
- 70% - 74.99%: C
- 60% - 69.99% D
Letter grade ranges include decimal points, we round the scores to the hundredths place at the end of the semester.
No extra credit is given in this course.
Incompletes must be finished within 2 weeks of the conclusion of the course. Incompletes are for students who suffer from illness during the last week of class or during finals week. You must have completed P1-P12 to request an incomplete.
How to Succeed in This Course
The best way to succeed in this course would be to:- attend in-person lectures with classroom engagement
- attend and complete all labs prior to attempting projects
- complete projects within the provided deadlines
- take the weekly quiz
- solve prior semester practice exam questions to prepare for exams
Communication Tools
- Piazza: Here, you can ask questions and see questions written by other students. Do not post code snippets that are more than 5 lines long. This is considered cheating!
- Office Hours: To visit Teaching Assistant (TA) / Peer Mentor (PM) / Instructor office hours, please see the schedule on our calendar. To access the calendar, you must be logged in with your UW-Madison credentials.
- Email: Email is the least preferred way of communication. A fast and easy way to get help in this course is via Office hours. If you have a question about your project grading, send an email to your Lab TA. If you don't get a response within 48 hours, please contact your instructor. Please make sure to utilize Office Hours resources prior to sending any email.
- Class Forms: We use several forms to collect information from you.
- Canvas: Grades are uploaded to Canvas. Quizzes will be on Canvas. Note that all Lecture sections have been merged into LEC001 for Canvas. We will also be sending personal messages via Canvas to convey information such as exam room assignments and exam scantron results.
- Course Email: You'll receive announcement emails through compsci220-*-@g-groups.wisc.edu.
Accommodations
Please notify the instructor for your lecture section within the first two weeks of classes:
- If you participate in religious observances that may conflict with course requirements.
- If you have received accommodations from the McBurney Disability Resource Center.
- If you have any trouble accessing or using the technologies being used in this course (such as Piazza, Canvas, and the course website).
- If you need special accommodations for exams (or other components of the course). We'll do our best to accommodate you.
- Extended time and small group testing (~30 students) is already built into the course. There is no need to contact us to request these.
Please notify your instructor if you suffer from an extended (> 1 week) illness.
Cheating
You shouldn't cheat, but what is cheating? This may not be obvious to people taking a CS course for the first time, so everybody should read this. The most common form of academic misconduct in these classes involves copying code for programming projects. Here's an overview of what you can and cannot do:
Acceptable
- any collaboration with your project partner
- doing worksheets with non-project partners
- copying code examples from online examples that is NOT specific to your project (if project solutions are leaked online, you may not use that). If you copy code, you must cite it in your code with a comment (think of it like citing a quote in an essay -- without the citation, you're plagiarizing).
NOT Acceptable
- any form of code sharing (including algorithm sharing) with a non-project partner
- stealing, looking at, copy / pasting, taking picture of non-project partner's code
- project partners working separately on alternate projects
- project partners working separately on one half of the project
- you are not helping your friend by giving them your code.
Similarity Detection: of course, with 1000+ students, it's hard for a human TA to notice similar code across two submissions. Thus, we use automated tools to looks for similarities across submissions. Such similarity detection is an active area of Computer Science research, and the result is tools that detect code copying even when students methodically rename all variables and shuffle the order of their code. We take cheating detection seriously to make the course fair to students who put in the honest effort.
Generative AI: The use of artificial intelligence (AI) tools and applications (including, but not limited to, ChatGPT, DALL-E, and others) for course assignments and assessments does not support the learning objectives of this course and is prohibited. Using them in any way for this course is a violation of the course’s expectations and will be addressed through UW–Madison’s academic misconduct policy, specifically UWS 14.03(1)(b) Uses unauthorized materials or fabricated data in any academic exercise.
Citing Code: you can copy small snippets of code from stackoverflow (and other online references) if you cite them. For example, suppose I need to write some code that gets the median number from a list of numbers. I might search for "how to get the median of a list in Python" and find a solution at https://stackoverflow.com/questions/24101524/finding-median-of-list-in-python.
I could (legitimately) post code from that page in my code, as long as it has a comment as follows:
# copied from https://stackoverflow.com/questions/24101524/finding-median-of-list-in-python def median(lst): sortedLst = sorted(lst) lstLen = len(lst) index = (lstLen - 1) // 2 if (lstLen % 2): return sortedLst[index] else: return (sortedLst[index] + sortedLst[index + 1])/2.0
In contrast, copying from a nearly complete project (that accomplishes what you're trying to do for your project) is not OK. When in doubt, ask us! The best way to stay out of trouble is to be completely transparent about what you're doing.
Learning Outcomes
By the end of the course, students should be able to:
- Write Python code. We will implement all of the concepts and ideas from the course using Python 3.
- Communicate using Computer Science terminology. Using the language of programming to talk about concepts helps ease the exchange of ideas between programmers.
- Build large projects in small steps. Creating milestones and breaking large programs down into smaller functions makes complicated projects more achievable.
- Process data from existing files without manual processing. Dealing with large datasets is much more efficient and less error-prone when the process can be automated.
- Manipulate quantitative information to create models, and/or devise solutions to problems using multi-step arguments, based on and supported by quantitative information.
- Evaluate models and arguments using quantitative information.
- Express and interpret in context models, solutions and/or arguments using verbal, numerical, graphical algorithmic, computational or symbolic techniques.
Student Grievance Procedure
Any student at UW–Madison who feels that they have been treated unfairly has the right to voice a complaint and receive a prompt hearing of the grievance. The basis for a grievance can range from something as subtle as miscommunication to the extreme of harassment. Ensuring that all students feel welcome and supported is a top priority of our department. The Department of Computer Sciences has developed procedures to handle complaints or incidents that are student-related, such as bias or mistreatment, or academic, such as a grade dispute or incident with an instructor. Information on the CS reporting procedures can be found here: https://www.cs.wisc.edu/report-an-incident/. For assistance in determining options, students can also contact the drop-in staff member within the Dean of Students Office at 608-263-5700, within Bascom Hall, Room 70, Monday–Friday, 8:30 a.m.–4 p.m.Official Statements Required on the Syllabus
Course Credits
- CS220: 4 credits
- CS319: 3 credits
Requisites
Satisfied Quantitative Reasoning (QR) A requirement or declared in the Professional Capstone Program in Computer Sciences. Not open to students with credit for COMP SCI 301.
Course Designations and Attributes
- Level: Elementary
- Breadth: Natural Science
- L&S credit type: Counts as Liberal Arts and Science (LAS) credit (L&S)
- General education: Quantitative Reasoning Part B
Credit Hour Policy: Traditional Carnegie Definition – One hour (i.e. 50 minutes) of classroom or direct faculty/instructor instruction and a minimum of two hours of out of class student work each week over approximately 15 weeks, or an equivalent amount of engagement over a different number of weeks. This is the status quo and represents the traditional college credit format used for decades. If you have regular classroom meetings and assign homework, reading, writing, and preparation for quizzes and exams, make this choice.
Regular and Substantive Student-Instructor Interaction: Substantive interaction is engaging students in teaching, learning and assessment through at least two of the following: direct instruction, providing feedback on student work, providing information about course content, facilitating discussion of course content, or other substantive interaction. Regular interaction is: predictable and scheduled interaction with students consistent with the course length (usually at least weekly but more often in a course of short duration). Regular and substantive student-instructor interaction, as defined by the US Department of Education (Within 34 C.F.R. §600.2), is always a requirement of UW-Madison for-credit learning activities. Find more information including examples of regular and substantive instruction.
Official Course Description: Introduction to Data Science programming using Python. No previous programming experience required. Emphasis on analyzing real datasets in a variety of forms and visual communication. Recommended for Data Science majors and other majors
Course Evaluations: UW-Madison now uses an online course evaluation survey tool, AEFIS. In most instances, you will receive an official email two weeks prior to the end of the semester when your course evaluation is available. You will receive a link to log into the course evaluation with your NetID where you can complete the evaluation and submit it, anonymously. Your participation is an integral component of this course, and your feedback is important to me. I strongly encourage you to participate in the course evaluation.
Academic Integrity: By virtue of enrollment, each student agrees to uphold the high academic standards of the University of Wisconsin-Madison; academic misconduct is behavior that negatively impacts the integrity of the institution. Cheating, fabrication, plagiarism, unauthorized collaboration, and helping others commit these previously listed acts are examples of misconduct which may result in disciplinary action. Examples of disciplinary action include, but is not limited to, failure on the assignment/course, written reprimand, disciplinary probation, suspension, or expulsion.
Accommodations for Students with Disabilities: The University of Wisconsin-Madison supports the right of all enrolled students to a full and equal educational opportunity. The Americans with Disabilities Act (ADA), Wisconsin State Statute (36.12), and UW-Madison policy (Faculty Document 1071) require that students with disabilities be reasonably accommodated in instruction and campus life. Reasonable accommodations for students with disabilities is a shared faculty and student responsibility. Students are expected to inform faculty [instructors] of their need for instructional accommodations by the end of the third week of the semester, or as soon as possible after a disability has been incurred or recognized. Faculty will work either directly with the student [you] or in coordination with the McBurney Center to identify and provide reasonable instructional accommodations. Disability information, including instructional accommodations as part of a student's educational record, is confidential and protected under FERPA.
Diversity and Inclusion: Diversity is a source of strength, creativity, and innovation for UW-Madison. We value the contributions of each person and respect the profound ways their identity, culture, background, experience, status, abilities, and opinion enrich the university community. We commit ourselves to the pursuit of excellence in teaching, research, outreach, and diversity as inextricably linked goals. The University of Wisconsin-Madison fulfills its public mission by creating a welcoming and inclusive community for people from every background – people who as students, faculty, and staff serve Wisconsin and the world.