11.07.2015 Views

Course Overview - Caltech

Course Overview - Caltech

Course Overview - Caltech

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CS123 – Projects inDatabase SystemsSpring 2012


<strong>Course</strong> <strong>Overview</strong> Purpose: Give students an opportunity to do some database systemprogramming (Not focused on apps that use databases) Students can work individually, or in groups Examples: Add features to NanoDB Create another database system from scratch, e.g. a purerelationaldatabase with Tutorial-D queries Implement a feature on some open-source database http://courses.cms.caltech.edu/cs123/sp2012/


<strong>Course</strong> Expectations Choose an area of database systems that is interestingto you, and implement a project in it <strong>Course</strong> is rated at 9 units, so you should be working~9 hours every week on this class A substantial part of this should be actual coding Must use version-control to manage your code Must write comprehensive docs for your work Give a final presentation/demo of your work Complete a final report describing your work


Project Proposal Week 1: Write a project proposal (due Friday) A specific description of overall goals/features Implementation details: If extending an existing project, describe the project, where toget the code, etc. Programming language you will use for the project Version control repository you will use (e.g. git/svn) Where the repository will be hosted (e.g. CS cluster) Outline/schedule of how you intend to complete theproject in your limited 10-week timeframe Break down implementation process into sequence of tasks No task longer than 3-5 days of coding time


Project Proposal and Grades I will review your project proposals and assign you abaseline grade i.e. if you complete the project as described, hitting allmilestones and satisfying all requirements, that is thegrade you would get Refer back to course expectations for guidance ~9 hours a week of work, implementing something youdidn’t already know about, etc. Your baseline grade will be assigned based on how wellyour project matches up to this expectation


Project Proposal and Grades (2) Other aspects of project will affect final grade Baseline grade, +/- amounts based on performance Your grade will be adjusted lower if: You don’t complete the features you specify Your code isn’t clean and well commented You don’t use version-control, or you mismanage it You miss a milestone, or don’t do a good job on it Your final presentation isn’t good Your documentation isn’t complete etc.


Project Proposal and Grades (3) Your grade will be adjusted higher if: You complete features in addition to your project You have substantial unit-testing in place Your work will make a future iteration of CS122 easier toteach, or better J etc.


Weekly Status Updates For non-milestone weeks: status updates Do these as a class – need to pick a time to meet Similar to scrum standups: What you worked on the last week, and what youaccomplished. Unresolved issues you have run into. What you plan to work on during the next week. These are required Can only miss 2 of these, or you’ll start losing points If you can’t make it, must submit status by email


Milestone 1: Can you build it? Week 3: Milestone 1 Project should be well underway at this point Goal: make sure your basic development framework/infrastructure is in place Demo: How to check out code from your repository How to build your project, generate docs, run unit-tests(if you have them) Turn in (so I can try it myself): Location of repository, and steps to complete demo Any additional libraries/dependencies I would need, outside ofwhat is in the repository


Milestone 2: DevelopmentCheckpoint Week 6: Milestone 2 Give a tour of your project’s codebase Informal presentation: Architectural overview of your project How project’s features map into the codebase Demo anything you have so far


Milestone 3: Code Complete Week 9: Milestone 3 Your project should be code-complete (although probablynot bug-free yet) Informal presentation: Simple demo of all major components of your project Great opportunity to start putting together a demoscript for your project


Final Presentations Week 10/finals week: project demos Everyone must give a presentation of their work Even if a project has multiple students, each student mustpresent what they did Outline: Description of your project If a group project, description of your specific focus Description of what you implemented, major features If you ran into significant challenges, what were they, and howdid you overcome them? Demo of project, focusing on what you did


Final Reports Also need to turn in a final report during finals week Contents: Description of your project If a group project, description of your specific focus Architectural overview of your implementation, touchingon important classes/functions If you ran into significant challenges, what were they, andhow did you overcome them? How to check out and build your project, including docsand tests How to run your project and see your features in action

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!