CSC171: The Science of Programming
Spring 2016

General Information

Instructor: Prof. George Ferguson

Web: BlackBoard and


Office: CSB731

Office hours: Mon 1330-1430, Tue 1100-1200, Wed 1100-1200 (subject to change)

Lab TA and Workshop Leader contact:

Lectures: Tue/Thu 1400-1515 in Dewey 1-101

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

Workshops: One per week. You must register for a workshop. You may not switch workshops without permission from the workshop leaders.

CSUG Tutoring:

If you visit the CSUG tutors, please be respectful of their time and COME PREPARED. Try to solve the problem/question BEFORE going to CSUG Tutoring. Go to lab and work on the problem with the TAs BEFORE going to CSUG Tutoring. Go to workshop and discuss the problem with your colleagues BEFORE going to CSUG Tutoring. You MUST be able to show them what you have tried BEFORE you came to them.

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% Workshops10%
This scheme is subject to change at any time. Any changes will be announced in class.

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, but attendance is NOT required. 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 two to three weeks to complete. Late projects are assessed a 2% per hour penalty (so approximately 2 day maximum).

If you use your own computer, crashes, malfunctions, and catastrophic loss of files is NOT an excuse. Backup your files regularly to at least one external drive and/or cloud storage. You can always complete your assignments using the lab and IT Center computers.

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:

All work you do in this course must be your own. Collaboration on homework and projects is permitted, subject to the following requirements:

You must be able to explain anything you submit in person at any time.

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.