CMSC 240: Software Systems Development

Spring 2023

Doug Szajda

Lecture: T, Th, 12:00 - 1:15 pm, Jepson 109

Lab: T 3:00 - 3:50 pm, Jepson 109



Office Hours

  • Tuesday, 4:00 - 5:00
  • Thursday, 10:30 - 11:45
  • Friday, 10:30 - noon

Lab Assistant

The lab assistant for the course is Angela Stefanovska, a senior CS major. She will not be present at all labs, but she knows all of them well. Like myself, she will be a participant in the course Piazza page.

Handouts

Required Text

  • There is no required text for the course. In the past I have required Programming Principles and Practice Using C++ (2nd Edition) by Bjarne Stroustrup, which is a great text for those learning C++. We just do not tend to use it enough in this course to justify the cost. Regardless, it would be a good reference for you to have.

Other good C++ references (not required)

These are both great references for use after you have learned the basics of modern C++. They really dig down into the details of the language.
  • Effective Modern C++ by Scott Meyers
  • A Tour of C++ by Bjarne Stroustrup

Links

  • A page with some useful links! (Thanks to my former colleaue Barry Lawson!) You will be accessing the links on that page often. There are links to good online C++ references (including free C++ texts), to instructions on how to use secure copy (scp) to and from the linux cluster, to instructions for using secure shell, etc.

Calendar: (Note: Due Dates Listed Here are placeholders only! I will tell you when assignments are due and change the due dates listed here to reflect that!

Date Topic Assignments Due Readings/Discussions (do readings before class!) Slides
1/10/23 Intro to C++ and Unix Text: Chapter 2 unix_C++_intro.pdf
1/10/23 -- Lab Lab 0 Lab 0[PDF]
1/12/23 Text: Chapter 3
1/17/23 Text: Chapter 17 (Read it all, but focus on pointers)
1/17/23 -- Lab Lab 1 Lab 1[PDF]
1/19/23 Pointers (cont.), References pointers.cpp
references.cpp
struct.cpp
1/24/23 dynamic.cpp
func_ptr.cpp
ptrArithmetic.cpp
strings.cpp
1/24/23 -- Lab Lab 2 Lab 2[PDF]
test.cpp
String.h
1/26/23 Basic Architecture and Program Execution [PDF]
1/31/23
1/31/23 -- Lab Lab 3 Lab 3 [PDF]
2/2/23 Move semantics and rvalue references in C++, by Alex Allain Copy and Move Semantics [PDF]
2/7/23
2/7/23 -- Lab Lab 4 [PDF] Makefiles [PDF]
2/9/23 No lecture: Prof S. away at a conference
2/14/23
2/14/23 -- Lab Lab 5 [PDF]
2/16/23
2/21/23 inherit.cpp
inherit_poly.cpp
multiInherit.cpp
2/21/23 -- Lab Lab 6 [PDF] (due Fri. 3/3)
2/23/23 GDB
2/28/23 Midterm Exam
3/2/23
3/7/23 Spring Break
3/9/23 Spring Break
3/14/23
3/14/23 -- Lab Lab 7 [PDF]
3/16/23 C++ Template Classes and Methods MyContainer.h
Student.h
Student.cpp
iteratorTest.cpp
tester.cpp
old_style.cpp
template_example.cpp
3/21/23
3/21/23 -- Lab Final Project [PDF]
Sample input file
random.cpp
animator.tgz [tgz]
3/23/23 Software Engineering Models [PDF]
3/28/23
3/28/23 -- Lab
3/30/23
4/4/23 Odds and Ends [PDF]
4/4/23 -- Lab
4/6/23 Testing [PDF]
4/11/23 UML; Design Patterns UML: Video #1   #2   #3 Concurrency [PDF]
4/11/23 -- Lab
4/13/23 Design Patterns [PDF]
4/18/23
4/18/23 -- Lab
4/20/23 Smart Pointers [PDF]
4/25/23 Final Exam, 2:00 - 5:00 pm