The outline will be filled in with slides, readings, code, and
assignments as the semester moves forward
The topic schedule may change slightly as the semester
progresses.
mycode.tar.gz is a zip-like archive file.
In Linux/Unix/Mac
Just click on it in your file browser of choice, and it should open
an “archive manager” which can unzip it
At the command line, you can unpack it by executing in the directory
with the file: $tar -xf mycode.tar.gz
In Windows
you can open it with http://7-zip.org/
0a. Introduction and setup
* What is this class?
* Resources, book, website
* SSH/Putty/X-forwarding (old, don’t bother)
* How to submit assignments
* log into https://git-classes.mst.edu/
* VirtualBox pre-setup
0b. Virtual machines
* Reading:
* Content/00-VirtualMachines.html
* Assignment:
* Pre-lab in the book
* Post-lab 00 activity due 24 hours after the start of lab
* From within your new virtual machine, add the answers to the following
questions to a text file in your repository for the day (using the
Gitlab web interface).
* Without using a GUI:
* What command do you type to update your software?
* What command do you type to search for software to install?
* What command do you type to install that software?
* What are the version numbers of GCC, Code::Blocks, Qt-creator,
Kdevelop, Kdbg, GDB, and Valgrind?
1a. Bash basics
* Reading: Content/01-02-LinuxBash.html
(first part.html)
* Assignment (download and submit using the Gitlab web interface):
* Pre-lab 02 (from the book) due right before class starts
* Post-lab 02 due 24 hours after the start of class:
1b. Bash scripting
* Reading: Content/01-02-LinuxBash.html
(second part.html)
* Assignment (download and submit using the Gitlab web interface):
* Pre-lab 04 (from the book) due right before class starts
* Post-lab 04 due 24 hours after the start of class:
Assignment (clone and submit using the command line Git interface
only!):
Pre-lab 03 (from the book) due right before class starts
Post-lab 03 due 24 hours after the start of class:
3. Unix philosophy and text editors
* Reading:
* Content/tools-for-computer-scientists.pdf
Chapter 1, 9, Appendix E
*
https://en.wikipedia.org/wiki/Comparison_of_text_editors#Programming_features
* Vim
* http://www.viemu.com/a-why-vi-vim.html
* https://danielmiessler.com/study/vim/
* https://www.reddit.com/r/WatchPeopleVim
* http://vimcasts.org/
* https://devhints.io/vim
* https://learnxinyminutes.com/docs/vim/
* https://openvim.com/
* https://www.vim.so/
* https://vimmer.io/
* https://www.youtube.com/watch?v=GqoJQft5R2E (set -o vi in
.bashrc)
* Slides: Content/01_Text_IDE.pdf
* Assignment:
* Pre-lab 01 and 09 (from the book) due before class starts. This is the
short worksheet at the end of each chapter.
* Post-lab 01 and 09 due 24 hours after the start of class:
* Post-lab 01 is at the end of the chapter (answer the questions in a
text file and place it in the repository).
* Post-lab 09 is in the repository and here: Content/09_IDE-assignment.pdf
* Play several levels of https://vim-adventures.com/ and include a
screenshot in your repository
* Play https://www.shortcutfoo.com/ for vim