CMPS 4910 Senior Project I
Section 3 - Fall 2020
Instructor and Contact Information
Instructor: Dr. Melissa Danforth
Office Hours: MWF 2:45-3:45pm and TuTh 12:00-1:00pm (link posted on Moodle)
Email: melissa@cs.csub.edu or mdanforth@csub.edu (CSUB.edu goes to my phone)

Virtual Class Information
Moodle website: https://moodle3.cs.csub.edu/course/view.php?id=44

Course meets Fridays 4:00 to 5:40pm on Zoom (Zoom information posted on Moodle)

General Class Structure: Contact me if you have any issues with attending required sessions, such as Internet issues, rotating power outages, technical difficulties, work conflicts, or other university excused absences. Please contact me as soon as possible after the absence, and preferably before class if you know you will not be able to attend.

Because nonverbal feedback is important to evaluating presentations, webcams will be required on Presentation Days while presenting. Webcams are optional at other times. If you believe you have a legitimate reason to not have your camera turned on for your presentation, please consult with me well in advance of a required Presentation Day, and I will make a determination on your request. If you do not have a webcam, contact me as soon as possible so I can see if ITS has a loaner available. Do not wait until the day of the presentation to let me know you do not have a webcam.

I have configured Zoom to allow phone call-ins and to mask phone numbers for those who have to call in to attend.

Virtual Teams
Students will be required to work in teams in this class. All team work must be completed virtually, with no face-to-face meetings. Use virtual collaboration tools such as git, Slack, Discord, Zoom, MS Teams, etc. to manage your group work and team work.

Catalog Description
CMPS 4910 - Senior Project I (2)
After consultation with the faculty supervisor and investigation of relevant literature, the student(s) shall prepare a substantial project with significance in the designated area. The timeline, teamwork responsibilities, milestones, and presentation(s) will be scheduled. Prerequisites: At least 12 semester units of 3000- or 4000-level CMPS courses.
Prerequisites by Topic
Completion of multiple upper-division CMPS courses
Units and Contact Time
2 semester units. 2 units lecture (100 minutes).
Type
Required for CS.
Required Textbook
None.
Recommended Textbook and Other Supplemental Materials
None.
Coordinator(s)
All tenured and tenure-track Computer Science faculty members.
AY 2020/21 Coordinators are Albert Cruz and Melissa Danforth.
Student Learning Outcomes
CMPS 4910 is the first part of two-term senior programming project sequence, with CMPS 4928 Senior Project II in Spring term being the second course in the sequence. All teams are expected to sign up to the same instructor for CMPS 4928 to maintain a seamless mentoring and supervision role for the project.

CMPS 4910 will complete the problem analysis and project design part of the Senior Project; emphasizing problem analysis and applying the knowledge of computer science areas to design solutions.

In this course, students will do the following:

Specific requirements for this course are:

NOTE: At the end of the two-term sequence, usually in late April, students are expected to present their projects to the campus community as a whole at the Senior Design Expo.

ABET Outcome Coverage
The course maps to the following student learning outcomes for Computer Science (CAC/ABET):
1. Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions.
2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline.
3. Communicate effectively in a variety of professional contexts.
4. Recognize professional responsibilities and make informed judgements in computing practice based on legal and ethical principles.
5. Function effectively as a member or leader of a team engaged in activities appropriate to the program's discipline.
6 (CS). Apply computer science theory and software development fundamentals to produce computing-based solutions.
Class Schedule
For presentation days, there will be a poll on Moodle where each team can sign up for a specific presentation time slot.

Week 1 Friday August 28th Class overview and Begin team selections
Week 2 Friday September 4th Finalize team selections and Begin problem selection
Week 3 Schedule with Instructor Team check-in with instructor to discuss project topic
Week 4 Schedule with Instructor Team check-in with instructor to discuss project topic
Week 5 Friday September 25th (Extended until October 2nd) Project Proposals Due
Week 6 Friday October 2nd Hold for possible speaker
Teams with proposal revisions requested must also schedule a team check-in with the instructor
Week 7 Schedule with Instructor Team check-in with instructor to discuss project pitch and any requested proposal revisions
Proposal Revisions due on Friday October 9th
Week 8 Friday October 16th Presentation Day: Project pitches from each team
Week 9 Schedule with Instructor Team check-in with instructor to discuss project progress
Week 10 Friday October 30th Hold for possible speaker
Week 11 Schedule with Instructor Team check-in with instructor to discuss project progress
Week 12 Friday November 13th Hold for possible speaker
Week 13 Schedule with Instructor Team check-in with instructor to discuss project progress
Week 14 Friday November 27th No Class - Holiday (Thanksgiving Break)
Week 15 Schedule with Instructor Team check-in with instructor to discuss end-of-term progress report
Week 15 16 Friday December 4th 11th End-of-term Progress Report Due
Week 16 Wednesday December 9th and Thursday December 17th End-of-term Progress Presentations
Note: The instructor may require further team check-ins beyond those listed above on an as-needed, group-by-group, basis. The instructor will email teams about any required check-ins.

Academic Integrity Policy
All work completed by the teams is expected to be done by the individual team members, or public code that is used with appropriate instructor approval and with appropriate citation and documentation. Any public code that is not appropriately documented and cited in the git repository and the reports will be considered plagiarism.

Examples of violations of the Academic Integrity policy include, but are not limited to, the following:

Violations will result in consequences, either to a specific assignment grade or to the overall course grade. Lack of knowledge is not a reasonable explanation for a violation.

Refer to the Academic Integrity policy in the campus catalog and class schedule for more details. You can also refer to the Academic Integrity policy at the Office of Student Rights and Responsibilities at https://www.csub.edu/osrr/

Academic Accomodations
To request academic accomodations, please contact the Office of Services for Students with Disabilities (SSD) and email me an accomodations letter from the SSD Office. Policies from the SSD Office relating to accomodations, such as scheduling policies for using their testng center, must also be followed. For more information about the services and policies of the SSD Office, contact their staff by email and/or visit their website at https://www.csub.edu/ssd/

Basic Needs Assistance
If you are experiencing challenges related to basic needs, such as food insecurity, housing insecurity, or other challenges, there are resources available to you. The campus Food Pantry, located next to the Student Union, is open with reduced hours during Fall 2020. The Food Pantry also has information about services and monthly food distributions. Please visit the Food Pantry website for hours and information. For housing concerns and other basic needs, please contact the Campus Advocate at 654-6210 or Jason Watkins, Assistant Director for Basic Needs, at 654-3360.

General Team and Project Expectations
Teams are expected to consist of 3 to 5 students. Fewer than 3 students makes it difficult to develop a complex enough project and more than 5 students is difficult to coordinate.

Projects are expected to be complex and reflect a culminating experience in Computer Science. Expected project complexity and scope will be scaled by the size of the team. A team of 5 will be expected to complete a more complex project than a team of 3.

The project components should match the skills of the team members. For example, if the project contains a database, at least one team member should have completed CMPS 3420 and/or have extensive on-the-job experience with databases.

All teams will use git to store code, research, documentation, and other files related to the project. Teams can opt to use GitHub or Odin for their git repository.

Any SDKs, APIs, etc. used in the project must have the approval of the instructor and be appropriately cited and used. Any public code that is not appropriately documented and cited in the git repository and the reports will be considered plagerism. All license and usage requirements of the original developers must also be followed.

Grading Categories
Project Proposal20% (75% individual contribution, 25% team)
Pitch Presentation20% (25% individual contribution, 75% team)
End-of-Term Progress Report20% (75% individual contribution, 25% team)
End-of-Term Presentation20% (25% individual contribution, 75% team)
Teamwork10% (50% individual teamwork skills, 50% team cohessiveness)
Participation10% (100% individual)

Grades are posted on Moodle. It is your responsibility to check Moodle for grades and any comments on assignments. If you believe you submitted your assignment on time but the comment field says "assignment not submitted", contact the instructor.

Project Proposal
The proposal should clearly state what is the chosen project and the goals the team has for the project. The project should be verbally cleared with the instructor at one of the team check-in meetings prior to the proposal due date. The instructor may request a revised proposal if the initial proposal does not meet all criteria or the project is not sufficiently advanced for a Senior Project.

Grading Components: See the Moodle assignment for more details.

Pitch Presentation
Once the team's proposal is approved by the instructor, the team will give a short "pitch" presentation to the class introducting the team and describing the project. The pitch presentation will be about 5-10 minutes long. The team is expected to have a set of prepared slides (PowerPoint, Google, etc.) that they can share to the screen in the Zoom session.

Grading Components: See the Moodle assignment for more details.

End-of-Term Progress Report
The progress report is due at the end of the term and should summarize where the team is on the project, what changes have been made, the justification for the changes, and a summary from each team member on their accomplishments during the term. The instructor will also evaluate the git repository for the team to determine individual contributions to the project.

Grading Components: See the Moodle assignment for more details.

End-of-Term Presentation
The end-of-term presentation will update the class on the status of the project, and can include a demo of code, if the team has gotten that far on the project (demos will be required in CMPS 4928, but are optional in CMPS 4910). The end-of-term presentation is expected to be about 15 minutes long. As with the pitch presentation, the team is expected to have a set of prepared slides for the presentation.

Grading Components: See the Moodle assignment for more details.

Teamwork
Teams are expected to function as a cohessive unit on the project. Teamwork skills that the department expects at this level are:

Grading Components: See the Moodle assignment for more details.

Participation
This portion of your grade will be based on your attendance and participation at required class sessions, team check-in meetings, and presentation days. If you believe you have an allowed absence based on the CSUB Excused Absence policy, you must email the instructor as soon as possible to see if your absence qualifies as an excused absence.

Grading component is 100% individual effort.

Final Exam
There is no final exam for this class. Your end of term presentation and project progress report takes the place of the final exam.

Most end-of-term presentations will occur on the Study Day, Wednesday December 9, 2020, during our normal class meeting time. If you are unavailable on Study Day, a second end-of-term presentation time slot will be set up during our normal class time on Evaluation Day, Thursday December 17, 2020.

Notify the instructor no later than Friday December 4th if you have a conflict with both of these times, but preferably sooner so we can find an alternative time that works for everyone in your team.

Prepared By
Melissa Danforth on August 16, 2020
Approval
Effective Fall 2020