CSCI 150 Overview


What is CSCI 150 About?

CSCI 150 is an introductory course in computer science, with an emphasis on problem solving using the Java programming language. We want our students to gain exposure to the topics that are the foundation of computer science, such as algorithm design, program structure and organization, recursion and induction, object-oriented programming, and data structures. Java is the principal programming language, but this is not a course on Java. No programming experience whatsoever is expected.

Students completing CSCI 150 will not only be well-equipped to pursue further coursework in computer science and related disciplines, but will also have the reasoning and logic skills useful in disciplines as varied as law, medicine, and business.

Course Staff

Name Position Email Phone Office Office hours
Alexa Sharp Lecture Professor 5-8831 King 223E Mon 2-3pm
Wed 2-4pm
Fri 1-2pm
John Donaldson Lab Professor john.donaldson 5-8697 King 223C MWF 11-noon
Michael Brooks Thurs. Lab TA Michael.Brooks
Lab Helpers

Reaching Us

The best way to reach the course staff is by coming to our office hours or sending us email.  We will try to respond to questions as soon as possible - hopefully within one working day. If we judge that the question might have been better directed to another staff member, the question may be forwarded there unless an explicit request is included to the contrary.

Office Hours

The course staff have regular office hours during the day and evenings.  Office hours are given in the above table.  Try to get your assignments started early so that if you have any trouble you can make it to someone's office hour in time.

Class Meetings

Lectures are Monday, Wednesday, Friday 11:00-11:50, King 221.

Labs are Thursdays 1-2:50pm in King 201.

Course Materials

The official textbook for the course is Building Java Programs by Stuart Reges and Marty Stepp, published by Addison Wesley, 2008. In general, we'll be following the book somewhat closely, but there will definitely be times when we diverge. In any case, it is a good idea to read the designated sections of the text before appropriate class.

And it goes without saying that there are many useful online resources that will undoubtedly come in handy, which are listed on the home page.

We will be using JDK 1.5 as our official compiler. You are welcome to use any compiler you wish for your assignments, so long as it also compiles with our JDK 1.5.

Course Requirements

Students are responsible for all material in the assigned readings, as well as material covered in lectures. There will be ten(ish) labs, most with a required prelab. The prelabs will generally consist of written exercises that must be completed before the programming component is started. There will be two midterm exams, one final exam, and regular pop quizzes that we may or may not tell you about.  Exams will cover material presented in class and will require you to do some heavy thinking on your feet.  The pop quizzes will test you on what you learned in the last day or so. The remaining stuff will contribute to your final grade as follows:

Labs % of grade
Labs & Prelabs 55%
Midterms 20%
Final Exam 20%
Participation & Attendance 5%

The above table is, naturally, subject to change.

Notice that although class attendance is not mandatory, it is hard to participate when you are not there. Attendance at the labs is mandatory for at least the first three (a portion of the lab grade will be attendance), and we will keep you posted as to later labs.

Late prelabs will not be accepted. This is because the prelabs are needed in order to begin the week's lab, and therefore solutions must be handed out at the first lab on Monday. We will generally grade the prelabs between Monday morning's class and the afternoon lab.

Late labs are strongly discouraged. We would really rather you hand in your labs on time, but we understand that things can go wrong at the last minute. You may hand in two labs up to a day late.

Please start your labs as early as possible, even if it is just to read over the questions. We will try to tell you which portions of the assignment you are able to do as the material is covered, incrementally, to help you start early.

If for some reason (such as illness) you are unable to complete a lab or take a test, please talk to one of the instructors as soon as possible. We will handle them on a case-by-case basis.

Joint Work

In general, it is OK to talk with other students about the labs, but you have to be very careful about how much you collaborate. A good rule of thumb is that you may talk to each other so long as no one writes or types anything down; you should be able to recreate your discussion without anyone's help. Please do not hand in work done with (or by) someone else under your own name. The course staff (conveniently) have a third eye for finding suspicious similarities in code, so please don't break the rules. We trust you, and hope this trust won't be violated. If you are unsure about anything, please ask.

We will sometimes have labs that allow joint work with a partner. We will tell you when this is permissible, and we will outline the rules when that time comes.

Please see the more detailed page on academic integrity and the honor code.

Public Lab Facilities

For public access to JEdit, Emacs, Vim, and Java, you may use the labs in King 135 and King 201. You'll need to see Jackie Fortino in King 223 to get access to these labs.


There are tutors available, provided by Oberlin College. If you think you'd like such a tutor, just contact us and we'll hook you up.

Student Disabilities

If you require special accommodation (such as additional time to complete exams), please speak to one of the instructors during the first week of class so that we have time to make suitable arrangements. You must be registered with Laura Slocum, Coordinator of Services for Students with Disabilities.

Google Calendar

Course events such as lectures, homework deadlines, and tests are posted on the course's very own google calendar; you can find this calendar by searching google's public calendars for CS 150.