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
- Computer Science 20 is required.
- Reduced credit of 2 units will be given to students who have completed Computer Science 12.
Course Goals
- Students gain the basic skills needed to develop C and C++ programs in upper division courses.
- 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
- Lecture - Monday, Wednesday and Friday, 12-12:50pm, Chemistry 1171.
- Discussion - Friday, 9-9:50am or 11-11:50am, Phelps 1401.
Texts
- Required:
Brian W. Kernighan, and Dennis M. Ritchie,
The C Programming Language: Second Edition,
Prentice Hall P T R, 1988.
- Required:
Eric Nagler,
Learning C++ A Hands-on Approach (third edition),
Brooks/Cole, 2004.
- Optional:
Mansoor Sarwar, Robert Koretsky, and Aqeel Sarwar,
UNIX: The Textbook, Second Edition, Addison Wesley Longman, 2005.
Grading Policy (and probable exam schedule)
Course grades will be curved on the basis of the following distribution of
credit:
- 30 percent - assignments (mostly programming projects)
- 40 percent - two midterm exams (20 percent each):
- Friday, October 16
- Friday, November 6
- 30 percent - final exam - Wednesday, December 9, 12-1:30pm (1.5 hours long, not 3 as in the
official schedule)
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
- The course's web pages (http://www.cs.ucsb.edu/~mikec/cs60)
are mandatory reading. Students
are responsible for monitoring them throughout the quarter.
- Make-up exams can only be arranged at least 48 hours prior to the
exam, and only in extraordinary circumstances (which do not include having
other exams that day).
- Assignments must be completed, and correctly turned in on time
for full credit - no exceptions, no extensions, no excuses.
- All of the work you turn in for CS 60 must be your own, personal work. The university's
honor code will be strictly
enforced. Beware that we will use an automated system
to detect plagiarism.