Syllabus
- Instructors
Dr. Wayne Dyksen
Professor of Computer Science and Engineering
3149 Engineering
(517) 353-5573
dyksen@msu.eduDr. James Mariani
Professor of Instruction
3145 Engineering
(517) 353-6751
mariani4@msu.edu - Teaching Assistants
Luke Sperling
Graduate Teaching AssistantRoom 3322 Engineering
(517) 353-8734
sperli14@msu.edu
Griffin Klevering
Graduate Teaching AssistantRoom 3322 Engineering
(517) 353-8734
kleveri2@msu.edu
Jared Singh Sekhon
Graduate Teaching AssistantRoom 3322 Engineering
(517) 353-8734
singhsek@msu.edu
- Meeting Times & Places
Lecture: Tuesday, Thursday, 3:00 p.m. – 4:20 p.m. Eastern Time All-Hands, In Person: 1345 Engineering Split-Hands, Luke’s Teams: 1257 Anthony Hall Split-Hands, Griffin’s Teams: 2400 Engineering Split-Hands, Jared’s Teams: 1345 Engineering All-Hands, Online: Microsoft Teams General Channel
Lab: TBA, 3340 Engineering, 3352 Engineering and 3358 Engineering
- Web Site
- Office Hours
In lieu of fixed, limited office hours, students can contact and interact with the instructors almost any time in a variety of ways including all of the following.
- The instructors are in their offices most business hours on most weekdays. Students are welcome to stop by any time.
- Students can email the instructors, who do email during most waking hours every day of the week and who respond as quickly as possible.
- Students can message the instructors using Microsoft Teams. The instructors have the Microsoft Teams app installed on their mobile phones, which means that students can text the instructors on their mobile phones.
- Students can meet with the instructors virtually using Microsoft Teams.
- Students can schedule a virtual or in-person meeting with the instructors via email.
- Catalog Description
Credits: 4 (2 – 4), Lecture/Recitation/Discussion Hours: 2, Lab Hours: 4.
Prerequisites: In order to enroll in CSE498, a student must have successfully completed each of the following in advance:
- CSE 300,
- CSE 325,
- CSE 335,
- at least two CSE technical 400-level courses chosen from CSE 402, CSE 404, CSE 410, CSE 415, CSE 420, CSE 422, CSE 425, CSE 431, CSE 434, CSE 435, CSE 440, CSE 450, CSE 460, CSE 471, CSE 472, CSE 476, CSE 477, CSE 480 or CSE 482,
- and a Tier I Writing Requirement (WRA 101 or WRA 195H).
Restrictions: Open only to students in the Computer Science Major or in the Lyman Briggs Computer Science Coordinate Major.
Description: Development of a comprehensive software and/or hardware solution to a problem in a team setting with emphasis on working with a project sponsor. Participation in a design cycle including specification, design, implementation, testing, maintenance, documentation. issues of professionalism, ethics, and communication.
- Prerequisites
In order to be enrolled in CSE498, a student must have successfully completed the prerequisites listed in the section titled Catalog Description. These requirements are prerequisites, which means that they must be completed successfully, in advance of the semester in which a student is enrolled in CSE498.
If a student has not met these prerequisites, they are disenrolled from CSE498 unless they have specific permission to enroll from one of the course instructors.
- Course Materials
There are no required or recommended textbooks, software or course packets to be purchased for this course. Teams are provided with any and all software and hardware required to complete their project.
- Scheduled Lab Times
There are no formal lab sessions. However, students are required to meet weekly as a team with their teaching assistant, with their project sponsor, and with their other team members.
CSE498 is a four-credit course. Two of the credit hours correspond to the two weekly class meetings. The other two credit hours correspond to the weekly non-class meetings in lieu of a scheduled lab.
- Including But Not Limited To
Throughout this syllabus, wherever a list of items begins with the word “including,” that word “including” implies the entirety of the phrase “including but not limited to.”
- Use of Eastern Time (ET)
Unless indicated otherwise, all times specified are Eastern Time (ET), either Eastern Standard Time (EST) or Eastern Daylight Time (EDT), depending on the time of year.
These times include meeting times and submission deadline times.
- Course Objectives
One objective of this course is to give students a professional experience like that which they will encounter in their first position after graduation. Hence, we run this course as business-like as possible. We view each team as a small company engaged by a customer to deliver a significant software system on time and on budget.
Other course objectives for CSE498 include the following:
- design, develop, debug, document and deliver a complete software system,
- gather system requirements from a customer,
- become proficient with software development tools and environments,
- build and administer computer systems,
- work effectively in a team environment,
- develop written and oral communication skills,
- consider issues of professionalism and ethics,
- integrate knowledge and skills from other computer science courses, and
- transition from being students to professionals.
- Weekly In-Person Meetings
All of our meetings will be held in person.
Students are required to attend several weekly meetings in person including but not limited to
- two class meetings,
- a triage meeting, which is a team meeting with the team’s teaching assistant,
- team meetings with the team’s project sponsors who may be remote, and
- one or more meetings with the team members.
We coordinate with students to make reasonable accommodations for their weekly class schedules. However, students must be available for all weekly meetings including the non-class meetings. We do not make accommodations for students who are working an unreasonable amount of hours at a job such as a half-time or more internship or a full-time position. Students are strongly discouraged from working an unreasonable amount of hours at a job during the semester.
As a contingency, we have standing plans to pivot to meet online if necessary. Some of the language below relates to those plans. However, that language will only be relevant if and when we were to pivot to meeting online.
- Meeting Formats
Our group meetings include lectures, team status reports, team formal presentations, viewing project videos, and possible guest speakers.
For some of our meetings, we meet as one single group, called “all-hands” meetings. For some meetings, we split up into three sections, called “split-hands” meetings. These three sections are based on a team’s teaching assistant. In particular, we meet in split-hands meetings on days when teams give team presentations throughout the semester and when we watch project videos during the last week of the semester.
While most of our meetings are held in person, some of our meetings may be held online.
All-hands in-person meetings are held in 1345 Engineering. Split-hands in-person meetings are held in 1257 Anthony Hall, 2400 Engineering, and 1345 Engineering.
Online meetings are held using Microsoft Teams. All-hands online meetings are held using our Microsoft Teams General Channel. Split-hands online meetings are held using three Microsoft Teams Channels, one for each teaching assistant.
Students must attend all in-person meetings in person.
- Meeting Environment
To provide students with a professional experience, our meetings are conducted in a business-like environment.
While the dress code is normally casual, everyone is expected to look professional. Hence, hats, hoods (of coats or sweatshirts or hoodies) and coats may not be worn during our meetings.
As an exception, on the days when teams are making formal presentations, the dress code for the presenting teams is business casual.
For more information about professional dress expectations, google “dress code casual,” “dress code business casual,” and “dress code business.”
As with most business meetings, eating during our meetings is not allowed.
The use of laptops or any mobile devices during our all-hands meetings is prohibited except by a presenting team member while giving presentations and demonstrations. Laptops and mobile devices must be silenced and stowed away, out of view and out of reach.
Students who violate our Meeting Environment requirements may be marked absent.
- Communications
Throughout the semester, we use a variety of means to communicate with students including meetings, email, and Microsoft Teams messaging. In addition to attending all meetings, students are required to check and read their email and Microsoft Teams messages regularly and carefully.
Missing a meeting, or missing or not reading an email or a Microsoft Teams message is not accepted as an excuse for anything.
Students should install and configure an email client and Microsoft Teams on their mobile devices to ensure that they are able to monitor email and messages remotely.
Students are required to read every communication regularly and completely.
All communications from students are expected to be professional and respectful including communications with instructors, other students, and project sponsors. Communications include conversation, email, texts, and messages. Unacceptable forms of communication include anything that is disrespectful, offensive, derogatory, or rude. The instructors are required to report complaints about communication even if the complainant requests otherwise.
- Team Projects
One goal of this course is to give students a significant experience working on a team. Students may be working with people whom they did not know prior to the course and whose experiences and abilities may be very different from theirs. The challenge is to take a disparate group of individuals and form a real team. Each team may organize itself as it sees fit.
Each student team designs, develops, debugs, documents and delivers a complete software system for a project sponsor. The sponsor organizations range in type from industry to non-profits to academic and in size from small startups to large global corporations.
Project sponsor contacts are busy professionals. Their computing experiences may vary widely from basic software users to experienced software developers. With respect to CSE498, they are volunteers who are doing students and teams a favor. Students must work with their sponsors in a respectful manner. If teams experience any problems with their project sponsors, they should inform the course instructors as soon as possible.
Each team selects one team member who is the main contact for the project sponsor.
For most of a student’s academic experiences, they have been handed a complete system architecture with detailed specifications and asked to develop it. For this course, learning the underlying business processes, gathering the system requirements, and architecting the system are sometimes a difficult challenge, particularly when working with users who are not sure about what software technologies they need to solve their problem.
Each project must be the right level of difficulty. On the one hand, it must be difficult enough to warrant four credits in a computer science major from one of the top programs in the country, MSU. On the other, it must be simple enough to be completed and delivered in one semester. What constitutes the right level of difficulty is something that each team works out with their project sponsor and with the instructors. As a team scopes their project, they should do so with levels of deliverables where the first level is clearly achievable, the second is likely achievable and the third is possibly achievable.
Each team must deliver a completed project to their project sponsor on time. Period. There are no exceptions. No excuses are considered or accepted. Thus, it is in a team’s best interest to create a project plan that is acceptable to their sponsor and to the instructors. The instructors have the final say as to the required features of a project and what constitutes an acceptable project. If the instructors require features that the project sponsor does not require or no longer requires, those features must still be completed even if they are not included as part of the final deliverables to the sponsor.
Completed software and systems are submitted to the project sponsors at the end of the semester.
- Project Management, Major Milestones and Deliverables
Teams are required to manage their own project including both hardware and software systems.
Teams must use MSU’s GitLab to manage their project computer code. Course instructors must have complete access to every team’s repository.
If an external project sponsor would like access to a team’s repository, we are able to provide it working with MSU’s Information Technology Services. To request such access, contact Professor Mariani.
Projects are divided up into milestones with specific deliverables due on specific dates. While the completed project at the end of the semester is one very important milestone, all of the major milestones are considered important. Meeting the milestones factors significantly into the final course grade.
For a description of major milestones with due dates see Major Milestones.
Project deliverables include the following:
- Project Plan Presentation & Document,
- Alpha Presentation
- Beta Presentation,
- Project Video, and
- Project Software & Documentation.
- The Capstone Experience Labs Sponsored By Amazon
The labs include rooms 3340 Engineering, 3352 Engineering and 3358 Engineering.
The Capstone Experience Labs have a key code, which we give to everyone.
Each team is assigned two iMacs and a rack-mounted server if required. In addition to Apple‘s macOS, these iMacs have the capacity to run virtual machines with Windows or Linux using VMware Fusion. These iMacs can be used for both software development and as servers.
Each team is completely responsible for their computers, including building them, maintaining them, securing them (both internally and externally), and backing them up.
All of the labs include hand sanitizer dispensers and sanitizing wipes, which should be used to sanitize keyboards, mice and table surfaces. Team members are required to sanitize their keyboards, mice and table surfaces before and after each use.
In addition to their two lab iMacs, teams may borrow a variety of devices including iOS and Android phones and tablets for use for the Capstone course during the semester. Teams should request such devices from their teaching assistant.
Students should not personalize any of the lab iMacs and/or any of the borrowed iOS and/or Android devices by associating the devices with their personal Apple and/or Google accounts. If a student does so, the devices are locked by the student in such a way that the instructors are not able to reset the devices at the end of the semester.
As a result, a student who personalizes a device must disassociate that device from their personal account by the end of the semester and/or before returning borrowed devices.
For Apple devices, the devices must be removed from a student’s personal list of Apple “Find My” devices. For Android devices, the devices must be removed from a student’s personal list of Google “Find My Device” devices and factory reset.
If a student fails to disassociate a personalized device from their personal account, a grade of incomplete will be assigned until the student does so. In the case that a grade has already been assigned before the instructors discover that a student has failed to disassociate a personalized device from their personal account, the student’s grade will be changed to an incomplete until the student does so.
The lab also includes a water cooler with bottled water, a refrigerator, a microwave and a coffee maker. Students are welcome to use all three at their own risk. These are shared resources. Please keep these appliances along with the entire lab clean.
Note that students may not use the Capstone lab space for joining or attending online meetings.
- Final Course Grades
A student’s final course grade is based both on a team’s performance and a student’s individual performance. What follows is a list of grading categories along with the point distribution.
Team Grade (70%) Project Plan Presentation & Document 10 Alpha Presentation 10 Beta Presentation 10 Project Video 10 Project Software & Documentation 30 Team Total 70 Individual Grade (30%) Technical Contribution 10 Team Contribution 10 Team Evaluation Form 5 Meeting Attendance, Preparation and Participation (MAPP) 5 Individual Total 30 Every student must make significant technical contributions to their team’s project, including significant software contributions. Significant software contributions do not include doing initial research, code that is committed by someone else, code that does not work, code that is not included in the final version of the project, straightforward lines of HTML and/or CSS, or lines of code generated by a tool.
As stated above, teams must use MSU’s GitLab to manage their project computer code. When a student commits code to their team’s repository, the student must use their own repository account and only their own account. Students receive credit only for the lines of code committed by them using their own account.
If students engage in so-called pair programming, they must decide when committing the code who gets credit for which lines of code, keeping in mind that students receive credit only for the lines of code committed by them using their own account.
While the number of lines of computer code and the number of significant GitLab commits are not the only measures of the significance of a student’s technical contributions to team, they are important factors, which are used by the instructors.
Even though there is no exact formula for the number of lines of code, each team member is expected to write approximately the same number of lines of code. As a general rule, if a team consisting of N members writes a total of M lines of code, then each team member should write approximately 0.80×M÷N or more lines of code.