CS120 Resources
Links were active as of 7/15/2018Quick links
Online Library ResourcesThe library has electronic access to computing related books, including the O'Reilly series.
How to Read a Research Article
XCode Development EnvironmentWe 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.
C++ LinksIf you come across any links you find useful, please pass them on to me.Pointers and AddressesC++ NamespacesGeneral C++ Links
STL Linksiostream linksBack to topUMLThe 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 TestingUnit 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:
|