CS32-Summer 2013 — Object-Oriented Design — TA Notes


This page is dedicated to CS32 course (course's web-site, forum) taught at the UCSB during Summer, 2013. CS32 is mainly about programming in C and C++. Besides the languages themselves, you will learn how to use them to implement some fundamental algorithms. You may also expect to gain experience in handling a Unix-like operating system.

Besides administrativia, this page contains programming assignments, slides and/or notes and links to external course-related resources. If you have a question not answered here, please email me or, better, come to my office hours.

TA: Victor Amelkin
Email: victor+cs32@cs.ucsb.edu (PGP key)
Office Hours: Mondays, 1-3pm at GSL (Trailer 698) or by appointment
Discussion: Thursdays, 3:30-4:50pm at PHELP 3525

Notes/Slides:

Programming Assignments:

Usefull Resources:


C++
cplusplus.com
— a compilation of notes on C++ language.
googlecode, CppTest
— two frameworks for unit-testing of C++ code.
 
Dev
make (manual)
— the GNU implementation of make build automation tool.
GCC (manual)
— the GNU Compiler Collection. In particular, it includes compilers for C and C++.
gdb
— a GNU debugger. A couple of good videos on how to use it can be found among these video tutorials.
valgrind
— a dynamic code analysis tool. Checks your code for memory leaks. In addition, has a bound checker and plenty of other tools for memory analysis.
gprof
— a GNU profiler.
StackOverflow
— a Q&A web-site dedicated primarily to software development. A good place to ask questions and learn.
 
OS
Revolution OS
— just for fun; a documentary about the Free Software Foundation, GNU, and Linux. (Also available on Netflix.)
Comparison of Linux Distributions
— an article on Wikipedia comparing existing distributions of GNU/Linux. You may want to use one for this course, such as Ubuntu, but it may also be Mac OS X, BSD, or something else from this diagram. If you know how to handle one Unix-like OS, you will be able to work with most of the others.
Practical Unix
— a series of video tutorials on using a Unix-like operating system by Sam King and Emin Topalovic. It is good to at least skim through the sections Intro and Permissions.
Vim, Emacs
— reference cards for two popular text editors.
Remotely working with CSIL via SSH from Windows
— a tutorial on how to use SSH and X11 in Windows.
Linux command reference
— a directory of Linux commands from O'Reilly's "Linux in a Nutshell".