CS120 Resources

Links were active as of 7/15/2018

Quick links

Online Library Resources

The library has electronic access to computing related books, including the O'Reilly series.
  • From on-campus, go to the http://www.wooster.edu/academics/libraries/.
  • Under "Articles and Research" on the main page, select the "Subject Guides" link.Select the "Computer Science" link. Have a poke around; there is lots of good stuff here. The ACM Digital Library is a particularly good resource for academic articles in all areas of CS (good for Senior IS, hint hint).
  • Either scroll down to or do a page search for "Safari Tech Books Online" and follow that link.
Back to top

How to Read a Research Article

Back to top

XCode Development Environment

We will be using the XCode or Clion environment to do development work. XCode/Clion provides a general-purpose workbench for doing development. The workbench supports multiple perspectives - a C/C++ perspective, a debugging perspective, etc.

Installing XCode on your own Mac is easy. Installing Clion on the Mac or PC is also straightforward.

  • if you have difficulty make an appointment with an IT staff member, explaining that you want XCode/Clion and the Command Line Tools installed. This is the best and safest method of installation.
  • If you own a PC, use Clion to do draft work, but make sure it runs under the g++ compiler.
  • A quick tutorial to set up an Xcode project.
Back to top

C++ Links

If you come across any links you find useful, please pass them on to me.

Pointers and Addresses

C++ Namespaces

General C++ Links

STL Links

iostream links

Back to top

UML

The Unified Modeling Language is a graphic notation for designing OO programs. It includes graphics for the components of an OO program and notations to show the static and dynamic relationships between these components. UML is very powerful and quite complex in its whole. Our use will be confined to a small and pretty intuitive part of UML including class diagrams, collaboration diagrams and sequence diagrams.
Back to top

Unit Testing

Unit testing has been around for a while, but has gained prominence recently with the popularity of eXtreme Programming and Agile Programming. The idea is to treat each class you write as a unit and to test it as you add methods. The tests typically are developed within a testing framework (JUnit for Java is common and we will use CxxTest for C++). What is cool, is that once you have written the tests, it is dead easy to rerun them every time you make a change to your code. This is called regression testing.
Part of the unit testing philosophy is that you write the tests before you implement the methods in the class to be tested (this is also called test-driven development for obvious reasons). How can this be? Well, if you know what the method is supposed to do (its semantics) and you know its interface (its syntax), you know enough to write code to test its correctness. Writing such tests is intellectually challenging. The reward is code that is more likely to be correct and to meet its purpose.

Here are some links:

Back to top