2.159
Foundations of Software Engineering
Fall 2000
Topics
- Administrative & Introduction Makefile Primer GNU Makefile Documentation CVS Documentation
- 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
- Overview of C++ and Object Oriented Design
- Classes and Objects
- 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
- Dynamic Management of Objects
- Operator Overloading
- 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
- Inheritance
- Linked Lists, Static Class Members
- 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
- Function Templates; Class Templates; Sorting and Searching Algorithms; Insertion Sort; Selection Sort; Shellsort; Quicksort; Linear Search; Binary Search
- Templates, Sorting & Searching Algorithms
- 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
- Programming in Java® Shape Example
- Java® Basics (contd.)
- Sun Java Studio Standard 5; Inheritance; Controlling Access to Class Members; Strings; Packages; Interfaces; Nested Classes and Interfaces; Garbage Collection; Applets
- Graphical Programs
- Applets and Applications
- Exceptions; Threads; I/O; Introduction to Java GUI and Swing
- Custom Graphics
- File I/O
- The JComponent Class; Top-Level Containers; Intermediate Swing Containers; Atomic Components
- Multithreading Working with Images
- Physical Simulations
- Source Code Management Using CVS
- Java® Remote Method Invokation Framework
- Java Beans, Java® 3D
- Project Presentation I
- Project Presentation II
- Project Presentation III
Readings
- Lippman, S. and J. Lajoie. C++ Primer . 3rd ed. Reading, MA: Addison Wesley Professional. April 1998. ISBN: 9780201824704.
- Sedgewick, R. Algorithms in C++ . Reading, MA: Addison-Wesley Longman, Incorporated. June 2001. ISBN: 0201849380.
- Campione, M., K. Walrath, and A. Huml. The Java® Tutorial . 2nd ed. Upper Saddle River, NJ: Prentice Hall PTR, December 1999. ISBN: 9780201485585.
Sources
- Course catalogue ↗Historical OpenCourseWare
- MIT OCW calendar ↗
- MIT OCW syllabus ↗
- Historical MIT OpenCourseWare offering. Named reading entries and schedule topics are automatically extracted from the linked source pages.