CS 499 | Senior Project

CS 499 - Course Information and Syllabus

(version 1912)

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 1912 of this document and is the current standard. Previous versions have been deprecated.

Outcomes and Expectations

The outcomes of the senior project course are:

You will be expected

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.

Expectation and Perception:
This is not a free for all class, you will be required to produce full academic, skill, and capability performance. More so than any other class you have taken. This is considered the capstone class of your degree. You are expected to apply the majority of your newly learned skills and knowledge, and in addition learn something new in a produce a workable product at a professional level.

A Significant Project

The expectation is that significant projects:

At the end of the project you should be able to summarize your project as a STAR story, that you could report at an interview, at a meeting, or at a conference.

General Notes

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.

When you sign up for SPED talk, and you have to re-schedule, there will be a penalty, depending on when you reschedule during the semester, based on the instructor’s digression, time window from original scheduled time and availability. For example, instructor can give you 10% if re-scheduled on the week that you scheduled, except for legit reasons (medical issues or work conflicts), not for poor planning, and an additional 5% for each from the original scheduled week. If there are no times available that next week, that is the risk associated with re-scheduling.

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.

There are few things that you need to conceder also when choosing your idea.

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. Project Name
  2. Group Size / Contact information
  3. Abstract/Propose
  4. Background/Prior Knowledge
  5. Description
  6. Significance
  7. New Computer Science Concepts
  8. Interestingness
  9. Tasks and Schedule
  1. Resources

Proof read your proposal. You should not have any of the previous instructions in the proposal. Please make sure that you are not violating copyright, IP, or patent laws.

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

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.

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, use the provided outline

Note:

?)

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)
    • You list yourself and all 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.

     

    Week

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    Worked this Week

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    Too much

    20

    20

    20

    20

    20

    20

    20

    20

    20

    20

    20

    20

    20

    20

     

    Ahead

    15

    15

    15

    15

    15

    15

    15

    15

    15

    15

    15

    15

    15

    15

     

    On-Schedule

    9

    9

    9

    9

    9

    9

    9

    9

    9

    9

    9

    9

    9

    9

     

    Behind

    5

    5

    5

    5

    5

    5

    5

    5

    5

    5

    5

    5

    5

    5

    Total to-Date

     

    9

    18

    27

    36

    45

    54

    63

    72

    81

    90

    99

    108

    117

    126

     

    Too much

    20

    40

    60

    80

    100

    120

    140

    160

    180

    200

    220

    240

    260

    280

     

    Far Exceeds

    15

    30

    45

    60

    75

    90

    105

    120

    135

    150

    165

    180

    195

    210

     

    Meets Expectation

    9

    18

    27

    36

    45

    54

    63

    72

    81

    90

    99

    108

    117

    126

     

    Needs Improvements (Less than)

    5

    10

    15

    20

    25

    30

    35

    40

    45

    50

    55

    60

    65

    70

    Anticipated

     

    126

    126

    126

    126

    126

    126

    126

    126

    126

    126

    126

    126

    126

    126

  5. Accomplishments (since last status report)
    • This should be based off your proposal
    • What tasks have been completed? What milestones?
  6. Challenges encountered (since last status report)
    • What are some problems that you didn’t realize, at the beginning of the semester?
    • How have you overcome them?
  7. Plans / Goals for the next week
    • Include upcoming tasks, milestones, goals, and deliverables
  8. SPED Talk Insight (Briefly describe an insight or something interesting you learned from the SPED talks this week)
    • Talk 1: Insight
    • Talk 2: Insight (if scheduled)
    • Talk 3: Insight (if scheduled)
  9. Other comments for the instructor
    • Ask a question to the instructor. He will collect the questions and answers them and post them as announcement.
    • Ask for clarification on class instructions
    • Provide additional information about your project that the instructor might be able to help with.

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 via a Roadshow, Conference or Video online depending on your location, or online 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.


Definition of Done:

If you are on campus, you should be presenting your project at

If you are online, you should create a video, be expected to answers questions via discussion board.
For all three mediums, Students will be allowed ten minutes to present their projects and three minutes to answer your questions, or as directed by the CSEE R&CW conference.

.

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

Grading

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.

Accommodations

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.

 

Revision History


3.0

Previous to Fall 2018

1811

Converted from version 3.0

1812

Updated Outcomes
Updated Significant Projects to be SMART
Updated SPED talks with additional information
Updated Choosing an ideas with additional advice (IP)
Updated The Proposal Document new additional information
Updated Requirements Specification with format and advice
Updated Status Reports new format
Updated Project Completion to include presentation
Moved Q&A to different document
Add revision history

1910

Updated SPED talk penalty re-schedule
Updated Project Completion for CSEE R&CW Conference Info
Updated the STAR with SMART
Updated the Proposal

1912

Added Innovation Society Competition to Choosing an Idea.