Content
____________________________________________________
Schedule and due dates
- The schedule may be updated as we progress through the semester, on Canvas.
- Please check back regularly for changes.
Projects
Project 1: ./project-1.pdf
Project 2: ./project-2.pdf
Topical outline
- Slides will usually be posted before class.
- 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/
- In Linux/Unix/Mac
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:
- 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?
- Without using a GUI:
1a. Bash basics
- Reading: +01-02-LinuxBash (first part)
- 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: +01-02-LinuxBash (second part)
- 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:
- Version Control
- Slides: +03-VersionControl
- 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:
- ./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: ./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: ./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
- Build systems (GNU Make)
- Reading:
- ./tools-for-computer-scientists.pdf Chapter 5
- https://www.gnu.org/software/make/manual/make.html Chapter 1 and 2
- http://makefiletutorial.com/ First block of examples
- http://labor-liber.org/en/gnu-linux/development/ (good!)
- Slides: ./05-build_systems.pdf
- Assignment:
- Pre-lab 05 (from the book) due right before class starts
- Post-lab 05 due 24 hours after the start of class:
- Reading:
- Debuggers
- Reading:
- ./tools-for-computer-scientists.pdf Chapter 6, 9
- Slides: ./06-debugging.pdf
- Notes: this prints an array, where len is a number like 6:
- p *array@len
- Another frond-end to add to the list:
- Notes: this prints an array, where len is a number like 6:
- Assignment:
- Pre-lab 06 (from the book) due right before class starts
- Post-lab 06 due 24 hours after the start of class:
- Reading:
- Code checking
- Reading:
- ./tools-for-computer-scientists.pdf Chapter 7
- Slides: ./07-code_checking.pdf
- Assignment:
- Pre-lab 07 (from the book) due right before class starts
- Post-lab 07 due 24 hours after the start of class:
- Reading:
- Unit testing
- Reading:
- ./tools-for-computer-scientists.pdf Chapter 8
- Slides: ./08-unit_testing.pdf
- Assignment:
- Pre-lab 08 (from the book) due right before class starts
- Post-lab 08 due 24 hours after the start of class:
- Reading:
- Profiling
- Reading:
- ./tools-for-computer-scientists.pdf Chapter 10
- https://github.com/KDAB/hotspot (add python)
- Slides: ./10-code_profiling.pdf
- Assignment:
- Pre-lab 10 (from the book) due right before class starts
- Post-lab 10 due 24 hours after the start of class:
- Reading:
- Regular expressions
- Reading:
- ./tools-for-computer-scientists.pdf Chapter 8
- http://en.cppreference.com/w/cpp/regex
- http://www.cplusplus.com/reference/regex/
- http://www.grymoire.com/Unix/Sed.html
- http://www.rexegg.com/regex-quickstart.html
- https://regex101.com/
- https://regexcrossword.com/
- https://www.gnu.org/software/grep/manual/grep.html
- https://www.gnu.org/software/sed/manual/sed.html
- https://www.regexone.com/ (this one is good, I suggest completing the activity)
- https://www.regular-expressions.info/
- Slides: ./11-regular_expressions.pdf
- Assignment:
- Pre-lab (from the book) due right before class starts
- Post-lab due 24 hours after the start of class:
- Reading:
- GUI programming - Qt
- Reading:
- ./tools-for-computer-scientists.pdf Chapter 8
- https://wiki.qt.io/About_Qt
- https://www.qt.io/what-is-qt/
- https://showroom.qt.io/
- https://en.wikipedia.org/wiki/Qt_(software)
- https://wiki.qt.io/Basic_Qt_Programming_Tutorial (easy)
- https://wiki.qt.io/Qt_for_Beginners (short)
- http://zetcode.com/gui/qt5/ (long)
- https://doc.qt.io/qtcreator/
- https://www.youtube.com/watch?v=6KtOzh0StTc&list=PL2D1942A4688E9D63&spfreload=10
- Slides: ./12-GUI_programming.pdf
- Assignment:
- Pre-lab (from the book) due right before class starts
- Post-lab due 24 hours after the start of class:
- Reading:
- LaTeX
- Reading:
- Slides: ./13-latex.pdf
- Assignment:
- Pre-lab (from the book) due right before class starts
- Post-lab due 24 hours after the start of class:
- Modern C++
- Reading:
- ./tools-for-computer-scientists.pdf Chapter 14
- Slides:
- Assignment:
- Pre-lab (from the book) due right before class starts
- Post-lab due 24 hours after the start of class:
- Reading:
Backlinks: CoursesArchive:GeneralSyllabusFS21 CoursesArchive:GeneralSyllabusSP22 index:SyllabusGeneral index:Classes:DataStructuresLab index:ResearchDevelopment:ClassroomCode CoursesArchive:GeneralSyllabusSP23