CS 1001: Tools for Computer Scientists

Spring 2016

This course will introduce you to a variety of tools that are useful for programming classes, personal projects, and The Real World. We'll focus on some general purpose tools, how to use Linux, and C++ tools and features.



Subject Materials
Week 1 Text Editors:
One of them is objectively the best
Week 2 Shell Commands and Configuration:
Welcome to 1972
Week 3 Version Control:
Advanced methods for accidentally destroying your hard work
Week 4 Shell Scripting:
Teach your shell to make mistakes for you
Week 5 Regular Expressions:
Solve complicated problems with even more complicated problems
Week 6 C++ IDEs:
Compiler errors you can click on
Week 7 Build Systems:
make snark
make: *** No rule to make target `snark'.  Stop.
Project 1
Week 8 Debuggers:
Advanced cout << "help"
Week 9 Code Analysis:
Guided meditation for your broken programs
Week 10 Code Linting:
Computer Science applications for dryer sheets
Week 11 Unit Testing:
How to turn 'is my code broken?' into 'my code IS broken.'
Week 12 C++ Tricks:
Using the kitchen sink of programming languages to chop carrots
Week 13 GUI Programming:
Making windows is a great pane
Week 14
Sect. A
Compiler errors for papers!
Week 14
Sect. B
(Dis)Functional C++
Project 2

Potential Topics

Resources and Links