(😯 , this is the wrong place)

This document is no longer the place to go to get info about this class. Instead, go to the GauchoSpace page.

Andrew Duncan
Class: TTh 9:30 - 10:45 PSYCH 1924
Office hours: Time TBD Trailer 936
Email: aduncan at cs dot ucsb dot edu

Yan Tang
Section: 11:00 - 11:50 PHELPS 3525
Section: 12:00 - 12:50 PHELPS 3525
Office hours: Wed 16:00 - 17:00 Trailer 936

Wenhan Xiong
Section: 13:00 - 13:50 PHELPS 3525
Office hours: Fri 10:00 - 12:00 Trailer 936

Sanjana Sahayaraj
Section: 14:00 - 14:50 PHELPS 3525
Office hours: Fri 13:30 - 15:30 Trailer 936

Introduction

Welcome to Computer Science 32: Object-Oriented Programming

We are basically picking up in the CS16 and CS24 books where they were left off after those courses... more or less.

The outline and content of the class come from Michael Costanzo's experience teaching the class. We are going to try to do something that software engineers don't like to do: use somebody else's software.

One of our TAs has TAed this class before and that experience will help us out.

There are two parallel threads in the class: OOP/C++ is one of them, and the other is Operating Systems/Linux. The labs and lectures will cover both of these aspects of software development

Text and Reader

  • The newest editions of the textbook are preferred. Earlier editions are reasonable substitutes, but students then must be responsible for translating any page-specific assignments and other details.
  • The Computer Science 32 Reader is required course reading along with the two textbooks used in CS 16 and CS 24. Get the Reader from SBPrinter in the UCEN. Note there are no substantive changes in the reader since Fall 2011, so any version since then is okay too.


  • From CS 16: Walter Savitch (2015), Problem Solving with C++, 9th Edition. Addison-Wesley. Here are local copies of source code and data files from this text.


  • From CS 24: Michael Main and Walter Savitch (2011). Data Structures and Other Objects Using C++, 4th edition. Addison-Wesley, 2011. Source code files from this text, organized by chapter (and a link to other author supplements).


  • Here is the Table of Contents for the Reader.
    1. Introduction to operating systems, Unix and shells. Sarwar, S.M., Koretsky, R. and Sarwar, S.A. (2005), Unix: the textbook, Second Edition, Chapters 1-4 (parts), pp. 38-42, 46-50, 54-67, and 70-78. Pearson Education, Inc.
    2. “Thinking Object-Oriented,” “Abstraction,” and “Object-Oriented Design.” Budd, Timothy (2002), An Introduction to Object-Oriented Programming, Third Edition, Chapters 1-3, pp. 1-71. Addison Wesley Longman, Inc.
    3. “Processes.” Sarwar, et al., op. cit. Chapter 13, pp. 334-362.
    4. “Unix Programming Tools.” Parlante, Nick (2001), document #107 in the Stanford CS Education Library, http://cslibrary.stanford.edu/.
    5. “Program Building.” Hoover, Adam (2010), System Programming with C and Unix, Section 6.1, pp. 172-185. Pearson Education, Inc.
    6. “From Source File to Executable File,” “Variables and Objects; Pointers and Addresses,” “Dynamic Allocation and Deallocation of Memory,” “Classes and Objects.” Franek, Frantisek (2004), Memory as a Programming Concept in C and C++, Chapters 2-4, 8, pp. 7-17, 21-39, 45-50, and 106-116. Cambridge University Press.
    7. “Libraries.” Hoover, op. cit. Chapter 8, pp. 255-291.

Resources

As a UCSB student, you have access to Safari Books Online, directly from campus or by proxy from off-campus. This collection contains a number of books on C++ such as the following:

By the way, other Safari titles include the following items you might find useful:

For Windows users

  • SecureCRT - an SSH client (necessary to access CSIL remotely) - download a 30-day trial version, and/or explore the site to learn about student licenses.
  • PuTTY - a free Win32 Telnet/SSH Client (with fewer features than SecureCRT).
  • MinGW - ("Minimalist GNU for Windows") includes g++, gdb, make and other useful tools for programmers.
  • GNU Emacs - FAQ for using on Windows.

For Mac users

  • Xcode - download site for Mac OS X developer software. By the way, no need to use the Xcode IDE - instead, after installing Xcode with 'Command Line Tools' included, just open a "Terminal" window and use the usual Gnu tools like gcc, g++, gdb, make, and so on.
  • TextWrangler is a free, code-aware text editor. The smaller brother of BBEdit.
  • Also note that the OS X Terminal app is a real Unix shell (probably bash). You have ssh, scp, and other networking tools built in for communicating remotely with CSIL.