everything.study
2.159

Foundations of Software Engineering

Graduate · Historical course

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.
    Listed reading
  • Sedgewick, R. Algorithms in C++ . Reading, MA: Addison-Wesley Longman, Incorporated. June 2001. ISBN: 0201849380.
    Listed reading
  • Campione, M., K. Walrath, and A. Huml. The Java® Tutorial . 2nd ed. Upper Saddle River, NJ: Prentice Hall PTR, December 1999. ISBN: 9780201485585.
    Listed reading
Sources