Table of Contents
This course is a hands-on introduction to programming using the Python programming language. It covers basic programming constructs including statements, expressions, variables, conditionals, iteration, and functions, as well as object-oriented programming, and graphics. It is recommended for non-majors, and students with less math, and science background.
Computer programming relies on organized thinking, creative problem solving, and the precise description of solutions. In this course we introduce core concepts, and techniques of computer programming as a way to develop these skills, as basis for further CS study, and for application to other fields.
We’ll cover the basic principles of computer programming, a tiny part of the computer science discipline. We’ll learn about a programming language (Python) – how to write, run, and create new programs in this language.
Students interested in introductory Computer Science, but who are not intending to be CSC majors should generally take CSC 161. This course is also appropriate for students who may want to pursue a CSC degree, but who want a gentler introduction to the discipline.
Additionally, CSC 161’s cousin course CSC 171, is more intensive than CSC 161, provides preparation for subsequent CSC courses, and is a requirement for CSC majors. CSC 161 is not equivalent to CSC 171 for Computer Science degree programs, and will not satisfy the requirement for CSC 171.
Python is a widely used general-purpose, high-level (“easy”) programming language. Its design philosophy emphasizes code readability, and its syntax allows programmers to express concepts in fewer lines of code than would be possible in languages such as C++ or Java.
This course uses Python version 3.7, or later.
Class will meet:
Hoyt Hall Room 104
The full class schedule can be found on the Schedule page.
There is no required textbook for this course; however, I do maintain a list of recommended books, and resources can be found in the Reading Room.
The course will now employ the following tools to facilitate distance learning. Please make sure you explore, and become comfortable with this. The following are the tools you will interface with to communicate with me, and the class.
The topics covered in this course can be found on the Lectures page.
For Spring and Fall semesters, do not require attendance, but it is highly encouraged; however, it is required for in-class exams. Attendance during summer sessions is required.
Labs Assignments (a.k.a. “homework”) are typically due 7 days from assignment date. All lab assignments are individual work, and academic honesty dictates an enforcement of this.
You must be registered for one lab section, and a lab TA from that section will be assigned to you to be your primary grader. If you wish to switch labs, you must change your registration through the registrar.
Lab section attendance is not required. It is there for your use of the computers, consultation with the lab TAs, and honest collaboration with fellow students.
Lab TAs can only be utilized in person in a lab room, or by Zoom meeting (if we are remote learning). If we are back to in-person/in-class learning, the lab TAs will not be allowed to provide you any significant help by e-mail or Zoom.
Find your assigned lab TA on the Labs page.
You must be registered for one workshop section, and you must attend only that section unless you officially switch sections with the registrar.
Find your workshop leader on the Workshops page. Workshop leaders will not be allowed to help you with labs, quizzes, exams, or projects. Please see a lab TA for this help.
Workshops attendance, and participation are mandatory, and part of your final grade.
- The following is the policy on switching workshops:
If you wish to permanently change a workshop you do not need my permission to do so if UR Student allows it.
If you need to permanently switch a workshop you must add/drop the section(s) using online registration (UR Student), or the registrar’s Add/Drop form.
If you wish to visit another workshop temporarily, you must e-mail both your regular and temporary workshop leaders.
In regular circumstances, workshops do not require any material to be handed in.
Projects are individual work, and academic honesty dictates an enforcement of this.
There will be one class project (individually done) assigned early in the semester, and to be due at the end of semester. It will be split into three ‘milestone’ objectives.
Each project milestone is typically due 3 weeks from assignment date. Submissions are done through Gradescope, and are mostly code auto-graded.
Quizzes are individual work, and academic honesty dictates an enforcement of this.
There is a 2 day window to begin a quiz, and then 1 hour to complete it. You cannot pause working on a quiz. Submissions are done through Gradescope, and are code auto-graded.
Exams are individual work, and academic honesty dictates an enforcement of this.
A 2 day window to begin an exam, and then 2 hours to complete it. You cannot pause working on a exam. Submissions are done through Gradescope, and while multiple choice questions are auto-graded, code answers are not auto-graded and are graded by your lab TA.
There will be two exams, a midterm, and a final.
I anticipate providing new recordings of lectures in Panopto. I also have archived, older recordings as well. This is not a guaranteed offering, however.
This course follows the College credit hour policy for four-credit courses. This course meets twice weekly for three academic hours per week. The course also includes labs, and workshops for four and one-half academic hours per week.
35% Exams (17.5% Midterm, 17.5% Final)
20% Homework Assignments
10% Workshop attendance, and participation
All class content is submitted through Gradescope.
E-mailed submission of assignments will be ignored.
Gradescope will allow you to re-submit an assignment multiple times. Only your last submission will be graded.
Verify that your submissions on Gradescope were successful. It is your responsibility, and failure to do so will not constitute any urgency, or care on my part.
Gradescope employs a mix of automated and manual grading. Gradescope will disclose all rubric items for an assignment when submitted.
Blackboard and Gradescope will list all due dates for assignments. I will unlikely mention due dates in class.
It is your responsibility to refer to Blackboard/Gradescope for these details.
It is your responsibility to keep track of your grades, and to query your lab TAs, workshop leaders or me if you have grading questions.
All appeals of grades for any component of the course (homework, project, quiz, exam, etc.) must be made within one week of the grade being posted, after that they will be ignored.
Make Up Work
All graded components of the course will receive a grade of zero if they are handed in late. All due dates are clear, and concrete except in cases of valid excuses.
Attend only the lecture, lab or workshop section for which you are registered. All changes must involve UR Student, or the registrar’s Add/Drop form.
I will refuse new student registrations after the second week of the course.
Students who are unable to attend, or complete any part of the course due to illness should contact the instructor as soon as possible. Please note that the University Health Service (UHS) does not provide retroactive excuses for missed classes. Students who are seen at UHS for an illness, or injury can ask for documentation that verifies the date of their visit(s) to UHS without mention of the reason for the visit. Students with extended or severe illness should contact the College Center for Advising Services (CCAS) for advice, and assistance.
Students with an appropriate excuse for missing a deadline for a component of the course (exam, lab, project) must make arrangements in advance with me. No prior arrangement, no excusal! What constitutes appropriate is left to my final discretion.
This course follows the University policy regarding incompletes:
“Incompletes may be given only when there are circumstances beyond the student’s control, such as illness or personal emergency, that prevented the student from finishing the course work on time.”
Practice good habits with regard to your data (backups, cloud storage, etc). A broken computer is not an excuse, as you should have backups, and any computer lab on campus will have Python 3 installed, allowing you to complete your work.
Most electronics (mostly, phones) are not permitted in class. I will ask you to put away a phone if it is disrupting the class.
I understand that you may want to use your laptop to program along with me, in the lecture. I am OK with that; however note that research shows that students who take notes using pen, and paper retain significantly more of the information. Typing your handwritten notes into the computer after class improves understanding, and retention even more.
If you have an approved accommodation that requires the use of a laptop, or other electronic device in class in a manner beyond what is approved, you must make arrangements with the instructor.
Students are encouraged to discuss the course material, and the assignments with each other, but the submissions must be individual and unique work.
You must be able to explain anything you submit, in person at any time, at the instructor’s, or TA’s discretion.
All assignments, and activities associated with this course must be performed in accordance with the University of Rochester’s Academic Honesty Policy.
I have zero tolerance for cheating, and will begin immediate Academic Honesty procedures if it is suspected.
Academic dishonesty in CSC 161 can involve a wide range of offenses:
Copying papers, online answer keys, or answers on exams, or allowing others to copy your work.
Using unauthorized aid during a quiz, or exam.
Altering answers on graded exams and submitting them for re-grading.
Copying data from other students’ labs or projects, or allowing others to copy your data.
Using labs, papers or assignments from previous semesters or from other students and submitting them for credit
Providing your classwork from this semester to students in future semesters.
CETL offers a study group for CSC 161. Study Groups offer an opportunity to study collaboratively with classmates under the guidance of an upper-level undergraduate leader who did well in the same course in an earlier semester. This is completely optional, and a great, free resource.
The University of Rochester respects, and welcomes students of all backgrounds, and abilities. In the event you encounter any barrier(s) to full participation in this course due to the impact of disability, please contact the Office of Disability Resources. The access coordinators in the Office of Disability Resources can meet with you to discuss the barriers you are experiencing, and explain the eligibility process for establishing academic accommodations. You can reach the Office of Disability Resources at: firstname.lastname@example.org; (585) 276-5075; Taylor Hall.
Students with an accommodation for any aspect of the course must make arrangements in advance through the Disability Resources office. Then, as instructed by the office, contact the instructor to confirm your arrangements. Do not leave this until the last minute.
Portions of this class website are from Hands-on Python Tutorial used with modification, in accordance with the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. This site is also released under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.