Please note that some content linked on this page may only be available to registered students.
General Course Description
At this point in your CS education, you are getting very close to graduating. Congratulations! As part of showing what you've learned, this course will give you an opportunity to take a software project from start to finish. The instructor will play two roles in this course: the facilitator for course work, and the "Client" for your projects.
As a member of a 3-person "Development Team", you will gather requirements from the Client, propose a development plan, and then begin work. Over the course of the term you will be submitting Progress Reports to show what you have been doing. At the end of the term, you will submit a final report and showcase your projects!
You are expected to spend roughly 100 hours total in the assignments for this course, the bulk of which are authoring your Team's software project. Remember that, as in a workplace environment, you will probably be unequally yoked, and you each will have different abilities and skills. Some of you may be more capable programmers than the other members of your group! Remember to communicate frequently and honestly to keep each other appraised of your efforts. Failure to do so has caused many issues in the past!
There are no tests, midterms, or finals in this course
Instructor and TA Information
The instructor for the course is Bill Pfeil.
The GTA(s) for the course are:
Your work may be graded by the instructor or one of the TAs, according to the table below:
|Assignment||Bill Pfeil||Prachi Rahurkar||Iman Aminzahed|
|Choose Your Project||All Dev Teams|
|Meet Your Team||All Dev Teams|
|Create Project Plan||All Dev Teams|
|Weekly Progress Reports||Groups A* - K*||Groups L* - Z*|
|Mid-Point Project Check||Groups A* - K*||Groups L* - Z*|
|Create Poster||All Dev Teams|
|Create Final Report||Groups A* - K*||Groups L* - Z*|
|Demonstrate Project||Groups A* - K*||Groups L* - Z*|
Just after Fall and Spring terms end, we hold Career Showcases where you can come hear from companies looking to hire graduates from our program. If you're available, come network with these businesses and sign up for a few time slots to speak directly with them. It's a tremendous opportunity you won't want to miss. The students who attend always rave about it - many of them get jobs and internships as a result. These events are typically held in Portland, OR.
If you would like to attend (attendance is entirely optional, of course), you may share the project you complete in this class at the Showcase using the poster you prepare at the end of this course. Simply let me know you're coming, and that you would like to use your poster, and I'll get it printed and brought with me to the Showcase. Attendance at the Showcase will be required to produce a poster; i.e., I won't print a poster if you're not there.
As part of your poster presentation, the attending employers have a dedicated time where they come by and talk to you about what you're displaying. You don't give a public speech: instead, the employers come to you and ask you about what you're showing. Past attending employers have included Intel, IBM, Mentor Graphics, Ideal-Logic, Columbia Sportswear, HP, Garmin, Daimler Trucks, CBT Nuggets, and tons more! Travel grants are available to get you to Portland, too.
If you have questions, please ask them in our discussion board.
Letters of Recommendation
As much as I enjoy having you in the class, I am generally unable to provide you with a letter of recommendation. I will only be able to write letters for students I know. If you're interested and think I know you well enough, feel free to ask!
About the Instructor
My name is Bill Pfeil and I’ll be your instructor for the Capstone course. I have a M.S. in Math Education from OSU. I did my undergrad at the University of Arizona in Applied Math and ECE. In between my two degrees I spent 25 years as a software engineer, and have worked on everything from client-server apps to games. I am excited to work with all of you as you complete your projects!
Course Name: Online Capstone Project
Course Number: CS 467
Instructor Name: Bill Pfeil
Instructor Email: firstname.lastname@example.org
Teaching Assistant name and contact info:
This syllabus describes the administrative parts of the course and serves as a contract between student and instructor. Remaining in this course indicates acceptance of these rules.
Remember that in this Capstone course, you are expected to behave professionally. Please use this document throughout the course.
Table of Contents
- Course Description
- Course Credits
- Technical Assistance
- Learning Resources
- Measurable Student Learning Outcomes
- Evaluation of Student Performance
- Letter grade
- Course Content
- Course Policies
- Makeup Exams
- Guidelines for a Productive and Effective Online Classroom
- Statement Regarding Students with Disabilities
- Accessibility of Course Materials
- Expectations for Student Conduct
- Academic Integrity
- Tutoring and Writing Assistance
- Student Evaluation of Courses
Real-world team-based experience with the software engineering design and delivery cycle, including requirements analysis and specification, design techniques, and requirements and final project written documentation. For students in the online CS double-degree program only.
If I need to contact you, I will email you directly (or via the class mailing list).
Announcements will be sent out via Canvas. Be sure to enable email and Canvas app notifications for Announcements or you may miss something important!
The preferred way to contact me:
Email me directly at email@example.com (If I don't respond in 24 hours please email me again)
Note: Messaging me on Canvas is an unreliable and indirect way to send me an email that I am less likely to notice in the sea of Canvas notification and daily digest spam from several courses I am subscribed to. I do monitor Slack, but email is still best.
We are not Debuggers, Programmers, or Architects — that's your job! Do not send the instructor or TAs any code except what is required for your assignment submissions.
Don't expect the instructor or the TAs to see comments left with assignment submissions. Canvas allows us to download the entire class's submissions as one .zip file, which does not include these comments. If you need to make a meta-comment about your submission, add it to the submission or email the person grading that submission directly.
This course is online only, and requires approximately 100 hours of student work on their capstone projects for a total of 4 credits. Time spent interacting with course content outside of the project, itself, is minimal.
If you experience any errors or problems while in your online course, contact 24-7 Canvas Support through the Help link within Canvas. If you experience computer difficulties, need help downloading a browser or plug-in, or need assistance logging into a course, contact the IS Service Desk for assistance. You can call (541) 737-8787 or visit the IS Service Desk online.
All class materials can be found on the course web-page. There is no textbook; students are expected to source their own learning resources to accomplish the goals of their projects. A microphone and screen-recording device is required, for submitting weekly project update videos.
Note to prospective students: Please check with the OSU Beaver Store for up-to-date information for the term you enroll (OSU Beaver Store Website or 800-595-0357). If you purchase course materials from other sources, be very careful to obtain the correct ISBN.
Measurable Student Learning Outcomes
After completion of this course, students will have demonstrated an ability to:
- Outline project requirements.
- Design a project plan.
- Summarize and explain their progress.
- Appraise a project, by authoring a final report.
- Demonstrate their final product.
Evaluation of Student Performance
- Syllabus Quiz and Project Choice - 20 points
- Project Planning Stage - 40 points
- Weekly Progress Reports - 25 points
- Midpoint Progress check - 25 points
- Final Report Documents - 72 points
- Final Demonstration - 250 points
- Total - 432 points
Grading responsibilities are shared between the instructors and the TAs. The Course Introduction tab details who grades which assignment, and which groups each person will grade.
You are expected to spend at least 100 hours on the course. Projects that do not reflect this investment will be graded accordingly
Your group will not create your grade for you. You need to accomplish the goals you sign off on by submitting your Project Plan. In this course, failure to communicate with your team, or to provide reasonably working code compatible with the project per the specification may result in you receiving a non-passing grade while the rest of your group passes. You may be removed from your team if you are found to no be putting in the required amount of work.
Total Percentage vs. Letter Grade
Students are expected to participate in all graded discussions. While there is great flexibility in online courses, this is not a self-paced course.
Late Work Policy
Most assignments allow submissions up to two days after the due date for a reduced maximum score. Each assignment has a due date listed on Canvas. Assignments that may be submitted late also have an available until date, which is 48 hours after the initial due date. For these assignments, the following policy applies:
- Assignments submitted on the day after the due due date will be graded normally and then any points past a 90% point total will be lost.
- Assignments submitted on the second day after the due date will be graded normally and then any points past a 75% point total will be lost.
Note that, unlike in other courses, late assignment grades will not be scaled by some factor; any points above a threshold (90% or 75%) will simply be discarded.
This course has no tests or exams.
Incomplete (I) grades will be granted only in emergency cases (usually only for a death in the family, major illness or injury, or birth of your child), and if the student has turned in 80% of the points possible (in other words, usually everything but the final paper). If you are having any difficulty that might prevent you completing the coursework, please don’t wait until the end of the term; let me know right away.
Guidelines for a Productive and Effective Online Classroom
Students are expected to conduct themselves in the course (e.g., on discussion boards, email) in compliance with the university’s regulations regarding civility. Civility is an essential ingredient for academic discourse. All communications for this course should be conducted constructively, civilly, and respectfully. Differences in beliefs, opinions, and approaches are to be expected. In all you say and do for this course, be professional. Please bring any communications you believe to be in violation of this class policy to the attention of your instructor.
Active interaction with peers and your instructor is essential to success in this online course, paying particular attention to the following:
- Unless indicated otherwise, please complete the readings and view other instructional materials for each week before participating in the discussion board.
- Read your posts carefully before submitting them.
- Be respectful of others and their opinions, valuing diversity in backgrounds, abilities, and experiences.
- Challenging the ideas held by others is an integral aspect of critical thinking and the academic process. Please word your responses carefully, and recognize that others are expected to challenge your ideas. A positive atmosphere of healthy debate is encouraged.
Statement Regarding Students with Disabilities
Accommodations for students with disabilities are determined and approved by Disability Access Services (DAS). If you, as a student, believe you are eligible for accommodations but have not obtained approval, please contact DAS immediately at 541-737-4098 or at http://ds.oregonstate.edu. DAS notifies students and faculty members of approved academic accommodations and coordinates implementation of those accommodations. While not required, students and faculty members are encouraged to discuss details of the implementation of individual accommodations.
Accessibility of Course Materials
All materials used in this course are accessible. If you require accommodations please contact Disability Access Services (DAS).
Additionally, Canvas, the learning management system through which this course is offered, provides a vendor statement certifying how the platform is accessible to students with disabilities.
Expectation for Student Conduct
Student conduct is governed by the university’s policies, as explained in the Student Conduct Code. Students are expected to conduct themselves in the course (e.g., on discussion boards, email postings) in compliance with the university's regulations regarding civility.
Students are expected to comply with all regulations pertaining to academic honesty. For further information, visit Student Conduct and Community Standards, or contact the office of Student Conduct and Mediation at 541-737-3656.
OAR 576-015-0020 (2) Academic or Scholarly Dishonesty:
Academic or Scholarly Dishonesty is defined as an act of deception in which a Student seeks to claim credit for the work or effort of another person, or uses unauthorized materials or fabricated information in any academic work or research, either through the Student's own efforts or the efforts of another.
CHEATING - use or attempted use of unauthorized materials, information or study aids, or an act of deceit by which a Student attempts to misrepresent mastery of academic effort or information. This includes but is not limited to unauthorized copying or collaboration on a test or assignment, using prohibited materials and texts, any misuse of an electronic device, or using any deceptive means to gain academic credit.
FABRICATION - falsification or invention of any information including but not limited to falsifying research, inventing or exaggerating data, or listing incorrect or fictitious references.
ASSISTING - helping another commit an act of academic dishonesty. This includes but is not limited to paying or bribing someone to acquire a test or assignment, changing someone's grades or academic records, taking a test/doing an assignment for someone else by any means, including misuse of an electronic device. It is a violation of Oregon state law to create and offer to sell part or all of an educational assignment to another person (ORS 165.114).
TAMPERING - altering or interfering with evaluation instruments or documents.
PLAGIARISM - representing the words or ideas of another person or presenting someone else's words, ideas, artistry or data as one's own, or using one's own previously submitted work. Plagiarism includes but is not limited to copying another person's work (including unpublished material) without appropriate referencing, presenting someone else's opinions and theories as one's own, or working jointly on a project and then submitting it as one's own.
Academic Dishonesty cases are handled initially by the academic units, following the process outlined in the University's Academic Dishonesty Report Form, and will also be referred to SCCS for action under these rules.
Tutoring and Writing Assistance
NetTutor is a leading provider of online tutoring and learner support services fully staffed by experienced, trained and monitored tutors. Students connect to live tutors from any computer that has Internet access. NetTutor provides a virtual whiteboard that allows tutors and students to work on problems in a real time environment. They also have an online writing suite where tutors critique and return essays within 24 to 48 hours. Access NetTutor from within your Canvas class by clicking on the Tools button in your course menu.
The Oregon State Online Writing Suite is also available for students enrolled in Ecampus courses.
Your instructor may ask you to submit one or more of your writings to Turnitin, a plagiarism prevention service. Your assignment content will be checked for potential plagiarism against Internet sources, academic journal articles, and the papers of other OSU students, for common or borrowed content. Turnitin generates a report that highlights any potentially unoriginal text in your paper. The report may be submitted directly to your instructor or your instructor may elect to have you submit initial drafts through Turnitin, and you will receive the report allowing you the opportunity to make adjustments and ensure that all source material has been properly cited. Papers you submit through Turnitin for this or any class will be added to the OSU Turnitin database and may be checked against other OSU paper submissions. You will retain all rights to your written work. For further information, visit Academic Integrity for Students: Turnitin – What is it?
Student Evaluation of Courses
The online Student Evaluation of Teaching system opens to students during the week before finals and closes the Monday following the end of finals. Students receive notification, instructions and the link through their ONID. They may also log into the system via Online Services. Course evaluation results are extremely important and used to help improve courses and the online learning experience for future students. Responses are anonymous (unless a student chooses to “sign” their comments, agreeing to relinquish anonymity) and unavailable to instructors until after grades have been posted. The results of scaled questions and signed comments go to both the instructor and their unit head/supervisor. Anonymous (unsigned) comments go to the instructor only.
Course Outline By Week
- Week 1
- Read the Syllabus and complete the Syllabus Quiz.
- Familiarize yourself with the available projects.
- Create your own project on the discussion board. (Optional)
- Team up with two other students to form your own group. (Optional)
- Complete the "Choose Your Project" survey.
- Go to your group's discussion board and make a post in the Our Team Introductions topic.
- Week 2
- Work with your group to create a project plan.
- Week 3
- Begin working on your project, once your project plan is approved.
- Week 4
- Submit your week 4 progress report (2-5 minute show-and-tell).
- Week 5
- Submit your week 5 progress report (2-5 minute show-and-tell).
- Week 6
- Submit your team's midpoint project report.
- Week 7
- Submit your week 7 progress report (2-5 minute show-and-tell).
- Week 8
- Submit your week 8 progress report (2-5 minute show-and-tell).
- Week 9
- Submit your week 9 progress report (2-5 minute show-and-tell).
- Week 10
- Week 11
- Nothing — Congratulations, you're done!
Please post all course-related questions in the Q&A Discussion Forum so that the whole class may benefit from our conversation. Please contact me privately for matters of a personal nature. I will reply to course-related questions within 24 hours. I will strive to return your assignments and grades for course activities to you within five days of the due date.
I have set up Slack for use in the course, however be aware that there are no set office hours, and that email remains the best way to reach out to the instructor and TA's. That said, be sure to sign up for the Slack workspace. Questions about Slack: Slack - How to
For questions about grading, contact the person responsible for grading that assignment.
To contact me directly, please email me at firstname.lastname@example.org. I strongly suggest tagging your email with "[CS 467]" in the subject line. If you do not receive a response within one business day, feel free to send a follow-up email. Sometimes we miss things!
We are not Debuggers, Programmers, or Architects — that's your job! Do not send the instructor or TAs any code except what is required for your assignment submissions.
Don't expect the instructor or the TAs to see comments left with assignment submissions. Canvas allows us to download the entire class's submissions as one .zip file, which does not include these comments. If you need to make a meta-comment about your submission, add it to the submission or email the person grading that submission.
This page describes the different Software Project ideas that you may choose from. Note that there are no solo projects. Each student's total effort is expected to be roughly 100 hours during this course.
Project types are broken up into these categories:
- Pre-Written Projects
- Real Industry Projects
- Your Own
Click on the title of each following description to get the complete list of requirements.
Note: This is a sample of the available projects. To see ALL projects, make sure to head over to Discussions. Check back often as projects may have been added or updated.
- (Pre-Written): Text-based Adventure Game: Write an adventure-style game, complete with text parser.
- (Pre-Written): 2D Endless Runner Game: Write a networked multiplayer 'endless runner in space" type game , with ASCII graphics.
- (Pre-Written): Real-Time Strategy Game: Write an HTML5 Real-Time Strategy game.
- (Pre-Written): Tower Defense Game: Write an HTML5 Tower Defense game.
- (Pre-Written) StudySeat: Create a web site that finds places to study.
- (Pre-Written) Software Programming Quiz: Create a website for testing incoming employment candidates.
- (Pre-Written) Security-based research project: Research various ways to attack and defend a web app.
- (Pre-Written) Say Hello to Grandpa!: Create a social media site so simple that Grandpa can use it.
- (Pre-Written) Math GO!: Pokemon GO for Math. Search for Beasties using GPS. Capture them by solving math problems.
- (Pre-Written) Mobile Treasure Hunt: Create and play a GPS-based treasure hunt.
- (Pre-Written) Doodle aMazeing: Turn line drawings into playable maze games using your smartphone camera.
- (Pre-Written) Goals for Today: Take the daily standup meeting online and make it better.
- (Pre-Written) Crowd-sourced Shopping: Like Waze, but for shopping.
- (Pre-Written) App/website for Escape Room Quiz: Like Kahoot, but with an Escape Room game.
- (Pre-Written) Virtual Bike Race / Bike Game Trainer: Connect your own game to an exercise bike.
- (Pre-Written) Windows Game Hack/Trainer: Learn new methods and new tools to hack various games on Windows.
Real Industry Projects
We often have projects sent to us by companies and individuals that could use your support. These projects often require additional skills from participants, but offer a way to work on software that will be used in the real world.
Here is the current list of projects in this category:
- (Sponsored) We Give: Create a web-based personalized charitable trust solution.
- (Sponsored) Wedding Pics: Develop an app that crowd-sources your wedding album.
- (Sponsored) Wizard Clock (iPad / iWatch / iOS): Create a beautiful and mysterious way to tell time.
- (Sponsored) Scavenger Club: Create a mysterious GPS-based location game.
- (Sponsored) Pace App - Garmin Version: Port an existing popular fitness pacing app to the Garmin Watch.
- (Sponsored) Review Rubric System for OSU: Create a web-based system to rate speakers and presentations.
- (Sponsored) Schedule it! for OSU: Create a useful scheduling system for all kinds of events.
- (Sponsored) Adaptive Learning Module Prototype for OSU: Continued development on a prototype of a web-based learning module.
- (Sponsored) App/website for OSU Engineering Expo: Develop the official App of the OSU Engineering Expo
Note that as part of your final report submission, if you're working on one of these real industry projects, you'll need to prepare a document that tells the next term's Dev Team how to continue on with the project (see the Create Final Report assignment for details).
Do you have an idea for a project that you'd really like to execute? If so, please make a new Discussion about it (make sure to select Allow Threaded Replies and Allow Liking in the options)! That will let people discuss and possibly improve on the idea, and allows people to let you know that they'd like to be a part of the project.
Feel free to take one of the existing project ideas and modify it into one of your own!
When it comes time to Choose Your Project, write in the survey the thread ID for the custom project, just like you would with any of the pre-written projects I've already provided. If enough people want to be involved, I'll happily split everyone up into multiple groups on the same project (so two groups might be doing a Unity-based Metroid/Castlevania clone).
Some projects are personal or restricted in nature, so please indicate if the project can only be attempted by one group (for example, perhaps you have special knowledge of the subject matter, and the project really couldn't be attempted without you!).
Note that if you choose to work on your own idea, you may not re-use extensive amounts of code from previous projects and get credit for them as part of this course: your programming and design efforts must be new. However, if you have an existing project that you want to put 300 more hours into, you can use that project as a starting point for your team.
Past successful student projects included:
- A Rogue-like game, compilable and playable on OSU's UNIX servers.
- A Windows-based software synthesizer.
- A Unity-based side-scrolling platform game, FPS, or Escape Room game.
- A near-perfect Zelda LttP clone.
- A full-3D Unity-based adventure game.
- Database-backed exercise set generator and tracker.
- Twitter TV show sentiment analyzer using AI to learn.
- AirBNB Clone.
- Full 3D, Unity-based first-person shooter.
If you want to choose the "Your Own" option, make sure you have a plan in mind equal in complexity to the other project examples listed. You should be ready to produce a Project Plan for it.
Assume that TAs will be grading your assignments using school computers (Windows 10 and CentOS Linux environments) at a minimum. If your project has dependency packages or external libraries that need to be installed, we may not be able to grade your assignment. You must check with me before requiring a dependency that isn't already installed for our use. Note that Unity is not available on the school computers, so any Unity projects should be packaged into a single executable or web-published for grading.
Project Selection Considerations
Since this final project you create will be amazing, please consider using it as part of your portfolio to help get jobs. To this end, consider selecting a project that might appeal to your potential employers. While we love grading games - and we know you love writing them - they sometimes aren't as effective for some fields as a more professional project might be. That isn't always the case, though, so use your own judgment.
Welcome to CS 467 Capstone! This course is very different from previous courses in the program. This is where you get to decide what you want to do with your term, with very little input or guidance from the instructor. Some students choose to do a pure coding project where they have an idea and run with it -- others choose to dive into hours of research on a new topic they have no experience with, trading final polish for novelty. It's up to you what you want to do. Many students have told me this was the most fun course they have taken in the program.
In past terms, more than 99% of the class finishes with an A. Failing grades are rare, but can happen. In an effort to avoid this, here are a few very important things we all need to keep in mind as we go through this term:
First, I highly recommend that you try to form your own group with people you already know. This is the most effective way to avoid any potential problems in the course.
The best way to be successful in this course is to start working with your team early on to develop a realistic plan for your project. This will lay the foundation for the rest of the term, so put serious thought into what you are committing to! Don't worry too much though -- one goal of the course is for you to practice planning a project and estimating time and research requirements -- if you over-commit I'm not going to force you to suffer, but you will have to revise your project plan half way through the term which is not very fun. Have real milestones and keep track of them. The sooner you realise you're going off track, the earlier we can work together to fix it.
For research heavy projects, there must be a final deliverable that represents a significant level of mastery of computer science. When grading final projects, the TAs and I take into account the difficulty and novelty of the project when evaluating the deliverables. However, there must still be actual deliverables. Telling me you have done a lot of research, but have nothing to show for it is not a way to pass the class.
You absolutely must keep in regular contact with your team. I know that many of you have jobs and lives outside of this program, and we try to be as flexible as possible. However, this isn't a weekend-only class. You need to communicate with your team and agree on a schedule for regular meetings and progress updates. Having a busy work/school/personal life is not an excuse for disappearing on your group. If your group has gone more than a week without hearing from you, you will be removed from your group. Even excused absences can result in removal from your group if they significantly impact the group's ability to finish the project.
You are responsible for notifying me about absent/under-performing group members. Even though I can see if a student has stopped submitting progress updates or is not showing appropriate progress, I cannot contact the other members of the group to investigate because of academic records privacy regulations. If you have not heard from a group member in more than a week, it is your responsibility to contact me. Waiting until a few days before the final project is due is not an appropriate time to send me an email about how you're the only one that has contributed anything to the project all term.
At the midpoint project check, dysfunctional groups may be broken up and students will be assigned individual projects to complete. These projects are often more difficult than working together as a group, and there is less time to complete them. In general, students that start individual projects have tended to not pass the class. Where possible, if only one group member is not contributing, I will try to preserve the group for the remaining students, adjusting the project requirements as necessary. If a student is removed from a group after the midpoint project check has passed, they may not be given the option for a solo project, and will need to retake the course.
On your weekly progress reports, scrolling quickly up and down and clicking through different source file tabs in your IDE while talking vaguely about your "progress" is a fantastic way to earn a 0 for that week. If there is code on your screen and you say anything to the effect of "this is my code", "I did this", or "this is my work for the week", and that code is something that I find out came from some other source like a book, or another person's GitHub, or one of your group members, you will not only receive 0 points, but I will file a plagiarism case with the college. Several grades of 0 points for weekly progress reports can result in removal from your group.
In any circumstance, I will do everything I can to make sure that students are not unfairly punished for the actions of their group member(s). Because many students plan to use the final deliverable in their professional portfolios, I take non-participation and under-performance very seriously. Please keep in mind the effects that your choices can have on the other people in your group who have all invested a significant amount of time and money into this program and want to have the best final product to show for it that they can.
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.