Core Courses ECO topics adjusted for the adoption of Java

Draft, 10/12/99

CSC101-2 topics

(Note: based on Koffman and Wolz's table of contents)
  1. Introduction to Computers and Software Development
    1. Use if computers to solve problems.
    2. Overview of computers, computer components, and networks.
    3. Levels of abstraction in software deveopment.
    4. Overview and history of programming language.
    5. Overview of high-Level programming language and the process of compilation/interpretation, linking, and execution of a program.
    6. The software development cycle.
    7. Creating, testing, and debugging using an Integrated Development Environment.
  2. Software development using Java - basics
    1. The software development method and its application
    2. Overview of a Java Program: application and applet
    3. Reserved words and identifiers
    4. Data types
    5. Class definitions
    6. Method definitions
    7. Java program (application and applet) compilation, class loader, and execution (virtual machine, use of browser)
    8. The Java class library
    9. Coding style
  3. Methods, statements, and Expressions
    1. Method bodies
    2. Method invocations
    3. Assignment statements
    4. Operations and expressions
    5. Processing integers
    6. Processing strings
  4. Selection constructs
    1. Control structures
    2. Logical expressions
    3. The if statement
    4. if statement with compound clauses
    5. Decision steps in algorithms
    6. Testin and hand-tracing algorithm
    7. Nested if statements and multiple-alternative decisions
    8. The Switch statement and simple menu (text and GUI)
  5. Repetition structures
    1. Counting loops and the while statement
    2. Using a loop to accumulate a sum and to compute an average
    3. State-controlled loops
    4. do-while loops
    5. Count loops and the for statement
    6. Testing a program with loops.
  6. Arrays and vectors
    1. heterogenous data structure
    2. declarations and indexing
    3. array processing
    4. aggregation operations
    5. array/vector lists: representation, searching and sorting
    6. array of objects
  7. Basic algorithm Analysis
    1. Complexities of algorithms
    2. Big-O Notation
  8. Basic graphics
    1. The Swing class library
    2. Drawing shapes, text boxes, decision boxes, etc.
    3. Building a simple graphical user interface
  9. Object-Oriented Design and Programming
    1. Classes, class members and instance members
    2. Modular programming and code reuse
    3. Encapsulation
    4. Inheritance
    5. Polymorphism
    6. Interfaces
    7. Packages
    8. Abstract classes
    9. Multiple inheritance
    10. Use of OOD in GUI
  10. Linked Data Structures
    1. Linked lists
    2. Stacks
    3. Queues
  11. Event-driven programming
    1. Event-driven programming vs. von-Neuman model programming
    2. Event handling with graphic user interface
  12. Recursion
  13. Design patterns

CSC103 topics

To be supplied.