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)
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:
- First Day: Attendance required for class overview.
- Presentation Days: Attendance required. Presentation days are noted on
the class calendar on Moodle.
- Team Check-Ins: All team members are required to attend team check-ins
with the instructor. Teams will individually schedule check-in times
with the instructor. Teams should select a time where everyone on the
team is available.
- Individual Work and Team Work: Self-scheduled individual work and team
work is also expected for this course. Students should plan to spend
about 6 to 8 hours a week (on average) working on their Senior Project
and coordinating with their team.
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.
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.
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.
Completion of multiple upper-division CMPS courses
2 semester units. 2 units lecture (100 minutes).
Required for CS.
None.
None.
All tenured and tenure-track Computer Science faculty members.
AY 2020/21 Coordinators are Albert Cruz and Melissa Danforth.
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:
- Work as teams on a team-chosen design problem, which will result in a
substantial software project at the end of the two-course sequence.
- Choose a problem, analyze the problem, apply knowledge of computer science
areas, and propose a solution to the problem.
- Plan the project implementation, including the timeline, individual
responsibilities, milestones of the project, and use cases / user stories,
as part of the project proposal document.
- Present the "project pitch" to the class describing their chosen problem
and project.
- Meet regularly with the instructor for team check-ins to discuss progress
on the project.
- Analyze the possible solutions, including a discussion of the analysis
during team check-ins with the instructor and a written analysis in the
end-of-term progress report.
- Begin implementation of the project. Teams work on their projects and
discuss their projects with the instructor and class.
- Meet regularly outside of class with their team to work on their project.
Also regularly complete individual work on the project and keep the team
updated on that individual work at the team meetings.
- Present their implementation difficulties/problems, solutions, and
experiences to the class, and listen for suggestions from others in the
class, at the end-of-term progress presentation.
Specific requirements for this course are:
- Orally present to the class twice for the "team pitch" and end-of-term
progress presentation. Every member of the team is expected to present
during these times.
- Write a project proposal that describes the problem, describes the team's
analysis of the problem, analyzes possible solutions for the problem,
provides use cases / user stories, outlines the basic features of the
project, and plans for the project implementation over both terms
of the course. Teams should verbally discuss their project ideas at
team check-ins with the instructor prior to the proposal due date. The
instructor may require a revision of the proposal if the chosen project
is not at the expected difficulty for a Senior Project or if components
of the proposal do not meet expectactions for Senior Project.
- Maintain a git repository on Github or on Odin that is accessible to the
instructor with the project code, documentation, and research. Team
members are expected to regularly contribute actionable work to the
repository. In CMPS 4910, most of the work is expected to be research,
proof-of-concept code, test cases, and other preliminary work necessary
for successful implementation of the project in CMPS 4928.
- Write a project progress report at the end of the term that states
what the team has done to date, describes any changes the team has made to
the project features and implementation plan, and provides justification
for those changes. The end-of-term report grade will also contain the
instructor's analysis of work submitted to the project's git repository
by each team member.
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.
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.
-
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.
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:
- Submitting junk work to give the appearance of effort. Work submitted
to the team git repository should be relevant to the code, research,
or documentation components of the project. Example: Submitting a
substantial amount to the code base that does not contribute to a
project feature.
- Submitting an iteration or copy of public code as your own work.
As noted above, public code must be approved by the instructor and
appropriately documented and cited. Example: Most of your contribution
to your group's project is a modification of an online tutorial on
web app games.
- Most of your code base has been reused from an assignment or project
from another class. Example: Iterating your CMPS 3350, 3420, or 3680
project.
- Copying, paraphrasing, or quoting text in your reports or
documentation without proper citation. If you need assistance with
proper citations, the
Writing Resource Center
has resources available to help you. Example: Cutting and pasting
a guide from a manufacturer into your software requirements.
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/
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/
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.
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.
Project Proposal | 20% (75% individual contribution, 25% team) |
Pitch Presentation | 20% (25% individual contribution, 75% team) |
End-of-Term Progress Report | 20% (75% individual contribution, 25% team) |
End-of-Term Presentation | 20% (25% individual contribution, 75% team) |
Teamwork | 10% (50% individual teamwork skills, 50% team cohessiveness) |
Participation | 10% (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.
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:
- 25% weight: Executive Summary and Plan (team effort)
- 75% weight: Detailed Individual Contributions and Use Cases /
User Stories (individual effort)
See the Moodle assignment for more details.
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:
- 75% weight: Prepared slides for the presentation (team effort)
- 25% weight: Individual oral communication skills from the modified
oral communication rubric posted on Moodle (modified for virtual
delivery)
See the Moodle assignment for more details.
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:
- 25% weight: Status report and changes made, with justification (team
effort)
- 25% weight: A written summary by each team member of their individual
accomplishments during the term. Hint: Regularly commit a text file or
report of what you've done to git to make it easier to write this
summary. (individual effort)
- 50% weight: Instructor evaluation of each team member's contributions
to the git repository based on the quality of work and the level of
effort. Put the project feature in the commit message to git so your
effort is easily traceable to the proposal (individual effort)
See the Moodle assignment for more details.
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:
- 75% weight: Prepared slides for the presentation (team effort)
- 25% weight: Individual oral communication skills from the modified
oral communication rubric posted on Moodle (modified for virtual
delivery)
See the Moodle assignment for more details.
Teams are expected to function as a cohessive unit on the project. Teamwork
skills that the department expects at this level are:
- The ability to fulfill team duties and share in the work of the
team.
- The ability to listen and communicate with other team members.
- The ability to meet deadlines to achieve project goals.
Grading Components:
- 50% weight: Individual teamwork skills on the above metrics as
determined by the instructor observations of team dynamics during
team check-ins and presentations, and by input from the peer
evaluation of team members. (individual effort)
- 50% weight: Team cohessiveness and functionality as a whole (team
effort)
See the Moodle assignment for more details.
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.
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.
Melissa Danforth on August 16, 2020
Effective Fall 2020