CSC171: The Science of Programming
Fall 2015

General Information

Instructor: Prof. George Ferguson <>
Office hours (CSB731): Mon 1310-140, Tue 1000-1100, Wed 1100-1200 (subject to change)

Lab TA and Workshop Leader contact: <>

Piazza discussions:

CSUG Tutoring (free help!):

Lectures: Tue/Thu 1650-1805 in Hoyt Hall

Labs: Two per week; many sections. You must register for one lab section. You may not switch labs without permission from the lab TAs.

Workshops: One per week. You do not register for a workshop. Workshops will be scheduled during lecture the first week of classes.

EAS106: Hajim School freshman generally take CSC171 as EAS106. This includes an additional workshop (actually seminar) Wed 1650-1805 in Hoyt Hall.

Course Goals

This course is a hands on introduction to computer programming using the Java programming language. You will learn to program computers by writing computer programs. Topics covered include:

We learn by doing. Students should expect to spend time outside of lecture, lab, and workshop in order to master this material.


No prior programming experience is required. Middle school math will be assumed.

Textbook & Reosurces

Deitel & Deitel: Java: How to Program, ninth edition or more recent.

You may or may not need the textbook. The course will follow the textbook, but assignments are not taken from it.

Additional readings and resources:


Assignments will be posted, submitted, and graded using BlackBoard.

Grades will be based on the following components and weights:

Quizzes10% Homework20%
Midterm20% Projects20%
Final20% Workshop Participation10%

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 (subject to change):

A: Excellent >=90%
B: Above Average >=75%
C: Minimum Satisfactory Grade >=60%
D: Minimum Passing Grade >=50%
E: Fail <50%

Requirements and Policies

It is important that you attend class (lecture) and lab. Attendance at workshop is REQUIRED.

Homeworks will involve short exercises that you can complete on your own time or in lab. Late homework without suitable prearranged excuse will not be accepted. Missed or late homework will receive a grade of ZERO.

There will be regular quizzes given during class. Quizzes may NOT be made up without suitable prearranged excuse. Missed quizzes receive a grade of ZERO.

Projects are larger assignments, typically taking about two weeks to complete. Late projects are assessed a 2% per hour penalty (so approximately 2 day maximum).

Students with an appropriate excuse for missing a quiz, lab, project, or other deadline must make arrangements IN ADVANCE. Do not leave this until the last minute.

Students with an accommodation for any aspect of the course must make arrangements through the Center for Excellence in Teaching and Learning (CETL) IN ADVANCE. Then, as instructed by CETL, contact the instructor to confirm your arrangements. Do not leave this until the last minute either.

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.

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:

Violations of academic honesty are taken very seriously. Suspected violations will be pursued vigorously following the College's procedures for suspected cases of academic dishonesty.

Basic guidelines for academic honesty:

Policy on Electronics

Please turn off or put into airplane mode all phones and leave them out of sight.

Unless you are taking notes with a laptop, you do not need it.

Even if you think you want to take notes with a laptop, you may be interested to know 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 even more.

If you insist on using your laptop to take notes, please turn off your wifi and otherwise disable notifications. You should probably also sit at the back of the room to avoid distracting the people sitting behind you.

Please note Section V.7 of the College's Academic Honesty policy regarding Unauthorized Recording, Distribution or Publication of Course-Related Materials.