CMSI 698 - SS:Networked Virtual Environments
Syllabus
Summer I 2004
| Monday, Wednesday | Caskey L. Dickson |
| 7:10p.m. - 10:10 p.m. | caskey @ technocage.com |
| Doolan 219 (and Keck Lab) | 310-338-5100 |
| Doolan 104 |
This course will explore the unique issues surrounding the design and construction of a large scale networked virtual environment (NVE). Students will explore a diverse set of computer science topics as they relate to NVEs. These include Networking, Systems Programming, Graphics, GUI design, Distributed Object Communication, Human Factors, Databases and more. Key to this exploration will be the implementation of a complete NVE by the students.
This course is for Graduate Students in Computer Science who are fluent it at least one high level programming language. Proficiency in C, C++ and/or Java on either the UNIX or Win32 platform is essential as a large amount of programming will be fundamental to your grade. Beyond proficiency in a language, knowledge of any of the following will help you succeed: UNIX, IPv4, TCP, UDP, OpenGL, JOGL, Swing, MFC, Databases.
The following text is required and must be read in its entirety prior to our fourth class session. Unfortunately the book is currently listed as print-on-demand which means you will have to find a used copy online. There are currently 8 copies available via Amazon's used book program, I recommend you submit your order today.
The remainder here are reference materials for use in completing the coursework in this class.
The course homepage is available at the following two URLs. One is an exact copy of the other. The first is the primary site and the second is a mirror. The pages are updated during the course to contain useful information.
Your final grade will be based upon the five main assignments and a review of your code produced. The first four of these are a set of Implementation Reports/Presentations due at each milestone explaining what concepts you have applied over the previous implementation period and your progress on the assigned component (15% each, total 60%). The last writing assignment will be a 8-12 page paper discussing the work you have done implementing the concepts in the book (30%) and the remainder of your grade will be based upon the quality and organization of your code (10%).
Your coding style will play a huge part in determining your score on the assignments. I will not hesitate to assign D's and F's to working programs which are poorly structured, haphazardly indented, under-commented, have poor identifier names and abbreviations, contain inappropriate hard-coded values, or are not "easily maintainable". Appearance of the grading policy in this syllabus constitutes "fair warning" of the consequences of poorly written code.
Code that fails to compile or fails to validate when run through a conformance test (e.g. validating parser) will be given an F without further review.
As with your source code, your writing must be clear, edited and concise. All submitted work, must be typed and proofed. The ability to communicate your ideas clearly and effectively is a critical aspect of your career both professionally and as a student. As such, assignments with misspellings and/or bad grammar will be returned ungraded. You are encouraged to make use of your peers. It is my assumption that any writing assignment you turn in has been proofed by at least one other person. An exception to printed/typeset material requirement is granted for hand-annotation of printed screen shots, complicated diagrams or other material that would be impractical to typeset. However, illegible work will be returned ungraded and poor craftsmanship will be given an F.
Work may be turned in either in-class or via email, however email submissions of writing assignments will be accepted in PDF format only. Email is a reliable but somewhat unpredicatable message transport. Sending a message on time is not sufficient, it must arrive before the deadline in order to be considered on time.
Given this course's emphasis on implementation, your attendance will mostly likely incur its own negative impact on your grade, I can't emphasize enough the value of regular attendance. Participation is an important part of the learning process and the value of attending both the lecture and the integration labs can't be overstated. We're all aware of how expensive tuition is and out of respect I will do my best to be here on time every week; I expect you to do the same.
Classes meet twice a week, these two sessions will be split into Integration Labs on Mondays and Presentation/Lectures on Wednesdays. A specific schedule of lectures will be posted later this week.