copyright: uc riverside 1 cs-279-i: design project in computer science computer networks michalis...
Post on 19-Dec-2015
212 views
TRANSCRIPT
1Copyright: UC Riverside
CS-279-I: DesignProject In Computer ScienceComputer Networks
Michalis FaloutsosSurge [email protected]/~michalis
2
This is THE Class!
The ultimate challengeDeveloping a complete systemReal engineeringDress rehearsal for when you go out there
3
What is different here
Open-ended definition of the problemFreedom to designFreedom to define the scopeFruitful interaction with colleagues
4
This Translates to:
Problem-solving engineering skillsDesigning complete systems• Design, Implement, Test
Exercise self motivation and independent thinkingCultivate teamwork skills
5
Freedom Comes At a Price
Responsible behaviorProactive approachNeed for communication• Towards me and among yourselves
6
How Real Engineering Differs from School Assignments
Development is a process, not an all-nighterThe user defines features not guidelinesThe design is half the solutionMost design decisions attempt to strike the balance in a trade-offYou need to justify your approachTeamwork is critical for success
7
The Project
Develop a distributed file sharing systemRequirements scalable to large number of usersOther requirements• Exchange arbitrary type files• Search for the files of interest (id, keywords,
description)
8
Illustrating the Project
New “users” can joinUsers can leaveUsers can search for informationUsers acquire information
Application levelconnections
9
The Process and the Phases
Understanding the problem and previous workDesign of the systemImplementationTestingEvaluation of the process
10
Some Tips
Start early: it is a lot of work!Find ways to distribute the work equally• Maximize parallelism• Modularity (contain errors, facilitate testing)
Thinking ahead and organizing is critical• Desing and Tool selection, mode of operation
11
Timetable of work
End of 2nd week: project proposal ver 1End of 3-4th week: project proposal ver 2End of 5-6th week: midpoint presentation• Design of system
End of 10th week: Deliver project, presentation, demonstration
12
What needs to be delivered
13
Tasks
Design of systemImplementationTestingDeliver deliverables
14
Final deliverable
A thick white binder• Introduction• Design• Implementation details• Source code
Manual - Documentation Source code - CD ROM
• Testing• Lessons Learned - Process Evaluation• Additional Features• Misc• Presentations