Sugih Jamin's Repertoire of Courses


I teach the data structures and algorithms course and both the undergraduate and graduate level computer networks courses. What you learn in EECS 489--the intended technical content, that is--is how to write network applications and what makes the Internet tick. In EECS 589, we investigate alternative computer networks architectures and explore research issues in computer networks. EECS 489, or equivalent, is a strict pre-requisite to EECS 589. For EECS 489 you must know UNIX and C well, EECS 482 is a strict requirement. I also highly recommend that you take an introductory course in Probability if you haven't already. Check out the ``Logistics'' page of each course to find out more about it.

Some of these courses are supported in part by generous donations from Intel Corp. and Microsoft Corp. in the form of laboratory equipments and softwares.

Prospective and current students may find the pointers I've collected useful.

EECS 487
Interactive Computer Graphics

Prereq: EECS 281 or Graduate Standing. I (4 credits)

Computer graphics hardware, line drawing, rasterization, anti-aliasing, graphical user interface (GUI), affine geometry, projective geometry, geometric transformation, polygons, curves, splines, solid models, lighting and shading, image rendering, ray tracing, radiosity, hidden surface removal, texture mapping, animation, virtual reality, and scientific visualization.

EECS 489
Computer Networks

Prereq: EECS 482. I, II (4 credits)

Protocols and architectures of computer networks. Topics include naming and addressing, routing protocols, media access protocols, transport protocols, flow and congestion control, socket programming, and client-server computing. Emphasis is placed on understanding protocol design principles. Programming problems to explore actual implementation issues and further understanding of design choices assigned.

EECS 494
Computer Game Design and Development

Prereq: EECS 281 or Graduate Standing. I (4 credits)

Concepts and methods for the design and development of computer games. Topics include: history of games, 2D graphics and animation, sprite, 3D animation, binary space partition trees, software engineering, game design, interactive fiction, user interfaces, artificial intelligence, game SDK's, networking, multi-player games, game development environments, commercialization of software.

EECS 281
Data Structures and Algorithms

Prereq: EECS 280, EECS 203. I, II (4 credits)

Abstract data types. Recurrence relations and recursions. Advanced data structures: sparse matrices, generalized lists, strings. Tree-searching algorithms, graph algorithms, general searching and sorting. Dynamic storage management. Analysis of algorithms O-notation. Complexity. Top-down program development: design, implementation, testing modularity. Several programming assignments.

   

EECS 589
Advanced Computer Networks

Prereq: EECS 489. II (4 credits)

Advanced topics and research issues in computer networks. Topics include routing protocols, multicast delivery, congestion control, quality of service support, network security, pricing and accounting, and wireless access and mobile networking. Emphasis is placed on performance trade-offs in protocol and architecture designs. Readings assigned from research publications. A course project allows in-depth exploration of topics of interest.

To study and at times put your learning into practice,
is that not a joy?

I won't teach a man who is not anxious to learn,
and will not explain to one
who is not trying to make things clear to himself.

-- Confucius, The Analects