CSC171: Introduction to Computer Science – Spring 2021

Course Description: This course provides a hands-on introduction to programming using the Java programming language. We will cover fundamentals of programming and more advanced topics. Algorithmic thinking and computational problem solving are emphasized. Required for all CSC majors. Lab and workshop required.

Credit hours: This is a four credit class. Students are expected to do significant work outside of class time. This work includes reading, solving programming challenges, programming projects, studying for quizzes, and participating in workshops. This course is expected to require up to eight hours of effort per week.

Prerequisites: No formal prerequisites. This course is appropriate for students without prior programming experience, but those students should expect to devote additional time to the course. Students looking for a gentler introduction to programming may wish to take CSC 161 instead of, or before, taking this course.

Class: Tuesdays and Thursdays 2:00PM-3:15PM via Zoom (Link will be posted to blackboard)

Syllabus Revision History:

Teaching Staff


Teaching Assistants:

Workshop Leaders:

Course Mechanics

Textbook: Programming in Java with zyLabs. This is an interactive, subscription based online textbook which includes numerous exercises and online Java programming challenges. The cost is $77. This textbook is required. To purchase a subscription, sign in or create an account at then enter zyBook code: ROCHESTERCSC171PurteeSpring2021

Course schedule:
Linked here.

These will be synchronous experiences for interacting with TAs and discussing programming in Java. Labs begin the second week of classes (February 8th). All our labs are virtual this semester. You are welcome to use your own programming environment or to use the university machines via VPN, available here: Lab participation will be required and graded. You must complete at least 15/19 labs in order to receive full credit.

Workshops meet once per week, and will begin the third week of classes (February 15th). Workshops are small-group peer study sessions facilitated by students who receive training from then Center for Education, Teaching, and Leadership (CETL). Workshops will be offered synchronously over Zoom and will require collaborative problem solving and discussion. Workshops are be required and this will be reflected in your grade. Students who cannot participate synchronously will be allowed to participate in alternative (graded) activities; however, students are only expected to take this option if there is a legitimate reason they cannot participate live -- e.g., students residing in vastly different time zones or who cannot reasonably participate in live video interactions.

Makeups for Labs and Workshops - students who miss their regular workshop or lab session may attend an alternative session the same week, but should make every effort to attend the same session each week. Students who are unable to attend for an entire week will be allowed to complete the workshop activity on their own and submit answers to their workshop leader for credit. Please note that this is intended only as a last alternative in extraordinary circumstances.

Zoom, Cameras, and Recordings: It is strongly requested that you enable the use of your video camera during lab and workshop sessions, but it is not required. We have found that having cameras on makes the whole experience much more productive and natural, and that having all cameras off results in a cold, quiet experience for most students. All lecture periods will be recorded and uploaded to Panopto as soon as possible. In practice, this may take a few hours after the lecture to complete. While you are encouraged to attend lecture synchronously, you are not required to do so. Workshops and labs will not be recorded. This decision was made after significant discussion and consideration. We offer multiple sessions of both labs and workshops across multiple time zones, and the collaborative model does not work if too few students participate synchronously. If you selected a lab or workshop time that does not fit your schedule, you MUST find an alternative time. Students who cannot find lab or workshop times which work for them should contact the instructor as soon as possible.

Projects are larger programming assignments, typically taking two to three weeks to complete and requiring you to demonstrate understanding of multiple aspects of the course. Project deadlines are posted in advance on the course schedule and fall on Feb 25, Mar 25, and Apr 29 by 1159PM (anywhere on earth). Late projects will not be accepted. If you are unable to complete your project by the deadline, please submit whatever you have written by the deadline in order to receive partial credit. If you experience extraordinary circumstances impeding your work, please contact the instructor as soon as possible.

There will be four online quizzes for this course. The quizzes will be administered via blackboard and are expected to take approximately 30 minutes. Quizzes will be available for approximately 12 hours before and 12 hours after our regularly scheduled meeting, on Feb 23, Mar 18, Apr 22, and May 14th. The last will take place during the final exam period and will be available for approximately 24 hours before the end of the official exam time (4pm-7pm). Missed quizzes can not be made up after solutions have been posted. Please make every effort to plan ahead and complete quizzes on the scheduled dates. If there are extraordinary circumstances, please contact the instructor as soon as possible.

Online Discussions:
We will be using the Blackboard discussion board feature this semester. This is the recommended forum for asking non-personal, technical questions about the course material and logistics, as it is visible to teaching assistants and the instructor.

Your Overall Grade:
Your scores on the individual components of this course will weighted to obtain your course score. All appeals of grades on individual scores must be made within one week of the grade being available. The following table represents this weighting of components.

zyBook Programming Assignments 10%
zyBook Challenge Exercises 10%
Projects 30%
Quizzes 20%
Workshop Participation 15%
Lab Participation 15%

Your Letter Grade:
Letter grades will follow the Official University of Rochester Grading Scheme. Note that the University scheme puts “average” somewhere between C and B. The following table is an estimate of how the numeric grades will map onto the letter grades. Half-letter adjustments (e.g., A-, B+, B-) will be assigned at instructor discretion.

Letter Grade Threshold
A: Excellent >=93%
A-: >=90%
B+: >=87%
B: Above Average >=83%
B-: >=80%
C+: >=77%
C: >=73%
C-: Minimum satisfactory grade >=70%
D: Minimum passing grade >=60%
E: <60%


Diversity and Inclusion

It is my hope that all participants in my courses feel welcome, respected, and supported. If anyone feels unfairly excluded for any reason, please let me know and I will work to bring the course into as equitable a state as possible.

Academic Honesty

All assignments and activities associated with this course must be performed in accordance with the University of Rochester’s Academic Honesty Policy. More information is available at:

All incidents of academic dishonesty will be reported. This is because academic dishonesty is harmful to the entire university community, AND because it is the explicit requirement of the University of Rochester Academic Honesty Policy.

All zyBook exercises must be completed on your own.

All quizzes must be completed on your own.

All projects must be completed on your own.

Note that posting homework and project solutions to public repositories on sites like GitHub is a violation of the College’s Academic Honesty Policy, Section V.B.2 “Giving Unauthorized Aid.”

Disability Resources

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:; (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.

Illness and Incompletes

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.” 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. For remote students, medical excuses will still require some kind of documentation from a healthcare provider. If you cannot visit UHS, please make arrangements with whoever you visit. Please contact CCAS or Disability Services if you need more help with this. Because of the potential impact across all of your courses, students with extended or severe illness should additionally contact the College Center for Advising Services (CCAS) for advice and assistance. In general, any student who feels that they are unable to adequately experience and participate in the course due to serious issues should reach out to the instructor as soon as possible.

Project Regrade Requests

We go to a lot of trouble to grade as fairly and accurately as possible. The easiest assignment to grade is one that works perfectly and is well-written. The toughest assignment to grade is one where the submission is lengthy but broken, sometimes working sometimes not, etc. In these cases we are often forced to make judgment calls. We are just as likely to give too many points as too few (probably more so). Regrade requests must be made within one week of the grade being made available to you. Here are some examples of common requests which will be rejected:

Here are some examples of reasonable requests which may be accepted:

Zoom and Video Chat

Lectures, and office hours will be exclusively offered via zoom. Labs and workshops are expected to be via zoom. Meeting IDs and passwords will be posted to blackboard in advance. When connecting to zoom, you are required to use your real name so that I (and your TAs and WSLs) can tell who is participating in the course.

Additional Recording Policy Details

Students are not permitted to make their own recordings, either in-person or online. Please also note Section V.7 of the College’s Academic Honesty policy regarding “Unauthorized Recording, Distribution or Publication of Course-Related Materials.”

Minimum Technology Requirements

You will need access to a computer with reliable internet access for this course, but it does not need to be fast or higher bandwidth necessary than for standard Zoom calls. A computer with webcam capabilities (and enough hardware to run zoom while taking notes in your application of choice) is recommended. You are encouraged to install the Java Development Environment on your personal machine, primarily for working on projects. This should be possible on any reasonably modern machine, but will work best if you have at least a quad-core processor and 8GB RAM. You are not required to use your own machine for development and may opt to use university machines over VPN instead.

Additional Information

There are two kinds of tutoring available to CSC 171 students. Please note that tutors often work with many students, so their time is limited. To make best use of available tutoring, be sure that you spend sufficient time studying and working on your programs before visiting them.

CETL Tutoring

Tutoring is a free service available for any undergraduate of the University of Rochester. The Center for Excellence in Teaching and Learning (CETL) provides structured tutoring services.

For more information, visit

CSUG Tutoring

CSUG is the Computer Science Undergraduate Council. These students graciously volunteer their time to help other students, especially students in introductory and core courses.

For more information, visit