Week | Topics | Resource links |
Review/prep (not covered in class) |
intro to linux accounts, ssh, very basic linux | youtube, slides |
basic programming tips for ssh/C++ on our systems | youtube, slides | |
git submit basics and troubleshooting | youtube, slides, short guide to csci git project/lab submission | |
Sept 2-6 | No 265 labs this week | |
Course mechanics, administrivia | outline labs. assignments, quizzes, project | |
Design and implementation challenges at larger scales | youtube, slides | |
Sept 9-13 | Version control | youtube, slides |
git basics | youtube, slides | |
git branch, merge | youtube, slides | |
git remotes, pull and push | youtube, slides | |
managing standard git with a team | Examples: using gitlab/github, or using csci assigned team git repos | |
Sept 16-20 | Intro to SDLCs, waterfall model | youtube, slides |
spiral and agile models | youtube, slides | |
Short presentation about CSCI co-op program | ||
Roles/responsibilities in team s.w. development | ||
Requirements and specifications | youtube, slides | |
Sept 23-27 | Code/document standards | youtube, slides, Google's C++ style guide |
HCI | youtube, slides | |
Localization, internationalization, unicode | youtube, slides | |
Design concepts and issues | youtube, slides | |
Wed. 25th: 5-10 minute mini-showcase: all seven teams give whole class a short look at the vision for their product | ||
Sept 30-Oct 4 | Note: no classes Monday (VIU closed for Truth and Reconciliation Day) | |
Using AI in CSCI courses | slides | |
Oct 7-11 | Note: no lecture Monday due to instructor illness | |
Wed: phase 2 presentations from the Friday lab sections | ||
Oct 14-18 | Note: no classes Monday (VIU closed for Thanksgiving) but the regular Monday class schedule will be observed on Tuesday | |
Modeling: DFDs, ERDs, activity/state/sequence diagrams | notes/examples (borrowed from old old old offering of 375 system analysis):
- process modeling: DFDs, - data modeling: ERDs, - larger DFD/ERD example | |
Compilation and compilers | youtube, slides | |
Compiling C/C++ with gcc/g++ (options, #includes, guards) | youtube, slides | |
Automated compilation, makefiles and make | youtube, slides, old makefile notes | |
Oct 21-25 | Testing makefiles | youtube |
Code reuse | youtube, slides | |
templated functions and classes | youtube, slides | |
C++ stl: stack, list, queue, and iterators | youtube, slides | |
stacks example | youtube | |
Intro to software testing | youtube, slides | |
Oct 28-Nov1 | unit testing, stubs and drivers | youtube, slides |
test suite development | youtube, slides | |
test automation | youtube, slides | |
Shells, scripting languages and bash | youtube, slides | |
- basic bash i/o, syntax | youtube, slides | |
- integer and floating point math | youtube, slides | |
Nov 4-8 | Please study the slides/videos listed in this section as the alternative to in-class material while Dave is off sick | |
- references, quotes, and brackets | youtube, slides | |
- if statements and boolean logic | youtube, slides | |
- loops and iteration, text processing (reading file, command content) | youtube, slides | |
- arrays | youtube, slides | |
- command line arguments | youtube, slides | |
- bash functions, calls and returns | youtube, slides | |
- globbing and wildcards in commands | youtube, slides | |
- regular expressions and pattern matching | youtube, slides | |
- recursive directory traversals | youtube, slides | |
- automated testing with bash and C++: version 1 | youtube, slides, SampleTester.sh | |
Nov 11-15 | Study week, no labs or lectures | |
Nov 18-22 | Bug reports, reporting, tracking | youtube, slides |
Test driven development | youtube, slides | |
Debuggers and debugging | youtube, slides | |
gdb and C | youtube, slides | |
language-specific debugging | youtube, slides | |
General safety principles | youtube, slides | |
Code and document inspections | youtube, slides | |
Nov 25-29 | Product deployment | youtube, slides |
Maintenance and support | youtube, slides | |
Refactoring | youtube, slides | |
Profilers and profiling | youtube, slides | |
Dec 2-6 | Service-oriented design models | youtube, slides |
Design patterns | youtube, slides | |
Course wrap-up, exam overview (material, question styles, format) | ||
Dec 9-20 | Final exam: in the gym, date/time TBA | |
Extra content (time permitting) |
Hardware, software, and languages (background) | youtube, slides |
Time estimates and tracking | youtube,
slides
intermediate cocomo (wikipedia) | |
Article: Coding habits and their impact on code reviews and maintenance (by M. Lynch) | ||
gprof | youtube, slides | |
valgrind for profiling | youtube, slides | |
valgrind for debugging | youtube, slides | |
linux absolute and relative paths | youtube, slides | |
linux command history and options | youtube, slides | |
io redirection | youtube, slides | |
linux file permissions | youtube, slides | |
common environment variables and customizing your bash setup | youtube, slides | |
linux process control | youtube, slides | |
misc. useful commands/tools | youtube, slides | |
Bash scripting examples | youtube, misc. functions, scripting/git exercise | |
Script for parsing command line arguments | youtube, slides, cmdLineParse.sh | |
Script (outline) for running a single test case (specified by cmd line args) | youtube, TesterII.sh | |
Script for running a test suite (using TesterII.sh above) | youtube, TestCollection.sh |