CS 330e — Elements of Software Engineering I Fall 2026

Instructional Mode: Face-to-face • Instructor: Fares Fraij • Contact: via Canvas messages
Canvas is the source of truth.
All policies, assignments, and course materials are posted in Canvas.

Section

Unique number: 84645
Class: Mon/Wed 9:30 AM – 11:00 AM • WAG 101
Course dates: Monday, August 24 – Monday, December 7, 2026
No classes: November 23 - 27, 2026

Resources

Start Here
Setup instructions for UTCS access, Python, Git, coverage, and required tools.
Git Guidance
Git configuration, cloning, pushing, branching, merging, and common repository workflows.
Unix/Linux Commands
Searchable command reference for working in the Linux shell on UTCS machines.
Python Setup
Install Python 3.12.x, preferably Python 3.12.3, on Windows or Mac OSX.
UTCS Access
Connect to UTCS machines from Windows or MacOS.

Schedule

Tentative Course Schedule for CS 330e, Fall 2026 (subject to change)
Week Monday Tuesday Wednesday Thursday Friday
Week 1
August 24–28, 2026

Makefiles (Build Automation)
Mon, Aug 24

First class
---
Syllabus
---
Introduction
---
notes_1.txt
Tue, Aug 25
 
Wed, Aug 26

Hello.py
Assertions.py
---
notes_2.txt
---
advice_classwork.txt
Thu, Aug 27
 
Fri, Aug 28
Week 2
August 31–September 4, 2026
XP: Ch. 1-3
Mon, Aug 31

Make Utility
Tutorial
Classwork
Tue, Sep 1
Wed, Sep 2

Git and GitLab
Tutorial
Classwork
---
Assignment #1
Thu, Sep 3
 
Fri, Sep 4
Week 3
September 7–11, 2026
Git Guide
---
XP: Ch. 4-6
Mon, Sep 7

No Class – Labor Day
Tue, Sep 8
 
Wed, Sep 9

example_Docker.txt
---
Project #1
---
phase_I.txt
Thu, Sep 10
Fri, Sep 11
Week 4
September 14–18, 2026
Paper #1:
Pair Programming
---
XP: Ch. 7-10
Mon, Sep 14

Project #1
---
Unit Tests
Tutorial
Classwork
---
notes_3.txt
---
Assignment #2
Tue, Sep 15
 
Wed, Sep 16

UnitTests1.py
UnitTests2.py
UnitTests3.py
---
Coverage1.py
Coverage2.py
Coverage3.py
---
Project #1
Thu, Sep 17
Fri, Sep 18
Week 5
September 21–25, 2026
Paper #2:
Agile Development
--
XP: Ch. 11-13
Mon, Sep 21

Project #1
---
phase_II.txt
---
phase_III.txt
---
Assignment #3
Tue, Sep 22
 
Wed, Sep 23

Factorial.py
FactorialT.py
---
notes_6_prime.docx
---
IsPrime1.py
IsPrime1T.py
---
IsPrime2.py
IsPrime2T.py
---
notes_4.txt
Thu, Sep 24
 
Fri, Sep 25
Week 6
September 28–October 2, 2026
Paper #3:
Team Collaboration (Git & GitHub)
---
XP: Ch. 14-16
Mon, Sep 28

Project #1
---
CS330e_object_model
Types.py
---
notes_5.txt
Tue, Sep 29
 
Wed, Sep 30

Exceptions.py
---
Operators.py
---
notes_6.txt
Thu, Oct 1
 
Fri, Oct 2
Week 7
October 5–9, 2026
Paper #4:
Continuous Integration
---
XP: Ch. 17-19

Mon, Oct 5

Variables.py
---
Reduce.py
ReduceT.py
---
notes_7.txt
Tue, Oct 6
Wed, Oct 7

Iteration.py
---
Yield.py
---
Map.py
MapT.py
---
RMSE.py
RMSET.py
---
notes_8.txt
Thu, Oct 8

Project #1
Fri, Oct 9
Week 8
October 12–16, 2026
Mon, Oct 12

Comprehensions.py
---
Iterables.py
---
FunctionKeywords.py
FunctionDefaults.py
FunctionUnpacking.py
FunctionTuple.py
FunctionDict.py
---
notes_9.txt
---
Assignment #4
Tue, Oct 13
Wed, Oct 14

Test 1 (Oct 14)
Thu, Oct 15
Fri, Oct 16
Week 9
October 19–23, 2026
Mon, Oct 19

Project #2
---
Cycle.py
CycleT.py
---
Count.py
CountT.py
---
Repeat.py
RepeatT.py
---
Chain.py
ChainT.py
Tue, Oct 20
 
Wed, Oct 21

RangeIterator.py
RangeIteratorT.py
---
Range.py
RangeT.py
---
closures
---
notes_10.txt
 
Thu, Oct 22
 
Fri, Oct 23
 
Week 10
October 26–30, 2026

XP: Ch. 20-21
Mon, Oct 26

Lambdas.py
---
Decorators.py
DecoratorsT.py
---
Functions.py
---
notes_11.txt
---
Assignment #5
Tue, Oct 27
 
Wed, Oct 28

JSON
---
Person.json
Person.schema.json
Person.schemaRestricted.json
---
dict_file.py
---
notes_12.txt
Thu, Oct 29
Project #2
Fri, Oct 30
 
Week 11
November 2–6, 2026

XP: Ch. 22-23
---
Paper #7:
What Developers Wish They Learned in College
Mon, Nov 2

Project #3
---
What are HTML, CSS and JavaScript?
HTML
CSS
---
Assignment #6
Tue, Nov 3
 
Wed, Nov 4

CSS Revisited
---
forms
---
Client_Server_Protocol
Thu, Nov 5
 
Fri, Nov 6
 
Week 12
November 9–13, 2026

---
Paper #8:
Women and Leadership in Tech
Mon, Nov 9

Flask
---
Assignment #7
Tue, Nov 10
 
Wed, Nov 11

Flask_code
Thu, Nov 12

Fri, Nov 13
 
Week 13
November 16–20, 2026

Paper #9:
SWE Interviews
Mon, Nov 16

API_scraping.pptx
api.py
Tue, Nov 17
 
Wed, Nov 18

RegExps.py
---
notes_13.txt
Thu, Nov 19
Project #3
Fri, Nov 20
 
Week 14
November 23–27, 2026
Mon, Nov 23

Thanksgiving: No Class
Tue, Nov 24
 
Wed, Nov 25

Thanksgiving: No Class
Thu, Nov 26
 
Fri, Nov 27
 
Week 15
November 30–December 4, 2026

Paper #10:
Software Engineering Résumé Guide
Mon, Nov 30

Select.py
SelectT.py
---
Project.py
ProjectT.py
---
CrossJoin.py
CrossJoinT.py
---
ThetaJoin.py
ThetaJoinT.py
---
notes_14.txt

Tue, Dec 1
 
Wed, Dec 2

NaturalJoin.py
NaturalJoinT.py
---
Introduction to SQL
---
notes_15.txt
Thu, Dec 3
 
Fri, Dec 4
 
Week 16
December 7–11, 2026
Mon, Dec 7

Test 2 (Dec 7)
Tue, Dec 8
 
Wed, Dec 9
 
Thu, Dec 10
 
Fri, Dec 11
 

Notes:

  1. Our Fall 2026 class runs from Monday, August 24, through Monday, December 7.
  2. There is no class on November 23-27, 2026.
  3. Canvas remains the authoritative source for assignment deadlines, project milestones, and readings.