Title: CS 4485: Computer Science Project
Course Registration Number: 10227
Times: F 12:30-3:15
Location: ECSS 2.305
Instructor: Dr. Kevin Hamlen (hamlen AT utdallas)
Instructor's Office Hours: ECSS 3.704, Fri 3:15-5:15
Teaching Assistant: Ajay Kulkarni (ajay.kulkarni AT student DOT utdallas DOT edu)
TA's Office Hours: ECSS 4.213-4.214, Mon & Wed 5:00-6:00, Fri 12:30-3:15
As announced in class, there will be a Stage 4 product demo during class on Friday 12/11. THE DEMO WILL BE IN MY OFFICE (ECSS 3.704) not in the classroom. You need only be present for your demo timeslot. Your demo may be conducted on your laptop in my office or at a nearby lab. The timeslots are as follows:
Students will work in teams of 3 or 4 to design and implement an advanced peer-to-peer file-sharing client over the course of one semester. The course objectives are:
Prerequisites: Data Structures (CS/SE 3345), Software Engineering (CE/CS/SE 3354), and at least 3 CS 43XX classes including at least 1 elective
Development of the product will take place in four one-month stages. Each stage will conclude with a written report and an in-class demo of the product completed to-date.
There will be no exams or homework assignments in the course.
At the deadlines of stages 1, 2, 3, and 4 (listed above), each team will submit a written progress report and demonstrate their software in-class for the instructor. The final project submission will consist of:
Each team will complete their own individual design and implementation of the product. Sharing of code or documentation between teams is prohibited, though members of different teams may discuss general design strategies and questions if they wish. Within teams, full collaboration is both permitted and required. All team members may work on all components of the project or they may each work separately on the various components. All members of each team will receive the same final grade for the course except in cases of academic integrity violations, absence, etc.
Teams may make use of low-level support libraries and code developed by others, but not to the point of reverse-engineering or otherwise drawing upon code from any existing peer-to-peer client or simulator. Any third-party code must, of course, be used in compliance with any relevant legal requirements. The identity and licenses of all such code used either in development or in the final version of the product must be fully documented in the final write-up with appropriate citations of authors, organizations, etc.
A grade of incomplete will only be granted to a student if his team has already completed and demonstrated all of Stages 1, 2, and 3 of the project, but a documented illness or other emergency prevents him/her from completing the final 30% of the course work. Incomplete grades will NOT be granted on the basis of insufficient time, poor team coordination, harddrive failure, or similar difficulties. One of the goals of the course is to teach students to meet hard deadlines in the development of a medium-to-large sized software system, so be sure to manage your time well!
Students may choose to implement their product in any programming language(s), using any development environment, and using any method of version-tracking. However, here are some links to resources that may prove helpful:
Date | Topic |
Fri 8/21 | Lecture: Project introduction and description Lecture Slides |
Fri 8/28 | Lecture: Stage 1 description and requirements Stage 1 Requirements Email instructor with:
|
Fri 9/4 | Lecture: Threads and Sockets programming Lecture Slides |
Fri 9/11 | Lecture: Stage 2 description and requirements Instructor Q&A for Stage 1 Stage 2 Slides |
Fri 9/18 | Stage 1 Demo |
Fri 9/25 | Lecture: P2P Security Issues |
Fri 10/2 | No Lecture (meet in teams) |
Fri 10/9 | Lecture: Stage 3 description and requirements Stage 3 Slides |
Fri 10/16 | Stage 2 Demo |
Fri 10/23 | Lecture: P2P Security Issues (cont) |
Fri 10/30 | Lecture: Using this class to further your career Lecture Slides |
Fri 11/6 | Lecture: Stage 4 description and requirements Stage 4 Slides |
Fri 11/13 | Stage 3 Demo |
Fri 11/20 | Course Evaluations |
Fri 11/27 | No class (Thanksgiving break) |
Fri 12/4 | Lecture: Course summary and wrap-up Final Submission Requirements |
Fri 12/11 | Stage 4 demo (in lieu of final exam) Come to my office (ECSS 3.704) instead of the classroom. |
Tue 12/15 | Final Project Submission Deadline Bring a cd/dvd with all required materials to my office between 11:00 and 1:00 |