Classes Taught by I-Chen Wu

(This page may be out of date.  The latest pages are here.)

Algorithms
Network Programming
Advanced Java Programming
Massive Multi-player Online Game Programming
Internet/Intranet Technologies
Data Structures
System Programming
Parallel Processing
Parallel/Distributed Processing
Programming Languages
Note that: URLs of slides are available in the corresponding bboard (not here).
Copies of all slides are available in the fourth floor copy room.

Algorithms

Goal: Learn all kinds of algorithms which is basic for practical uses or further research.
Textbooks:
List of outlines:
Syllabus:
Foundations:
Sorting (4hrs)
  • Simple sorting algorithms
  • Fast sorting Algorithms
  • Lower bound
  • Medians 
Search (5hrs)
  • Linear Search
  • Search Tress and Balanced search trees [A]
  • Radix Searching
  • Hashing
Advanced Design and Analysis Techniques
Graph Algorithms [M] (8hrs) 
  • Elementary graph algorithms
  • Minimum spanning trees
  • Shortest path problems
  • Network flow
Selected Topics 

Network Programming

Goal: Learn all kinds of network programming technologies on different platforms for practical uses or further research.
Textbooks:
¡@
Outline of the Course:

Advanced Java Programming

All on-line slides and more information are available in http://java.csie.nctu.edu.tw/~icwu/classes/java/.

Syllabus

List of outlines:

  • Introduction
  • History
  • Introduction
  • Get Started (skipped)
  • System
  • Classes and types (skipped)
  • Vectors, Hashtables, Strings, and Properties. (skipped)
  • Language basics (skipped)
  • Advanced Language Features
    • Exception handling 
    • Threads  
    • Input/Output
      • Internationalization 
    • Networking 
  • Graphic user interface
  • Component
    • Applets
    • Swing
    • Model-View-Control
  • Low Level and Reflection
  • Java Virtual Machine (JVM)
  • Just-In-Time Compiler (JIT) & Optimization
  • JNI
  • Reflection
  • Serialization
  • Beans
  • RMI 
  • IDL and Corba  
  • J2EE (Slides are not ready yet)
    • XML (including XML-RPC)
    • Servlets
    • JSP
    • Web Services
    • Enterprise Beans
  • Advanced Topics (Slides are not ready yet, and not all will be taught)
  • Java3D 
  • J2ME 
  • Patterns and Java 
  • Comparisons to COM & DCOM & .NET 

Textbooks:

References:

  • "Apache Tomcat", by Jakarta Project of Apache.
  • "Patterns in Java", by Mark Grand, Vol. 1, John Wiley and Sons, 1998.
  • More in http://java.sun.com/docs/, such as:
    • The Java Language Specification, by Gosling, Joy, and Steele.
  • More will be posted later.

Massive Multi-player Online Game (MMOG) Programming

The latest information about this course is in http://java.csie.nctu.edu.tw/~mmog/2005/. ¡@


Internet Technology

bboard: news://netnews2.csie.nctu.edu.tw/csie.course.internet-technology
¡@
Textbooks:
  • (None)
Outline of the Course: See http://java.csie.nctu.edu.tw/~icwu/IT/overview2001.htm
¡@

Data Structures

bboard: csie.course.data-structure.b
Textbooks:
  • Fundamentals of Data Structures in C++ by Horowitz et. al.
  • Outline of the Course:
  • Introduction
  • Algorithms
  • Abstract data types
  • C++
  • Complexity analysis
  • Arrays
  • Stacks and queues
  • Linked lists
  • Trees
  • Graphs
  • Sets and hashing
  • Sorting
  • Search (selected topic)

  • Parallel Processing

    bboard: csie.course.parallel-processing
    Textbooks:
  • Introduction to Parallel Algorithms and Architectures, by F. T. Leighton.
  • Introduction to parallel computing, by Kumar, et al.
  • Outline of the Course
  • Introduction [W]
  • Applications
  • Example
  • Issues of Parallel Processing
  • Parallel Models and Metrics [K,W]
  • Models of Parallel Computers
  • Interconnection Network [K,L]
  • Basic Communication Operations
  • Performance Metrices and Scalability
  • Parallel Algorithms [K,L]
  • Matrix Algorithms
  • Sorting
  • Graph Algorithms
  • Dynamic Programming
  • Search Algorithms
  • Fast Fourier Transform
  • Sparse Systems of Linear Equations
  • Parallel Architectures [D]
  • Array Processors
  • SIMDs, MIMDs
  • Hypercube Architecture
  • Systolic Arrays
  • Switching Networks

  • Parallel/Distributed Programming

    bboard: csie.course.pdp
    Textbooks: (handouts)
    Outline: (not available)

    System Programming

    bboard: csie.course.system-programming
    Textbooks:
  • System Software by Beck.
  • Outline:
  • Introduction
  • Assembler
  • Linker and Loader
  • Macro Processor
  • Compiler
  • Java

  • Programming Language

    bboard: csie.course.u.pl.b

    Textbooks:
  • Concepts of Programming Languages by R. W. Sebesta.
  • Extra content:
  • Java Programming Language.
  • Outline:
    ¡@
        1. English Version
        2. Chinese Version (Done by students)

    Selective topics: (only select one or two common languages to discuss)

    • Functional Programming Languages (LISP)
    • Logic Programming Languages (Prolog)
    • Object-Oriented Programming Languages (C++ and Java)