CS 60 (Spring 2010)
C, C++ and UNIX
Computer Science Department
University of California, Santa Barbara

  • Instructor
  • Dr. Teofilo F. Gonzalez
    Office: 2119 Harold Frank Hall
    Phone: 893-3849
    Office hours: W: 1:00 - 2:00 pm and F 2:00 - 3:00 pm
    E-mail: teo@cs.ucsb.edu

  • Teaching Assistants
  • Harry Presman
    Office: Phelps 1409c and/or 1413B (it is the same room) Phone (until 10/30/2009): 893 - 8588 Office hours: W: 11:00am - Noon, Th: 11:00am - Noon. TBA
    E-mail: hpresman@cs.ucsb.edu

  • Rone Kwei Lim
    Office: Phelps 1409c and/or 1413B (it is the same room) Phone (until 10/30/2009): 893 - 8588 Office hours: M: 3:00 pm - 4:00 pm and T: 4:00 pm - 5:00 pm
    E-mail: rklim13793@cs.ucsb.edu
  • Overview

    The programming languages C and C++ are fundamental programming languages, and a solid working knowledge of them is core to understanding many major areas of Computer Science, including Data Structures, Operating Systems, and Databases. UNIX is the default operating system used on most large computer systems. Being able to use the various tools available for program development, as well as proficiency with scripting and shell commands, are basic skills every programmer and developing computer scientist must master. Taken together, this course provides a solid foundation from which to launch the student into upper division coursework.

    What you will learn

    By the end of the course, you will be able to write, compile, run, and debug non-trivial programs in the C and C++ languages using the Unix/Linux environment. You will understand the basics of preprocessing, compiling, linking, using makefiles, combining multiple source files, and various useful Unix/Linux shell commands. You will also understand the fundamental data types and constructs of C and C++, and know how memory is allocated and managed, how C pointers work, how to do text I/O, how to build various data structures, how to spawn processes, how to handle exceptions, etc. You will understand how C++ is used to implement an object-oriented programming model. By the end of the quarter, you will be prepared to use all these concepts and tools in upper-division Computer Science courses.

  • Course Rules
  • Course Schedules
  • Turnin Instructions for hw2
  • Turnin Instructions for hw3
  • TAs CS60 Web page (discussion Sessions)
  • Handouts
  • Course Rules and schedule (also available from the CS 60 WEB page (this page) www.cs.ucsb.edu/~teo/cs60.rules.html)
  • Here are some tutorials available in the WEB. Note that the C, C++ and Unix they discuss might not be exactly the GNU versions and Linux
  • C++ Tutorial
  • C++ Tutorial
  • C++ Tutorial
  • Unix Tutorial
  • Unix Tutorial
  • Unix Tutorial
  • C Tutorial
  • C Tutorial
  • C Tutorial
  • Cpp4u
  • Topics covered so far:
  • Tentative list of topics to be covered:
  • Introduction
  • C
  • Introduction, History and Compilation Process
  • Basic Data Types and Operators
  • Derived Types (arrays, strings, new, delete, pointers, etc.)
  • Loops and Relational Expressions
  • Branching and Logical Operators
  • Functions
  • Pointers and Storage Management
  • System Calls
  • C++
  • Objects and Classes
  • More on Classes
  • Class Inheritance
  • Reuse Code (Templates)
  • Friends and Exceptions
  • Standard Template Library
  • File I/O
  • UNIX
  • UNIX Philosophy and History
  • Basic Commands
  • UNIX Shells (C Shell + others)
  • Some utilities (find, awk, ln, spell, Perl)
  • C Programming Tools (make, prof, dbx)
  • File and Process Management

  • Under Construction DO NOT CLICK HERE
  • Total number of visitors to this page, since 6/25/2001, is .