CS 499 | Senior Project

CS 499 - Course Information and Syllabus

Welcome to Senior Project!

This is an exciting time because it represents that you have arrived at the level of completing a major capstone project. This course is designed to be very much an independent, student-driven process. In a nutshell, you decide what you want to learn and build, and then go do it.

The role of the instructor in this course is simply to help mentor you through the project and ensure that you complete what you planned.

There obviously have to be some guidelines in place, but these are designed to be as minimal as possible. This document will outline the steps you need to complete.

Please note that this is version 3.0 of this document and is the current standard. Previous versions have been deprecated.

Outcomes and Expectations

The outcome of the senior project course is that you learn something new and demonstrate that you have learned it by applying that topic to complete a significant project.

Learn Something New

As a part of your senior project, you are expected to learn a new computer science topic that you don't currently know.

The ability to be a self-reliant learner, where you can learn new concepts without an instructor teaching it to you, or providing a textbook, etc., is a critical outcome of our degree and of the university's mission.

A Significant Project

The expectation is that significant projects:

Please note that a research-related project/paper can also be significant, and is a great option for students considering graduate school.

Participate in Weekly SPED Talks

As you are learning about your new computer science topic, you will also have a chance to teach it.

Senior Project Education Discussion ("SPED Talks") are one of the few chances in this course that we all get to interact with one another. These are designed to be short 5 minute "TED Talk" style presentations where you share with one another what you are learning.

Each person in the course will need to present at some point during the semester, and the instructor will facilitate signing up for these, so that roughly 2-3 people present each week. As an exception, if you are unable to make a video presentation, for whatever reason, you should work with the instructor to come up with an alternative way to present.

The following are the guidelines for these presentations:

When you present, you should add a link to your presentation in the appropriate discussion board. Then, you must also upload a link to the assignment submission for it.

On the weeks that you do not present, you should watch each presentation. This can be a valuable experience for you to learn a little bit about a lot of topics that you may interact with during your career. You are encouraged, but not required, to leave comments, or discuss the topics further with others as you have interest.

One of the components in your weekly status report is to share something interesting you learned from that week's SPED talks.

The Process

The senior project is designed to be as independent as possible. However, to help the instructor mentor you through the project, there are a certain steps you need to complete along the way.

  1. Choose an idea (and potentially teammates)

  2. Submit a project proposal

  3. Submit a requirements specification

  4. Submit weekly status reports

  5. Demonstrate project completion

  6. Submit a reflection document

The following sections outline each of these steps in detail.

Choosing an idea (and potentially teammates)

The first step in the senior project process is to come up with an idea. The most important qualification for an idea is that the project is something that you are interested in. The best way to doom a project to failure is to choose an idea that you aren't passionate about. Every project will have challenges that arise along the way, but if you're working on something you are intrinsically excited about, it will be much easier to push through the hard times and be successful.

As you start thinking about your focus and potential applications, you are encouraged to be in contact with your instructor to ensure that the ideas you are pursuing will meet the requirements of the course. There is no assignment or official submission process for this "pre-proposal" stage, please feel free to correspond via email, etc. It is recommended to get your main idea pre-approved before completing your formal proposal.

Project Proposal

Your project proposal is your first chance to formally define what you plan to build. It is understood and expected that you do not know everything about your focus or your application at this point, but you should have completed some preliminary research. You will continue to research and define more specific requirements after this point. However, at this stage of the process, you should have a sufficiently clear understanding of the area to know what you want to do.

At this point, you should be able to clearly articulate your focus and your application and give a 30 second elevator pitch to anyone who says, "What are you doing for your senior project?"

The proposal gives you and your instructor a chance to discuss your project in concrete terms and determine that it can be an acceptable project.

The Proposal Document

The project proposal should have the following sections:

  1. Contact information (for all team members, if applicable).

  2. Abstract

    Provide a brief summary of your project. A few sentences should suffice since you will provide details below.

  3. Background

    Provide information essential to understanding your project. If applicable, this should include:

    • Prior work by others - Are you recreating something that has been done before? Are you building on top of others' work?

    • Prior work by you - Have you already done things in this area, and you are adding to it?

  4. Description

    Provide the details of your project. In particular, make sure to include:

    • Description - In more detail than your abstract, explain what your will project do.

    • Target Audience - Describe the intended audience of the project.

  5. Significance

    Referring back to the expectations for significant projects above, explain how/why your project will be significant.

  6. New Computer Science Concepts

    Another critical part of your senior project is that you demonstrate that you have become a self-reliant learner. Please describe the new things you will need to learn to complete this project. These items should be computer science / software engineering topics.

  7. Interestingness

    Describe why this project is interesting and exciting to you. Senior projects get hard, hit road-blocks, and cause people to want to quit. If you are excited about your project, this will help you push through.

  8. Tasks and Schedule

    Divide your project into tasks. Try to make these as meaningful as possible and more detailed than "development." For example, for an OCR project, you might have separate tasks for loading an image into the system, identifying the text region, segmenting into characters, etc.

    For each task, list the deadline and estimated number of hours for the task. Your schedule should include submitting the requirements specification as a milestone. Be sure to consider holidays and other events that may impact your schedule. Be realistic!

    Provide the total estimated number of hours to completion.

    Please note that this schedule is for your benefit and not something you will be held to for a grade, but rather something we can refer to, to see if we are on schedule or not.

  9. Required Resources with Costs (if applicable)

    List resources needed to complete your project. This may include hardware, software licenses, reference material, etc. Specify the estimated cost for each resource.

    This is to help you recognize if there are things you'll need to buy, and if so, if that is feasible for you. In some cases the department may have limited funds to purchase equipment that can be reused for future projects. But recognize that if the department purchases equipment it will stay with the department.

When complete, submit your proposal to I-Learn for instructor feedback and approval. Then, you will continue in your research and preliminary work to prepare you to submit your requirements specification.

You should complete your proposal as soon as possible, ideally within the first week or two of the semester.

While you are waiting for feedback on your proposal, please continue forward with your project. When changes need to be made, they are almost always clarifications, minor adjustments, or changes to scope, rather than a change to a completely different project.

Requirements Specification

After your proposal is approved, you will know you are on a good path. You should then continue in research and preliminary work until you are prepared to more formally define the requirements of your project.

The requirements should be functional requirements, meaning that you can demonstrate that the requirement is met by seeing it work, not by having to look at code.

For this requirements specification you need to provide a list of "must have" requirements and a list of "would like to have" requirements. To complete your project you will be required to complete all of your "must have" requirements, so please plan accordingly.

Please note that the IEEE standard is overkill for the CS 499 project requirements specification.

For this document, include a paragraph or so describing the project and summarizing the requirements, then provide a list of requirements as follows:

Requirements Changes

You should plan to complete your project as you defined it. However, as you get deeper into your research, if you discover that something is not feasible as you had planned for some reason (note: not "a little harder than anticipated"), you may need to re-negotiate items in your proposal and/or requirements document.

To request a requirements change, you should send an email to the instructor with the following:

  1. List of previous requirement(s).

  2. Explanation of why it is no long appropriate and why this was not identified earlier.

  3. List of proposed requirements to be done in lieu of the previous ones.

  4. Justification for why this change will not compromise the integrity of the overall project.

Please note that requirements changes are not made to simply make the project easier. Usually they require more work, because they require you to go in a different direction than originally planned. They are, however, necessary when the project has reached an insurmountable hurtle, so that another course of action can be taken.

As with projects in the real-world, you should do all you can to identify and mitigate high priority risks as early as possible. Then, you can make plans to mitigate the risks and adjust accordingly. Also, as with the real-world, other stake holders will be much more understanding and can much more easily adjust plans the earlier in the process this happens. In other words, for this project you can expect the amount of leniency will be much greater earlier in the project. In addition, requirements cannot be changed in the last week of the semester, you should know what is possible long before that point.

Status Reports

Each week you submit a status report to indicate the progress you're making and list your goals for the upcoming week. Students working in teams must individually submit these status reports to discuss their specific contributions and plans.

The purpose of this report is to help you monitor your own progress and to assist the instructor in mentoring.

For status reports, download the CS 499 Status Report template text file. You should fill out the sections of this text file and submit it to I-Learn. It will have you include the following:

  1. Project Title

  2. Team members (if applicable)

  3. Overall status of the project (on-schedule, behind, ahead)

  4. Number of hours A) worked that week, B) total to-date on the project, and C) anticipated total hours needed for completion.

  5. Accomplishments (since last status report)

  6. Challenges encountered (since last status report)

  7. Plans / Goals for the next week

  8. SPED Talk Insight (Briefly describe an insight or something interesting you learned from the SPED talks this week)

  9. Other comments for the instructor

You should submit a status report each week, even before you have a proposal in place.

The purpose of a status report is to give an update of where you are at a certain point in time. Because of this, it is not helpful to submit missing reports, late. Therefore, late status reports are not accepted. Because individual status reports do not represent a large portion of the grade, missing one will likely not have an impact on the final grade of the course, but a pattern of missing them is a problem.

The instructor will leave feedback on your status reports, and use that as a means to offer suggestions or answer questions. Please make sure to look for this feedback each week in I-Learn.

Project Completion

Before the end of the semester, you need to demonstrate your project to your instructor as defined in your proposal and requirements specification.

This means you need to schedule a time to meet with the instructor (e.g., a video call) before the end of the day on the last regular class day of the semester. This leaves the "final exam" days for you to submit your reflection document and for the instructor to finish the paperwork process.

Peer Evaluation for Team Projects (if applicable)

If you completed your project in a team, at the end of the semester, before your meeting with the instructor, please submit a document that discusses each team member's contribution.

First, list the project name and the name of each team member. Then, for yourself and each member of the team include the following:

  1. Describe this person's primary responsibilities

  2. Describe how well they fulfilled their tasks.

  3. Describe how well they communicated with the team.

  4. Describe one thing they could have done better.

Then, finally, please assign each team member a score that defines their overall contribution to the team. These scores must have an average of 10, and cannot all be the same. So, for example, you must have at least one 11 and one 9.

Reflection Document

After completing your project, prepare and submit a reflection document covering the following:

  1. Briefly describe your project.

  2. How did you meet, exceed, or fall short of your original expectations?

  3. What changes were made to your project during the process?

  4. What were the most important/interesting lessons learned about the new computer science topics you learned about?

  5. What were the most important/interesting lessons learned about the project itself?

  6. What were the most important/interesting lessons learned about yourself?

  7. Final Thoughts


With the exception of receiving credit for submitting status reports and your SPED talk presentation, this project is graded holistically at the end of the semester.

The university has defined its grading system to be:

In accordance with these definitions, the senior project will be evaluated holistically according to the following guidelines.

Late proposals or requirements specifications, or limited number of hours for the senior project will reduce the grade from the scale noted.

In addition, regardless of I-Learn grade calculations or credit received from status reports or SPED talks, you must receive at least a C- on the project completion to pass this course.

CS 499-A and 499-B

For those students enrolled in CS 499-A or CS 499-B, rather than completing the project in one semester, the overall process is the same. However the expected deliverables are:

Frequently Asked Questions

Can I start on my senior project before I am registered for the course?

Yes! You are encouraged to get started thinking about and even working on your project before you are enrolled in the course.

Please be aware that you must go through the same process of submitting proposals, status reports, etc. If you are not yet enrolled in the course, these should be submitted via email. Once you have an approved proposal, you are should submit status reports via email whenever you have done about 10 hours of work. You must be enrolled in CS 499 during the semester that you complete the project.

Can I use software written by others?

Yes! Your goal is to build on this code to make something significant. This usually means that you are building on top of existing components.

Can my senior project be something I'm doing at work?

If a project for work meets the necessary requirements, it can potentially be used for a senior project. However, it is important that to go through the process of proposal, requirements document, and status reports before undertaking the project.

Can I use something I have previously done for my senior project?

As a matter of policy, previously completed projects, either for work or personal projects, are not eligible for senior project credit. Regardless of what you have done previously, there is still more to learn. The purpose of the senior project is for you to learn something new--so, even if you have done great things in the past, choose something new and interesting to you and see what you can learn.

You are welcome to add onto previous projects, provided the new work will cause you do learn new computer science concepts and be significant.

Can my senior project be something I'm doing for my internship?

Projects done as part of an internship are being counted as part of that course and are not eligible to double count as senior projects.

What are some possibilities topics for my project?

You need to decide what you are interested in, so it will be a meaningful project for you.

Are there some topics I should avoid?

Games. It is hard to impress a potential employer with a game that you have spent 100 hours on, when they will compare it to polished products that have had thousands and thousands of hours of work.

Lessons Learned by Past Students

I didn't submit my requirements document until later in the semester since I didn't want to commit myself to something that seemed a tall order, if not impossible. But I should have just jumped into it and got it done. I feel like, if I had and I could have spent another 50-100 hours on it, I could have had something a little more complex and interesting.

Please recommend the path of Senior Project A & B to all CS/SE students who need to complete a senior project. It is much less stressful to spread it out over 2 semesters.


Brigham Young University-Idaho is committed to providing a working and learning atmosphere that accommodates qualified persons with disabilities. If you have a disability and require accommodations, please contact the Disability Services Office (208) 496-9210. Reasonable academic accommodations are reviewed for all students who have qualified documented disabilities. Services are coordinated with the students and instructor by the Disability Services Office.

Maintaining a Safe Learning Environment

BYU-Idaho prohibits sex discrimination against any participant in its education programs or activities. Prohibited sex discrimination includes incidents of sexual harassment (including sexual violence), dating violence, domestic violence, sexual assault, and stalking (collectively "sexual misconduct").

As an instructor, one of my responsibilities is to help create a safe learning environment for my students and for the campus as a whole. University policy requires that I report all incidents of sexual misconduct that come to my attention. If you encounter sexual misconduct, please contact the Title IX Coordinator at titleix@byui.edu or 208-496-9209. Additional information about sexual misconduct and available resources can be found at www.byui.edu/titleix.