CS 150 Syllabus
Computer Science 150
Principles of Computer Science
Spring, 2005
Me:
|
Office Hours:
|
Textbook:
Object-Oriented Programming with JAVA, An Introduction by David J. Barnes
Course Description:
This course teaches the basic principles of object-oriented computer programming as well as some of the essential ideas of computer science. The course uses the Java programming language. By the end of the course students should be able to write Java programs to solve moderately complex problems. There are no prerequisites for the course. In particular, any mathematics used in the course beyond high school-level algebra will be covered in the lectures. Students in the course should expect to spend a fair amount of time on their own developing programs. Programming, like most other skills, is best learned by doing.
Labs:
This course has 10 labs, starting the week of Feb. 7.. Lab exercises need to be completed by midnight the following Tuesday. Late exercises will be assessed a penalty of 10% per day. It is impossible to learn the material in this course without doing the lab work.
Grading:
This course has a lot of graded activities. In addition to the 10 labs, there will be occasional homework assignments, three in-class exams, and a 2-hour final. . At the end of the term these will be weighted as follows:
- In-class exams 10% each
- Final exam 25%
- Labs 4% each, 40% altogether
- Other homework 5%
The Honor Code
The Honor Code has a straightforward application to this class. On all of the exams you are responsible for your own work; you may neither give nor receive aid during the course of the exam. If someone takes an exam at a different time than the rest of the class there may be no communication concerning the exam between that person and anyone else in the class, no even about whether the exam was easy or difficult. The atmosphere is much more relaxed for the labs. You may discuss the lab exercises, including details of the programming code, with anyone else in the class, but in the end you must write your own code.
Course outline:
This is an rough schedule for the course. All of these dates, including the dates of the exams, are subject to change. I will give you plenty of advance warning if the exam dates need to change.
Week Topics Reading LabFeb. 7-11 Java programming. Classes and objects. Chapters 2, 3 Lab 1 Feb. 14-18 Class definitions: constructors, accessors, mutators, etc. Chapter 4 Lab 2 Feb. 21-23 Arithmetic, types, and simple output expressions. Chapter 5 no lab Feb. 25 No class; I'll be in St. Louis Feb.28-March 4 Selection. Relational and logical expressions. Chapter 6 Lab 3 March 7-11 Loops Chapter 7 Lab 4 Exam 1 over chapters 1-6; Wednesday March 9 March 14-18 Program structure and scope. Utility classes. Strings. Chapter 8 Lab 5 March 21-25 Arrays Chapter 9 Lab 6 March 28-April 1 SPRING BREAK!!! April 4-8 Collections. Wrapper classes. Iterators Chapter 10 Lab 7 April 11-15 Recursion Chapter 10 Lab8 Exam 2 over chapters 7-10; Friday April 15 April 18-22 Exceptions and Interfaces. Chapters 11, 13 Lab 9 April 25-29 Inheritance Chapter 14 Lab 10 May 2-6 Polymorphism Chapter 15 no lab Exam 3 over chapters 10, 11, 13, 14; Friday May 6 May 9-13 Abstract classes Chapter 15 no lab Comprehensive final exam: Thursday May 19, 9 AM