ECE 255 is not an introductory course in OO design, C++, operating systems, or networking. It's a course intended to expose you to the state-of-the-art in design and programming techniques for building real-world distributed systems. Please do not try to take this class for credit unless you feel comfortable with this philosophy and unless you can spend sufficient time to master the concepts and tools.
An important goal of the assignments is to teach you about design alternatives involved in building communication software. To solidify your exposure to these issues, we'll compare and contrast various examples of designs based on different communication paradigms (such as sockets, CORBA, ACE, and TAO.
Projects will involve substantial network programming in C++, UNIX or Win32, ACE, and CORBA/TAO. Initially, assignments will be done individually by each student. Subsequent projects will be done in small teams of 2 or 3 students. Students are assumed to be competent in C++ and familiar with basic UNIX/Win32 operating system features such as electronic mail, WWW browsers, and USENET newsgroups. Students not familiar with these tools will have to learn them outside of class.
To encourage you to write well-designed software, I reserve the right to change the assignment specifications at any point before the due date. Expect this to happen several times during the semester. If you have written your program in a modular fashion the changes will be trivial to implement.
The programs will be graded using the following criteria: