Spring 2025 (01/25/2025 - 05/22/2025)

The semester has 29 class meetings including the final exam. Clicking on a class day below, you should find the class module for the day including lecture notes, assignments, and others. The instructor releases the content for a class generally on the Monday before the class. However, the instructor often makes update to the module content after the initial release. You should check this page often for up-to-date content.

In case you encounter a problem when viewing class content, such as, a broken link, please report it to the instructor immediately.

Topics: concept of software engineering

Course Objectives

to be able to identify, formulate, and solve software engineering problem (including specification, design, implementation, and testing)

Lecture Notes

Reading

Chapters 1, 2, and 3

Topics: Overview of software process models; movitations for software process models; water fall, incremental, spiral, RUP process models; agile model;

Lecture Notes

Assignment

Reading

Sections 4.1 - 4.4 and Chapter 5

Notice: Conversion day, classes follow Monday schedule

Topics: introduction to mobile application development

Lecture Notes

Brief Introduction to Android
Developing Basic Android Apps with Activities
Developing Basic Android Apps with Intents
Example Apps

Assignment

TBA

Reading

Topics: introduction to mobile application development

Lecture Notes

Brief Introduction to Android
Developing Basic Android Apps with Activities
Developing Basic Android Apps with Intents
Example Apps

Assignment

TBA

Reading

Notice: Conversion day, classes follow Wednesday schedule

Topics: introduction to mobile application development

Lecture Notes

Brief Introduction to Android
Developing Basic Android Apps with Activities
Developing Basic Android Apps with Intents
Example Apps

Assignment

TBA

Reading

Topics: quality assurance; quality control; verification; validation testing; unit-test;

Lecture Notes

Quality Control and Testing

Assignment

TBA

Group Programming Project

TBA

Reading

Topics: quality assurance; quality control; verification; validation testing; unit-test;

Lecture Notes

Quality Control and Testing
Equivalent Class Partitioning: An Example
Test-Driven Developmemnt

Assignment

TBA

Reading

Topics: Q & A for Midterm Exam.

Lecture Notes

Midterm Review
Sample Midterm Exams

Reading

all chapters and sections discussed

Topics: The instructor will hold a midterm exam in class (or online depending on course modality)

Topics: Android UI testing; acceptance tests for user stories; Espresso; unit test; JUnit; Test-driven development (TDD); TDD workflow; refactoring

Lecture Notes

JUnit
Android UI Testing
Testcases Demo

Assignment

TBA

Reading

Topics: Android UI testing; acceptance tests for user stories; Espresso; unit test; JUnit; Test-driven development (TDD); TDD workflow; refactoring

Lecture Notes

JUnit
Android UI Testing
Testcases Demo

Assignment

TBA

Reading

Topics: architecture design and methodologies;

Lecture Notes

Overview of Architecture Design

Assignment

TBA

Group Programming Project

TBA

Reading

Sections 7.1 and 7.2

Topics: Detailed Design; Object-Oriented Design; UML

Lecture Notes

Overview of Detailed Design
Objected-Oriented Design and UML

Assignment

Reading

Sections 7.3 and 7.4 and Appendix C (of the textook)
Chapter 1 in "Introduction to Software Design with Java" by Robillard

Topics: Observer Design Pattern and Inversion of Control

Lecture Notes

The Observer Design Pattern

Assignment

TBA

Reading

Chapters 8, 9

Notice: Spring Recess - No classes scheduled

Notice: Spring Recess - No classes scheduled

Topics: Polymorphism; interface and polymorphism; Interface Separation Principle

Lecture Notes

Polymorphism and Interface Separation Principle

Assignment

TBA

Group Programming Project

TBA

Reading

Topics: Polymorphism; interface and polymorphism; Interface Separation Principle

Lecture Notes

Polymorphism and Interface Separation Principle

Assignment

TBA

Group Programming Project

TBA

Reading

Topics: Strategy, Iterator, and Singleton Design Patterns

Lecture Notes

The Strategy, Iterator, and Singleton Design Patterns

Assignment

TBA

Reading

Chapters 8, 9

Topics: Strategy, Iterator, and Singleton Design Patterns

Lecture Notes

The Strategy, Iterator, and Singleton Design Patterns

Assignment

TBA

Reading

Chapters 8, 9

Topics: implementation (beautiful code; DRY; Clarity via Conciseness; Idioms;

Lecture Notes

Some Ideas on Software Implementation

Assignment

TBA

Group Programming Project

TBA

Reading

Chapters 9 and 10

Topics: SOFA; SOLID; software metrics;

Lecture Notes

SOLID Design
Characterizing Design with Software Metrics

Assignment

TBA

Reading

Chapters 8, 9

Topics: review for final exam

Lecture Notes

Final Review
Sample Final Exam

Reading

All reading assignments

Topics: project demo/presentation; code reviews; static analysis

Lecture Notes

Code Reviews

Reading

Chapters 9 and 10

Topics: According to the College's schedule, the final exam is at Room 4141 Ingersoll Hall 3:30 - 5:30PM Thursday, May 18, 2023.