CSCI 265 Software Engineering Fall 2024
Supporting Resources (videos, slides, notes, examples)

This page contains links for most of the supporting videos, slides, examples, and notes for the 2024 fall offering of CSCI 265, Software engineering.

While I do plan on keeping the lectures/labs in synch with this material as much as possible, there will certainly be content differences between this material and the live lectures. This material is not intended to replace in-class attendance, but rather to act as extra aids/study/support material.

This is the first semester we've run CSCI 265 with three lecture hours per week (instead of 4 in the past), so we may be selectively moving some of the material listed to/from the "extra content" section as the term progresses.

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