CSC171: Introduction to Computer Science
Fall 2016

General Information

Instructor: Prof. George Ferguson <>

Office: CSB731 (see instructor website for office hours)

Lectures: Tue/Thu 940-1055 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.

Web: BlackBoard and

Questions? Head TA & Workshop super-leader:

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:

Complete details are available in the Course Calendar.

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 & Resources

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:

Course Work

Labs meet twice per week. Attendance is NOT required. Technical questions should be asked in lab before bringin them to the instructor.

There is homework for almost every lab. These are short exercises that you can complete on your own time or in lab.

Workshops are small-group peer study sessions facilitated by students who receive training from the Center for Education, Teaching, and Leadership (CETL). Attendance at workshop is MANDATORY.

Projects are larger programming assignments, typically taking two to three weeks to complete. You work on projects in your own time. Do not leave them until the last minute.

There will be regular quizzes given during class. Quizzes may NOT be made up without suitable prearranged excuse.

There will be two midterm exams, at the middle of term and at the end of term. Both exams will be given during class time.

This course does NOT permit additional work for extra credit under any circumstances.


Late homework without suitable prearranged excuse will not be accepted. Missed or late homework will receive a grade of ZERO.

Late projects are assessed a 2% per hour penalty (so approximately 2 day maximum).

Missed quizzes without a suitable prearranged excuse receive a grade of ZERO.

Final course grades will be based on the following components and weights:

Quizzes10% Homework20%
First Midterm20% Projects20%
Final Midterm20% 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 >=80%
C: Minimum Satisfactory Grade >=70%
D: Minimum Passing Grade >=60%
E: Fail <60%

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.

Course Policies

We hope that you will want to attend class (lecture), but attendance is NOT required other than for exams. If you chose not to attend, you may miss important announcements or information about the course.

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, workshop, homework, or project deadline must make arrangements IN ADVANCE.

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 and Collaboration

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:

You will learn the most if you do all the work in this course ON YOUR OWN.

Homework is individual work and you must complete it individually. Your TAs are available in lab to help you with homework.

Workshops are inherently collaborative, and you do not submit work from workshops anyway.

Collaboration on projects is permitted, subject to the following requirements:

Policy on Electronics

You do not need any electronics in class and they will not help you or your fellow students seated near you.

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.

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


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.

CSUG Tutoring Schedule:

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.