Course Syllabus
Computer Science 10
Fall 2008

Computer Programming

Course Description

CS 10 is an in-depth course in Java programming that is designed for Computer Science pre-majors. Basic topics will be reviewed to cover Java syntax only. Relatively more emphasis and time will be devoted to object-oriented programming (OOP) topics. A Linux operating system is introduced informally by demonstrations and required student usage.

Pre-requisites

Course Goals

  1. Students expand their beginning knowledge of programming, and learn object-oriented principles.
  2. Students learn to write Java applications and applets.
  3. Students gain experience working in a Unix(-like) environment.

Instructor

Dr. C. Michael Costanzo, mikec@cs.ucsb.edu
Office hours - Monday 12-12:50 and Wednesday 9-9:50, Phelps 1409B (enter through 1413)

Teaching Assistant

Aleksandra Potapova, a.potapova@cs.ucsb.edu
Office hours - Wednesday 1-2 (changed) and Thursday 3-4, Phelps 1413

Instruction Schedule

Required Textbook

Grading Policy

A curve will be applied to the overall scores, weighted by the following percentages.

Course Outline, with required reading

Lecture topics Reading*
Introduction, and review of basic issues
  • Introduction to Java programming
  • Data types, inc. introduction to objects and classes
  • Control structures
Chapters 1-6, less T and G tracks**
More classes and objects, and testing
  • Java arrays and other sequence data types
  • Designing classes
  • Testing, and programming with assertions
Chapters 7-8, plus T track
Inheritance and related OOP topics
  • About type hierarchies, and extending classes
  • Polymorphism, abstract classes and interfaces
  • Packages and nested classes
Chapters 9-10, less G track
Introduction to exceptions, files and some programming methods
  • Exceptions
  • Files (and other Streams, including URL Connections)
  • Introductory recursion, sorting, searching and algorithm analysis
Chapters 11, 19 (plus section 21.5), 13-14
Selected Java programming techniques as time permits
  • Applets and graphics
  • Events, listeners, event-handling and graphical user interfaces
  • Multithreading
G track, plus Chapters 18, 20
*All readings are from the required textbook - Big Java: 3rd Edition.
**The textbook has a Testing (T) track and a Graphics (G) track intermingled with other topics, but these sections will be covered separately in lectures. The T track sections are 2.8, 3.6, 5.5, 6.6-7, 7.8 and 8.10. The G track sections are 2.11-13, 3.9, 9.6-10 and 10.9-11.

Notes