Course Syllabus

Computer Science 4284

Systems & Networking Capstone

Fall 2017


This course gives a capstone design experience for students interested in systems & networking. It exposes students to open-ended problems in computer systems and networking and requires synthesis and integration of state-of-the-art system design and implementation methods, techniques, and tools. Successful completion of this course will help prepare students for the complexities of solving real-world problems in computer systems & networking. Working on the projects will enable the students to exercise and reinforce the fundamental principles that they have learned in prior courses in this area, e.g., computer systems, computer architecture, networking, parallel computation, and distributed computing.


The course activities also reinforce, via evaluated project reports and presentations, written and oral communication skills.


Course information





Office Hours:


Meeting Time:

Final Exam Slot:

Dr. Ali R. Butt



Please email for appointments


TR 12:30-1:45pm in MCB 231

December 15, 10:05AM-12:05PM




Students need the experience with data structures and software development provided by CS 3114 and its prerequisites, and the knowledge of basic operating systems principles provided by CS 3214. 



We will not be using any textbook for this course. Reading material will be assigned as needed from research publications and online resources.


Reference: Tanenbaum, Andrew and Van Steen, Maarten. DISTRIBUTED SYSTEMS: PRINCIPLES AND PARADIGMS (2nd Edition). Prentice Hall, 2006, xviii, 686.


Learning Objectives

Having successfully completed this course, students will be able to:

  • design a solution to a significant open-ended problem in computer systems & networking;
  • design, implement, debug, and test an advanced computing system that address the selected problem using the skills learned in previous courses;
  • choose appropriate theories and techniques to address the problem;
  • judge performance/complexity tradeoffs among alternative theories and/or methodologies in this context;
  • document and present (using written, oral and visual means) the design process and the results of a proposed solution to the selected problem;
  • select an appropriate evaluation methodology to confirm that the solution meets the design goals;
  • evaluate and critically assess the proposed solution(s);
  • function effectively in teams.




The course work consists of lectures and a semester long team-based programming project focused on practical issues. The lectures are divided as follows.


Background & foundation:

·          Review of state of the art in computer systems & networking

·          Modern software development techniques

·          Source control

·          Team management

·          Documentation

·          Test-driven development

·          Advanced systems design

·          Performance evaluation strategies


Identification & classification of open-ended problem(s)


Project Implementation and evaluation techniques

·          Synthesis of complex solutions

·          Analysis of alternative designs

·          Design of experimentation and evaluation methodologies

·          Presentation of results


Feedback-driven project development


Project presentation & demonstration techniques


Project documentation techniques






Project: The class includes a term-long project of your choice related to the topics covered in class. The project will be completed in teams. The term project can take multiple forms. For instance, your team may design, prototype, and evaluate a practical system that solves a distributed systems problem. Or you may design a project that evaluates the suitability of an existing system for a particular purpose. Or you may add an extension to a system. You are encouraged to come up with your own ideas for a project.


Students will submit a 3 page project proposal that should outline the project. The proposal should explain what problem you are addressing and the relevance of that problem. You should outline what infrastructure (software and/or hardware) you will be using for that project and how you expect to evaluate your results. You will need to define what deliverables your project will have. To ensure progress towards the completion of your project or paper, your team will meet with the instructor during certain milestones, which will be posted on the class website. Those meetings are mandatory for full credit on the project.


Final Presentation: All teams are required to do a final 30-minute presentation that summarizes the results of their project.


Late Drop and Incomplete Policy

Less-than-hoped-for performance or realizing you have taken on too much work this semester, are not permissible reasons to grant course withdrawal requests after the drop/withdrawal deadline. This policy applies only to drop requests that have to be approved by the instructor; in particular, it does not apply to the course withdrawals for six credit hours to which you are entitled according to college policy.


I will not grant incompletes for this course unless truly extraordinary, unforeseen circumstances outside of your control are to blame.



Project proposal              




Final project presentation


Final project report



We will use 10-point grading scale which is listed below:

A   90-100
B   89-80 
C   79-70 
D   60-69
F   Below 60  



Honor Code

The Virginia Tech Undergraduate Honor Code pledge, that each member of the university community agrees to abide by, states: “As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do.

Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment or project is responsible for obtaining specific guidance from the course instructor before submitting the assignment or project for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code.

 For additional information about the Honor Code, please visit:


Students with Disabilities

If you need adaptations or accommodations because of a disability (learning disability, attention deficit disorder, psychological, or physical), if you have emergency medical information to share with the instructor, or if you need special arrangements in case the building must be evacuated, please meet with the instructor as soon as possible.


Course Summary:

Date Details