You can find the placement questionnaire for the Spring 2018 iteration of this course here.

General information

Instructor: Richard Eisenberg
Office Phone: 610-526-5061
Home Phone (emergencies only): 484-344-5924
Cell Phone (emergencies only): 201-575-6474 (no texts, please)
Office: Park 204
Office Hours: Mondays 3:30-4:30pm, Tuesdays 1:30pm-2:30pm
If these don’t work, do not fret. Email instead.
Lecture: MW 1:10-2:30
Lecture Room: Park 338
Lecture Recordings: at Tegrity: access via Moodle; look for link on right side of screen.
Labs: M 2:40-3:30; W 12:10-1:00 (you may register for either one)
Lab Room: Park 231
GitHub Repo:
Piazza Q&A Forum:
TAs: Kellie Dinh (, Jocelyn Dunkley (, Kennedy Ellison (, Sonya Fucci (, Ruby Malusa (
Time TA Location
Mondays 6-8pm Kennedy Ellison Park 231
Mondays 7-9pm Ruby Malusa Park 231
Mondays 8-10pm Jocelyn Dunkley Hilles 110 at Haverford
Tuesdays 6-8pm Kellie Dinh Park 231
Tuesdays 7-9pm Sonya Fucci Park 231
Wednesdays 6-8pm Kellie Dinh Park 231
Wednesdays 7-9pm Jocelyn Dunkley Park 231
Thursdays 6-8pm Kennedy Ellison Park 231
Sundays 6-8pm Ruby Malusa Park 231
Sundays 7-9pm Sonya Fucci Park 231

Goals of course

By the end of this course, you will be able to…

During the course, you will…

This is a first course in computer science. Though computer science encompasses much more than just programming, many of the concepts of computer science are best expressed in terms of computer programs. We thus begin our study of the field by learning the basics of programming. This course is taught in the Java programming language (many programming languages have been invented since the dawn of computing), as it is both a frequently used beginner language and has wide usage in industry. Furthermore, Java makes it easy to make graphical applications, which can be fun for new students to create.

Programming is a creative act, where you get to introduce a new, interactive artifact into the world. Programmers often talk of the beauty of an algorithm or piece of computer code. Reading a computer program is not all that different from reading a natural-language composition, and it is possible to critique computer code for how well it communicates an idea and how well it is written. In this course, we will aim to write beautiful code, not just functional code.

Course Philosophy

In order to learn any programming skill, you must simply do it. Reading a book or watching me code will not help you get better. This course is thus programming-intensive. You will be expected to spend a significant amount of time weekly (6-8 hours) outside of class programming to complete the homework assignments. If you run into a snag, the programming burden may prove to be even higher. Of course, programming is fun, so the time should fly by.

Much class time in CS113 will be spent working with peers to solve small programming problems, conduct peer reviews, and complete other exercises. There will also be lecture components where I demonstrate Java coding and discuss the computer science concepts powering the programming.


This course does not have a textbook. Instead, we will be using coding samples with extensive comments, which serve essentially as lecture notes. We will be building programs on top of the ACM Java Toolkit, which enables an easy start to graphical programming.

Our programming will be done using Eclipse, a professionally-used integrated development environment (IDE). This free software is powerful and can be intimidating for new users. You will quickly get used to it, and we’ll take some time during labs to familiarize you with it. Instructions for setting up this software on your machine will be distributed in the first lab.