Home | Spring 2016

CS 1001: Tools for Computer Scientists

Summer 2017

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.

Syllabus



Lab Book



Schedule

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

Resources and Links