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.
|Alexa Sharp||Lecture Professor||alexa.sharp||5-8831||King 223E||Mon 2-3pm
|Benjamin Kuperman||Lab Professor||benjamin.kuperman||5-8556||King 223B||Tue 10-11:30am
|Pike||Mon. Lab TA||Andrew.Pike|
|Michael Brooks||Tues. Lab TA||Michael.Brooks|
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.
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.
Lectures are Monday, Wednesday, Friday 11:00-11:50, King 221.
Labs are either Mondays 2:30-4:20 or Tuesdays 1:00-2:50, King 201.
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.
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%|
|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.
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.
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.
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.