Course Syllabus
C. S. 60, Fall 2009

Introduction to C, C++, and Unix

Course Description

Computer Science 60 focuses on syntax and semantics of the C and C++ programming languages. The course also includes an introduction to basic UNIX utilities and tools. Students complete several small projects that exercise their understanding of the material presented in class.

Pre-requisite, and restrictions

Course Goals

  1. Students gain the basic skills needed to develop C and C++ programs in upper division courses.
  2. Students gain the skills needed to function effectively in the UNIX program development environment.

Instructor

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

Teaching Assistants

David Johnson, davidj@cs.ucsb.edu,
Office hours - Wednesday 3:00-5:00, in HFH 2152A (changed 10/8/09)

Neer Shay, neershay@umail.ucsb.edu,
Office hours - Thursday 3:00-5:00, in Phelps 1413

Instruction Schedule

Texts

Grading Policy (and probable exam schedule)

Course grades will be curved on the basis of the following distribution of credit:

Course Outline, with Required Reading

Lecture topics Read1
Basic C features KR intro, and chapters 1-3
C modules, pointers and structures KR chapters 4-6
C input/output and UNIX interface KR chapters 7-8
Transition to C++ Nag preface, and chapters 1-5 and (parts of) 14-15
Classes Nag chapters 6-8
Exceptions, overloading, and inheritance Nag chapters 9-11
Templates, and file input/output Nag chapters 12, 17
Selected C++ library tools Nag chapter 18
UNIX shell scripts2 TBA
1KR is the Kernighan-Ritchie text; Nag is the Nagler text; TBA is to be announced.
2Most UNIX instruction will occur in discussion sections, but shell scripts are lecture topics.

Notes