Subscribe via RSS Feed

Coursework

Learning Suite

Almost all the assignments, as well as the midterm, will be submitted via BYU Learning Suite. In cases where you are required to carry something out in class (demos and video), or where you must submit an actual document (deliverables and team status reports), the actual grading will be done by either the TA or Professor Webster.

Attendance (8%)

Class participation is a significant part of the experience of this course. The software engineering field is broad and there are many topics you should be exposed to, but there isn’t sufficient time in a single semester to embed all of the material into structured projects and labs. Lectures are therefore critical to gain exposure to key concepts you will need as you head off to begin your professional careers.

CS 428 is currently (Fall 2023 scheduled to be an in-classroom class. As such, attendance will be taken each week. However, for situations where health and other concerns may prevent you from attending, the class will also be available via the Online tab in Learning Suite. If you are unable to do that, the class video will likewise be available via LS/Online; you can view it there and then let me or the TA know, and you will receive attendance credit.

Attendance is worth 8% of the total course grade. For each unexcused absence, you will lose 2%, up to the maximum penalty of 8%. Exceptions need to be approved in advance, except in case of emergency.

Podcast Lectures (5%)

In order to free up class time for team meetings and consulting, we provide video podcasts for many of the lectures. You are required to do the readings for these podcasts and then watch the podcasts on your own (or in small groups).

You must complete at least one podcast lecture every other week, for a total of five (5) podcasts. You may front load by watching podcasts early and then skipping later, but you cannot do the opposite by skipping podcast lectures early and then making them up later.

You must report your completion of podcasts and podcast readings by Saturday at midnight for the given week via the appropriate Learning Suite exam. In general, no credit will be given for late reporting.

Readings (25%)

We are reading three books this semester:

  • The Mythical Man-Month (Anniversary Edition) by Frederick Brooks, Jr.
  • Peopleware (3rd ed) by Tom DeMarco and Timothy Lister
  • Facts and Fallacies of Software Engineering by Robert Glass.

Each of these books represents 5% of your grade (15% altogether). You are required to obtain your own copies of these three books.

You are required to read an appendix — “The Five Orders of Ignorance” — from Philip Armour’s book, The Laws of Software Process. An electronic (PDF) copy in available on the Readings and Podcasts page. This represents 1% of your grade.

You are also required to read another appending — “Heuristics for System-Level Architecting — from Meier & Rechtin’s book, The Art of Systems Architecting. An electronic (PDF) copy is available on the Readings and Podcasts page. This represents 2% of your grade.

In addition there are six (6) sets of on-line readings, each set comprising one or more blog posts or papers written (or, in one case, co-authored) by me. These are labelled “Webster #1” through “Webster #6”. As with the readings above, these are all scheduled before the midterm and will be useful (and citeable) on the midterm. These each represent 1% of your grade, except for Webster #6, which is 2% of your grade.

A seventh set of readings (Webster #7) have been made optional and for extra credit (1%).

The above readings are broken down and spread across the schedule. A given section is due before class on the day it appears on the schedule. Independent of the sometimes unpredictable in-class lecture pace, reading due dates are fixed according to the schedule.

Reading completion is reported via Learning Suite exam on the due date. Readings are graded on a percentage of completion basis.

You may read additional books related to Software Engineering for extra credit of 2% each. All books in this Book List are pre-approved. Extra credit books not on the list must be approved in advance by the instructor. To get credit for a given book, you need to schedule an appointment with the instructor and discuss it with him. You may only receive 8% total extra credit from reading.

Midterm (25%)

The midterm exam is the major exam of CS 428 and is worth 25% of your grade. It will be open-note, open-book, and open-device; you will take it online via LearningSuite on Monday, April 1, 2024. You will have from 12:05 am to 11:55 pm on that Monday to take it; however, once you start, you will have only three (3) hours to complete the exam.

Here is an example of what questions on the midterm exam will look like:

You have been working for BigCorp for a year or so, mostly doing bugs fixes and feature ad-ons for an existing in-house software system, ROVER. BigCorp now would like to replace ROVER with a new, rewritten-from-scratch system (code name OTTO), which will be hosted on AWS, a cloud service that BigCorp has not used previously. They ask you for your opinion as to both the potential risks of the OTTO project, as well as any recommendations as to how to increase the likelihood of success. At this point, there are no schedule or budget constraints.

For five (5) points each, list at least two (2) major risk factors that you see with this project, as well as three (3) recommendations for how to best approach the project, with at least one citation for each.

Citations will be in the form of “See Brooks, Ch 2, esp. pp. 20-21.”, “See Peopleware, Ch 7”, “See Webster, ‘The Arc of Engineering'”. As such, to do well on the midterm, you will have to have actually done the readings and know them well enough (and/or have good enough notes) to be able to come up with the answers and citations quickly.

Given how late the midterm comes in the semester, there is no final exam.

IMPORTANT! No student will be given a passing grade in this course who does not achieve a score of at least 60% on the midterm.

Project (37% total)

Class as Startup Companies

We will organize the class into a small set of independent software development organizations (complete with roles and hierarchy), each tackling a separate kickstarter project. Think of yourselves as a startup company (with four months of operating investment) that needs to do something great (e.g., produce a minimal viable product) by the end of the semester.

All the project will be run on a public wiki on GitHub (https://github.com/cs428TAs/w2023/wiki/Home-for-CS-428-Winter-2023-Projects). Note that all your deliverables and status reports must be publicly visible on this wiki at all times; part of the goal of this class is visibility of the development project. The only except is that if you want to keep your team’s source code in a private repository, you can.

Project Status Reports and Billable Hours (10%)

Each project will be required to submit a weekly status report by midnight Saturday, starting on February 3rd. Here is the Excel template you must use; it looks like this:

Obviously, there won’t be much to report the first few weeks, but this should become quite critical as projects ramp up. Our class TA will review these and talk with the team project manager about them; I will also look at some or all of these on a regular basis and may display them in class (up on the screen), especially early on. Note that each status report counts as 1% of your overall grade, so you as a team want to assign someone very reliable to ensure these are filled out and posted on time.

One of the most important features here are the team member billable hours in the lower left corner. Each team member is responsible for getting her or his billable hours — that is, time during the week spent working on the project, in team meetings, in team discussions, etc. — to the person in charge of the status report on time. Should any team member fail to do so, the person putting together the report should put “N/R” (“Not reported”) in the Hours column, and that delinquent team member will not get credit for the status report.

Project Organization and Deliverables (23%)

Because we have no class on Martin Luther King Day (January 15), you will need to spend that week proposing at least one project on the class wiki, and then voting on at least 3 projects that you’d be interested in working on.

By January 13 (midnight Saturday), post at least one project proposal on the class wiki.

By January 22 (3 pm, Monday — that is, before class), vote on at least three (3) project proposals (again, on the class wiki).

By January 27 (midnight, Saturday; the same with each of these), each team should update its project page on the wiki to list all the assigned team members (Deliverable #1) and any additional details desired.

By February 3 (midnight, Saturday), each team should create an organization chart (Deliverable #2) with initial assignment of individual roles within the team. Every team must have a Project Manager and a Chief Architect. Other possible roles include Development Manager, Test Manager, Architect, Marketing Manager, Development Leads, Testing Leads, Developers, Testers.  This and all subsequent team deliverables should be available via the team’s public project page on the wiki.

By February 10 (midnight, Saturday), each team should have created and posted its project requirements document (Deliverable #3).

By February 17 (midnight, Saturday), each team should have created and posted a PERT chart and a Gantt chart (Deliverable #4) shows the estimated work schedule and critical path.

By February 24 (midnight, Saturday) each team should have created and posted its architecture and design documents (Deliverable #5) for its project.

By March 2 (midnight, Saturday), each team should have created and posted its test plan document (Deliverable #6) for its project.

On Monday, March 4, each team will need to do an initial prototype demonstration (Deliverable #7) of its project in class.

On Monday, March 25, each team will need to do a work-in-progress demonstration (Deliverable #8) of its project.

On Monday, April 15, each team will need to do a a final demo of its product (Deliverable #9).

Individual Deliverables (4%)

There are two project deliverables that must be done by every individual student, each worth 1% of your grade.

By Saturday, March 16 (midnight), each student should conduct a code review of another team member’s source code

By Wednesday, April 17 (midnight), each student should take the “project/class post-mortem” exam.