Resources
for CS4

RIT-4003-334
C++ Programming and Design

Instructor: Ben K Steele
Phone: 585-475-7923
Email: bks<at>cs.rit.edu

Last Updated: $Date: 2011-09-23 23:31:51 $

Note: additions and updates to these links may happen at any time.

Links for Course-specific Materials

  1. The handouts, slides, other materials  is password-protected for copyright protection. Materials posted there evolve and expand as the course progresses.
  2. The Section Examples Directory is where you'll find (variations of) examples presented in class lectures.
  3. CS4 Course Examples ( http://www.cs.rit.edu/~cs4/pub/Examples ) is the CS4 course location for code examples. There's an avalanche of old code there. Beware: little of this code has been updated to work on Linux.
  4. Visit the labs link Labs (http://www.cs.rit.edu/~cs4/Labs) before your lab to read and do the pre-lab due at the start of the lab session.
  5. The Source Code for gmakemake utility program is available from Sidney Marshall. You would have to download the source and build it for your own personal system. There are no guarantees and no support, but it does work on MacOS Darwin.
  6. Project Resources and Notes has grading notes, sample files and other items pertaining to the course project.
  7. Notes from Professor Strout contains links to some of his course notes.

Links for C++ Language

  1. CPlusPlus.com Tutorial
  2. http://cppreference.com (a good C and C++ reference with current STL information)
  3. http://gotapi.com/ccpp is a site with C, C++, library and STL references.
  4. Silicon Graphics' STL Programmer's Guide (an old favorite, but pre-1998 C++ standard)
  5. Doug Schmidt's C++ References
  6. Marshall Cline's C++ lite FAQ Site (full version costs money...)
  7. CProgramming.com Tutorial (C and C++) (warning: ad content...)
  8. History: The Development of the C Language by Dennis Ritchie, (the R in K & R C), copyright 1993.

Links for C++ Documentation

  1. doxygen is an open-source code documentation generation tool similar to javadoc. Doxygen is available for most UNIX-like operating systems, and there is a port to Windows also. The file Doxyfile.txt is generated by 'doxygen -g' and then modified for use at RIT. The doxygen program produces documentation from source code in html, latex, and other output formats. Doxygen understands both triple-slash and javadoc style documentation comments and can process Java, Python, C, C++, FORTRAN, D and other languages.
  2. touch-header is a bash shell script that produces a simple, skeleton header file following triple-slash documentation style. Save this script to your bin directory for your own use and customization.
  3. touch-cpp is a bash shell script that produces a skeleton cpp file following triple-slash documentation style. Its companion for C++ is touch-h, which produces a header file containing a skeleton class declaration.

Links for Design

  1. Binky's Pointer Fun Videos show how pointers work in several languages, including C and C++.
  2. Randy Miller's UML Tutorial (2003 Borland, now Embarcadero)
  3. IBM's Rational Software Architect search page is a good UML reference point.
  4. Sparx Systems' UML 2.0 Tutorial
  5. Beck and Cunningham's 1989 Introduction to CRC Cards Modeling
  6. CRC Cards Modeling
  7. Yet another page on CRC cards

Development Tools, Version Control, Documentation, IDEs, Etc.

  1. http://www.codeblocks.org/ a C++ IDE for PC users
  2. http://www.bloodshed.net , the Home of Dev-C++, an IDE for PCs (no longer supported)
  3. IntroCSDept.html is a CS Department System Introduction: accounts, UNIX, email, editing.
  4. CVS - Concurrent Version System
  5. UWisconsin Tutorial on CVS
  6. Introduction to RCS-based Revision Control describes how the 'Id' and 'Log' RCS tags work to manage versions, or revisions, of files. You may also wish to read about 'co' and 'ci' here: 'Man_Gnu_html' on RCS . (go to the index (I) and look up 'co' and 'ci'.) In addition, CS2's lab 1 has an activity that may help you learn and practice RCS. Introduction to RCS (do only the lab's Activity 2)
  7. http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html describes use of 'git', a newer version control system.
  8. http://mercurial.selenic.com/wiki/Tutorial describes use of 'Mercurial', (aka Hg), another newer version control system.

UNIX Resources

  1. Beginner's Guide - A PDF Guide to the RIT CS Department UNIX systems.
  2. Tutorial - 8 tutorials for UNIX newbies.
  3. UNIX Commands - Basic summary of common UNIX commands.
  4. Cygwin's XWindows is software for remote display of programs from the UNIX servers to Windows. The late Professor Reynolds put together these setup instructions.

Miscellaneous Resources

  1. Tutoring Center Schedule for times to ask questions and exchange information.

  2. Disabilities Act (ADA) Notice Please read this.