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.

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 There are 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
Requirements and specifications youtube, slides
HCI youtube, slides
Localization, internationalization, unicode youtube, slides
Sept 23-27 Design concepts and issues youtube, slides
Modeling: DFDs and ERDs notes/examples (borrowed from old old old offering of 375 system analysis):
- process modeling: DFDs,
- data modeling: ERDs,
- larger DFD/ERD example
Code/document standards youtube, slides, Google's C++ style guide
Sept 30-Oct 4 Note: no classes Monday (VIU closed for Truth and Reconciliation Day)
Time estimates and tracking youtube, slides
intermediate cocomo (wikipedia)
using AI-supported coding tools effectively, safely, and ethically
Oct 7-11 Note: no classes Monday (VIU closed for Thanksgiving) but the regular Monday class schedule will be observed on Tuesday
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 14-18 Testing makefiles youtube
Code reuse youtube, slides
templated functions and classes youtube, slides
Oct 21-25 C++ stl: stack, list, queue, and iterators youtube, slides
stacks example youtube
Intro to software testing youtube, slides
unit testing, stubs and drivers youtube, slides
test suite development youtube, slides
Oct 28-Nov1 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
- 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
Nov 4-8 Script for parsing command line arguments youtube, slides, cmdLineParse.sh
automated testing with bash and C++: version 1 youtube, slides, SampleTester.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
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
Nov 25-29 Code and document inspections youtube, slides
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
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