CS411W, Summer 2021

CS411W Outline

Summer 2021

Upcoming Events
1 Online Orientation and Course Introductions 05/17/2021 - 05/19/2021

Overview

This Module will serve as a review of CS 410 and an introduction to CS 411W. We will discuss the various, communication tools, hardware tools, and software tools for this semester.

Objectives

At the end of this module, students will be able to:

  1. Explain the course goals.
  2. Discern team member skills.
  3. Identify team development needs.
  4. Modify existing CS 410 documentation based on lessons learned.
  5. Investigate communication and collaboration tools and platforms.
  6. Establish mechanisms of communication and collaboration.
  7. Write a descriptive paper (Lab 1) summarizing the real world product and planned prototype development.

Relevance

The business and research communities provide require online communication and collaboration using asynchronous and synchronous tools. Students will function as effective members of geographically separated team by contributing to the development of a Docker based prototype on a CS Department provided virtual machine (VM).

Activities
  1. Refer to Week 01 Recitation Notes
  2. asst Do assignment: Complete the office hours survey

Getting Started

  1. lecture Read lecture notes: Syllabus
  2. lecture Read lecture notes: Introduction & Overview
  3. lecture Read lecture notes: Discussion Board Guidance
  4. asst Do assignment: Personal Introduction Post Due: 05/19/2021
  5. video Course Introduction (Fall 2020)

The Fun Part of Module 1 - Prototype Foundation

  1. asst Do assignment: Development Resource Request Due: 05/23/2021
  2. asst Do assignment: Initial Website Updates Due: 05/23/2021
  3. asst Do assignment: Group Google Drive Folder Due: 05/23/2021
  4. asst Do assignment: Git Repo Due: 05/23/2021

Prototype Progress

  1. asst Do assignment: Weekly Development Report

General Lab Requirements & Expectations

  1. lecture Read lecture notes: Incidental Skills
  2. lecture Read lecture notes: Review Lab Formatting Rules
  3. lecture Read lecture notes: Review Common Grammar & Style Mistakes
  4. lecture Read lecture notes: Lab Rewrites & Grading

Lab 1

  1. Lab 1 Revisited (Instructor Discussion)
  2. lecture Read lecture notes: Example with Edits
  3. asst Do assignment: Review & Update the Collaborative Outline Due: 05/20/2021
2 Prototype Foundations 05/20/2021 - 06/09/2021

Overview

The work will begin on the prototype development environment. Teams must configure their virtual machines to support development. Development milestones will be revisited with a focus on defining subtasks for each milestone.

Objectives

At the end of this module, students will be able to:

  1. Identify and configure prototype development tools.
  2. Leverage domain appropriate collaboration & communication tools.
  3. Identify high level tasks with prioritization of CS 410 user stories
  4. Delegate and assign development tasks.
  5. Prepare a Gantt chart storyboard of milestones for prototype development.
  6. Complete Lab 1.

Relevance

We will leverage agile development to design and build a prototype. This is based around user stories that may change (usually do) along the way. The goal of this module is to confirm mentor acceptance of the development approach.

Lab 1 is representative of the type of descriptive documents students will be required to create in the workforce.

Activities
  1. lecture Read lecture notes: Development Overview
  2. lecture Read lecture notes: What is Collaboration?
  3. lecture Read lecture notes: Software Development Process Models

Git

  1. lecture Read lecture notes: Introduction to Git
  2. lecture Read lecture notes: CS 350 - Introduction to Git

Prototype Milestones & Design

  1. lecture Read lecture notes: Milestones, WBS, and Product Development
  2. asst Do assignment: Select Story & Issue Tracker 05/30/2021
  3. lecture Read lecture notes: From Design Elements to Milestones
  4. asst Do assignment: Prototype Milestones & User Stories

Prototype Progress & Demo

  1. asst Do assignment: Revisit Prototype Design Due: 05/27/2021
  2. asst Do assignment: Prototype Demonstration I (Discussion) 06/01/2021 - 06/03/2021

Prototype Structure

  1. lecture Read lecture notes: Prototype Structure - Overview

Lab 1

  1. asst Do assignment: Finish and Submit Lab 1 Draft (Update Section 1 to 3) Due: 06/07/2021
  2. asst Do assignment: Finish and Submit Lab 1 Draft (Section 4) Due: 06/11/2021
  3. asst Do assignment: Lab 1 - Descriptive Paper Due: 06/17/2021

Recitation Notes

  1. Refer to Week 02 Recitation Notes
  2. Refer to Week 03 Recitation Notes
  3. Refer to Week 04 Recitation Notes
3 Detailed Design 06/10/2021 - 06/27/2021

Overview

The goal of Module 3 is to prepare a detailed list of tasks necessary to complete each prototype milestone. The tasks will have associated timelines and resources. This will allow for the creation of a weekly “to do” list for the team and each individual of the team. Lab 2 describes and defines the specifications and requirements. The mentors should be actively consulted during this design process.

Objectives

At the end of this module, students will be able to:

  1. Identify sub-tasks for each milestone.
  2. Record and track sub-tasks with a Gantt chart, task board, story board, or issue tracker.
  3. Identify tasks that can begin immediately.
  4. Create a list of design/coding elements to be completed each week.
  5. Write in the style required for specification and requirement documents in the workforce.

Relevance

An absolutely critical component of software design is the writing of specifications and requirements. Also critical is the ability to provide software code based upon provided documents.

Activities

Development Schedule

  1. lecture Read lecture notes: Milestone Tracking
  2. asst Do assignment: Weekly Development Report0Due: 06/17/2021

Team Evaluation

  1. asst Do assignment: Group Evaluation I Due: 06/10/2021

Specifications & Requirements

  1. lecture Read lecture notes: Specifications & Requirements
  2. lecture Read lecture notes: Example Requirements from Previous Semesters
  3. asst Do assignment: Write A Requirement Due: 06/21/2021
  4. asst Do assignment: Revise requirement based on feedback Due: 06/28/2021

Lab 2

  1. lecture Read lecture notes: Lab 2 - Template
  2. lecture Read lecture notes: Lab 2 Examples & Guidance
  3. asst Do assignment: Lab 2 Outline
  4. asst Do assignment: Lab 2 - Requirements Due: 07/11/2021

Supplemental References

  1. text IEEE RFC 2119 - Requirement Levels
  2. video Bob Cherinka - How Computer Science Can Help You Solve Problems for a Safer World
  3. lecture Read lecture notes: CS 350 - Eliciting Requirements
  4. lecture Read lecture notes: CS 350 - Writing Requirements

Recitation Notes

  1. Refer to Week 05 Recitation Notes
  2. Refer to Week 06 Recitation Notes
  3. Refer to Week 07 Recitation Notes
4 Testing 06/28/2021 - 07/07/2021

Overview

Testing is notoriously given the least amount of time and attention in software development. You should recall Test-Driven Development (TDD) from your previous coursework. We are currently implementing prototype functionality, yet need to simultaneously prepare test cases for our requirements. Significant progress should be made on software development over the next four weeks. Each team will collaborate on an outline of Lab 3 (i.e., the Test Plan).

Objectives

At the end of this module, students will be able to:

  1. Maintain a Gantt chart, story board, or issue tracker of software development progress.
  2. Prepare industry standard test cases that verify and validate the requirements from Lab 2:
    1. unit tests
    2. integrations tests
    3. system tests
    4. acceptance tests
  3. Collaborate on the authoring of test cases and traceability matrices.

Relevance

Software development in industry is heavily dependent upon adherence to requirements. The only way to guarantee that the correct software solution to a problem has been achieved is through verification and validation via testing. If the test cases are not written to properly assess the development, time, money and credibility are lost. Possibly resulting in job loss and business failure. Students will experience the detailed process of this critical V & V element using their prototypes as the test bed.

Activities
  1. lecture Read lecture notes: Review CS 350 - Testing
  2. lecture Read lecture notes: Review CS 350 - Verification & Validation
  3. lecture Read lecture notes: Review CS 350 - System Testing
  4. lecture Read lecture notes: Implementation and Unit Tests

  5. lecture Read lecture notes: Integration & Systems Tests
  6. asst Do assignment: Write a Test Case Due: 07/08/2021
  7. asst Do assignment: Revise test case based on feedback Due: 07/12/2021

Lab 3

  1. lecture Read lecture notes: Getting Started & Examples
  2. lecture Read lecture notes: Example
  3. asst Do assignment: Lab 3 - Prototype Test Plan Due: 07/24/2021

Lab 3 Examples

  1. text 2020 Spring - Punctual
  2. text 2020 Spring - The Modern Dog
  3. text 2019 Fall - University Friend Finder
  4. text 2019 Fall - Tutor Dash
  5. text 2019 Fall - SeizSmart

Team Evaluation

  1. asst Do assignment: Group Evaluation II Due: 07/08/2021

Recitation Notes

  1. Refer to Week 08 Recitation Notes
  2. Refer to Week 09 Recitation Notes
  3. Refer to Week 10 Recitation Notes
  4. Refer to Week 11 Recitation Notes
5 Customer Interaction 07/08/2021 - 08/01/2021

Overview

The primary objective of this module is to practice agile (potentially scrum) development of the prototype with frequent instructor and mentor interaction. Weekly progress examinations will be conducted, and feedback will be provided. Adherence to requirements and development toward correct validation and verification is expected.

Objectives

At the end of this module, students will be able to:

  1. Collaboratively continue successful prototype development employing all necessary software tools.
  2. Collaboratively prepare a User Manual developed for the prototype.
  3. Interpret the writing style necessary for user manuals.
  4. Demonstrate correct adherence to user manual authoring standards.
  5. Effectively demonstrate the prototype to the instructor and mentor.

Relevance

The ability to effectively communicate the purpose of user interfaces is a part of software engineering. The ability to take the reader of a user manual step-by-step through the usage of the screen is a skillset needed in industry. If a user cannot understand the interface, they may not utilize the product. The process of interim reviews of software development requires unique skillsets:

  1. A developer must be able to professionally take criticism.
  2. A developer must be able to ask questions of the customer to deliver a product that solves a problem correctly.
Activities
  1. asst Do assignment: Create the pRototype and User Manual

Lab 4

  1. lecture Read lecture notes: Writing a User Manual
  2. asst Do assignment: Lab 4 - User Manual Due: 07/30/2021

User Manual Examples

  1. text Tutor Dash (Team Gold Fall 2019)

References

  1. text Bookmark GitLab Markdown
  2. text Read Five Tips for Writing a User Manual

Team Evaluation

  1. asst Do assignment: Group Evaluation III

Recitation Notes

  1. Refer to Week 12 Recitation Notes
6 Lessons Learned 08/02/2021 - 08/07/2021

Overview

This module guides the student to successful completion of all written labs (re-writes). Demonstrations will be necessary to gain approval of their mentor, which is required by the end of the semester. The goal is to provide each student with an appreciation of industry’s expectations upon graduation with a degree in computer science.

Objectives

At the end of this module, students will be able to:

  1. Summarize their journey through their professional preparation for employment.
  2. Summarize the successes and challenges of developing professionally written technical documents typical of computer scientists.
  3. Summarize their successes and challenges of working on a team to design, develop, and deliver a large scale software product.
  4. Deliver a working product to their mentor.

Relevance

At the end of every software development process industry members must conduct Project Postmortem. The goal is to repeat the aspects that were great, and avoid those that cost them time and money. Keeping on top of customer expectations is critical in providing a useful product that correctly solves the prevalent problems that necessitated the need for a software solution.

Activities
  1. lecture Read lecture notes: Project Postmortems
  2. asst Do assignment: Product Delivery

Team Evaluation

  1. asst Do assignment: Group Evaluation (Final)

Recitation Notes

  1. Refer to Week 13 Recitation Notes
  2. Refer to Week 14 Recitation Notes
7 Semester Wrap Up 08/02/2021 - 08/07/2021

This Module is an end-of-semester wrap up. We will revisit selected topics from throughout the semester.

Activities
  1. asst Do assignment: Project Postmortem Report
  2. asst Do assignment: Final Prototype & Document Updates
8 Lab Rewrites

This section lists all Lab rewrite deadlines.

Activities
  1. asst Do assignment: Lab 1 v2 Due: 07/01/2021
9 Special Events and Dates
Activities

The ODU Academic Calendar lists all deadlines and important dates.

  1. Classes Start 05/17/2021

All times in this schedule are given in Eastern Time.

Symbol Key
lecture Read:
slides Slides :
event Event or important date
text Read
lab Do lab:
asst Assignment:
exam Take the
activity Do:
recitation In your recitation section:
construct Under construction: