Foundations of Software Engineering

Lecture Notes

SES #

TOPICS

1

Administrative & Introduction
Makefile Primer
GNU Makefile Documentation
CVS Documentation

2

Overview of C++ and Object-Oriented Design

3

Object Construction and Destruction

4

Dynamic Management of Objects

5

Operator Overloading

6

Inheritance

7

Linked Lists, Static Class Members

8

Quiz Review

9

Templates,
Sorting & Searching Algorithms 

10

Programming in Java®
Shape Example

11

Java® Basics (contd.)

12

Graphical Programs

13

Applets and Applications

14

Custom Graphics

15

File I/O

16

Quiz Review

17

Multithreading
Working with Images

18

Physical Simulation

19

Source Code Management Using CVS

20

Java® Remote Method Invokation Framework

21

Java® Beans, Java® 3D

Recitations

REC #

TOPICS

 1 

Course Goals & Content, References & Recitations; Compilation; Debugging; Makefiles; Concurrent Versions System (CVS); Introduction to C++; Data Types; Variable Declarations and Definitions; Operators; Expressions and Statements; Input/Output Operators; Preprocessor Directives; Header Files; Control Structures

 2 

Functions: Declarations, Definitions, and Invocations; Inline Functions; Function Overloading; Recursion; Scope and Extent of Variables; References; Pointers; Function Call by Value, References and Pointers; Pointers to Functions; 1-D Arrays; Strings as Arrays of Char; Arrays of Pointers; 2-D and Higher Dimensions Arrays; Return by Reference Functions; Dynamic Memory Allocation; The Size of Operator; Data Structures; Introduction to Classes and Objects

 3 

Classes and Objects; Classes: Member Variables & Member Functions; Classes: Constructors & Destructor; Constructor Header Initialization; Copy Constructors; Member Variables & Functions Protection: Private, Protected & Public; Static Class Data and Class Functions; Class Scope; Pointers to Class Members; Operator Overloading; Friend Functions; Type Conversions

 4 

Inheritance: Public, Protected and Private Derivation; Multiple Inheritance; Inheritance: Constructors and Destructors; Inheritance: Redefining Member Functions; Virtual Functions and Polymorphism; Abstract Classes; File Streams; Namespaces; Assertions; C++ Standard Library String Class; Other Topics

 5 

Function Templates; Class Templates; Sorting and Searching Algorithms; Insertion Sort; Selection Sort; Shellsort; Quicksort; Linear Search; Binary Search

 6 

Introduction to Java®; Compiling and Running a Java® Application and a Java® Applet; Data Types; Variables, Declarations, Initializations, Assignments; Operators, Precedence, Associativity, Type Conversions, and Mixed Expressions; Control Structures; Comments; Arrays; Classes and Objects; Constructors; Initializers; Member Data and Functions; Function Overloading

 7 

Sun Java® Studio Standard 5; Inheritance; Controlling Access to Class Members; Strings; Packages; Interfaces; Nested Classes and Interfaces; Garbage Collection; Applets

 8 

Exceptions; Threads; I/O; Introduction to Java® GUI and Swing

 9 

The JComponent Class; Top-Level Containers; Intermediate Swing Containers; Atomic Components

Assignments

ASSIGNMENTS

SOLUTIONS

Problem Set 1 (PDF)

(PDF)

Problem Set 2 (PDF)

(PDF)

Problem Set 3 (PDF)

(PDF)

Problem Set 4 (PDF)

(PDF)

Problem Set 5 (PDF)

(PDF)

Problem Set 6 (PDF)

(PDF)

Problem Set 7 (PDF)
Pole Data for Problem Set 7 (DATA)

(PDF)

Exams

EXAMS

SOLUTIONS

Sample Quiz 1 (PDF)

(PDF)

Quiz 1 (PDF)

(PDF)

Quiz 2 (PDF)

(PDF)