CCPS 406 Introduction To Software Engineering
CCPS 406 Introduction To Software Engineering
Engineering
Ilkka Kokkarinen
SE10 Ian Sommerville: Software Engineering, 10th Edition. The of icial textbook
of this course, along with its collections of lecture slides, lecture videos and
supplemental material. We will only cover the irst nine chapters of this
book during this irst course, leaving the topics of the remaining chapters
for more specialized courses on software engineering.
This textbook can be ordered from Amazon and other places where ine
books are sold. The publisher-approved eText version is also available for
either one semester or lifetime rental.
SM Sourcemaking. An excellent collection of tutorials on software design
patterns, antipatterns, UML diagrams and software refactoring.
TCC The Codeless Code. Darkly humorous fables on software engineering for
your right brain, illustrating principles of programming philosophy and its
best practices. Written as an affectionate parody of zen koans, the reader is
expected to connect the implied dots to lift the core message of these
fables into the realm of modern software engineering and their own future
career in it.
MB Martin Fowler. Weblog of Martin Fowler's observations on agile software
design and related topics.
CCB Clean Coder Blog. Weblog of Robert Martin's observations on object-
oriented design, programming and testing.
YouTube A collection of good videos, as selected by the instructor, of colourful
characters in this ield providing diverse views, opinions and experiences
with various topics of this course. (Even if some videos show code
examples in a programming language that you are not familiar with,
remember that that code is intended as an illustrative example, and follow
along benevolently with your assumption of what everything means.)
C2 The site wiki.c2.com, the original Wiki about various software engineering
topic. Delightfully nineties in its spirit, content and approach, with each
Wiki page containing Talmudic debates between experts in the ield. Start
with Road Maps, or you could get lost in the Random Pages in spirit of TV
Tropes and similar.
SE Software Engineering Stack Exchange, to learn the lingo and thinking and
culture of the ield for students planning to embark in it.
f
f
f
f
f
f
f
f
List of Modules
Module 1: Introduction
YouTube Let's Build That App: "What is Unit Testing, Why We Use It, and Sample
Test Cases"
Kevlin Henney: "Structure and Interpretation of Test Cases"
AmigosCode: "Software Testing Tutorial - Learn Unit Testing and
Integration Testing"
UVA CS 3240: "Veri ication and Validation", "Testing Strategies and
Types", "Continuous Integration"
Erick Minick: "What is Continuous Testing?"
Continuous Delivery: “Unit Testing Is The Bare Minimum”
SE10 8: Software testing
TCC Case 103. The black enamel box
Case 135. Ass-backwards compatibility
Case 142. The blind leading the blind
Case 182. Mousetrap
Case 219. Nothing really matters
MF Test Categories
Unit Test
Test Cancer
Mocks Aren't Stubs
Object Mother
CCB TDD harms architecture
When TDD doesn't work
Giving up on TDD
Other Joel on Software: “Top Five (Wrong) Reasons You Don’t Have Testers”
f
Module 9: Refactoring
As per requirement by TMU School of Computer Science, students must score at least half the
marks of the inal exam to pass the course, regardless of their other marks.
f
f