Finals Week
Final Exam Question 1 Take Home
In your team's GitHub repository for StreamVideo, you will find an analysis of your team's work on the StreamVideo project in the file Report.md. Read over this report.
Then write an answer to the following:
What did you learn by performing the team project for StreamVideo, including refactorings, testing, and the overall process of issues, branches, and pull requests? What would you do differently if you had to do it all over again?
Submit your answer as a PDF to Brightspace. It must be at least 500 words long. The report is due by Fri, May 5 11:59:59 pm.
Week 15 Class 28 Thu Apr 27 Posted: Apr 27
Announcements
Class
Exercise 62: Team Use Case Diagram
As a team, create a Use Case Diagram of your Team Project (the App from the first part of the semester) using yuml.me. Try to include all of the Use Case relationships, include and extend.
Submit the text of the Use Case Diagram using this form. One entry per team.
Exercise 63: Individual Use Case Diagram
Submit a scan of a hand written use case diagram that is a version of your teams. Include at least 6 different Use Cases in the diagram.
Submit via Brightspace.
All exercises are due by 4:30 pm on Fri Apr 28
Week 15 Class 27 Tue Apr 25 Posted: Apr 25
Announcements
Class
Exercise 61: Team Meeting
Work as a team on your project.
There is nothing to submit to receive credit for this exercise.
The Final Exam is in our regular classroom Final Exam: May 2, 5:15 - 7:15 pm.
The first question on the test is a Take Home question. You will answer it online outside of class. I will post the question by Monday of Finals Week.
You are responsible for what we have covered since the Midterm:
The exam has various problem types, including short answers, definition, comparison, and application to a code example/scenario.
If I did not cover it in class, it is not on the exam.
Week 14 Class 26 Thu Apr 20 Posted: Apr 20
After Class
Special Announcement
Return to in-person classes on Thursday, Apr 20. See you in our regular classroom.
Class
Exercise 59: Team Meeting
Work as a team on your project.
There is nothing to submit to receive credit for this exercise.
Week 14 Class 25 Tue Apr 18 Posted: Apr 18
Special After Class
Return to in-person classes on Thursday, Apr 20. See you in our regular classroom.
Special Announcement
2023 CEPS Design Day on Tuesday, Apr 18 is cancelled, and UA switched to remote learning late Monday night.
In order to reserve time for a rescheduling of the 2023 CEPS Design Day, we will have class on Tuesday, Apr 18.
Class will be remote via Teams.
My Office Hours will remain the same as normal (1 - 2pm and 4:45 - 5:15pm) but will be via Teams.
Class
Exercise 57: Team Meeting
Work as a team on your project in the Breakout Rooms. There is one for each team.
There is nothing to submit to receive credit for this exercise, except to meet in the Breakout Room
Week 13 Class 24 Thu Apr 13 Posted: Apr 13
Announcements
The Computer Science presentations are from 2 - 4 pm, and I encourage you to attend.
This time period conflicts with the afternoon CPSC 421-020 OOP and CPSC 480 SE sections, so we will not have a class meeting on Tuesday, Apr 18.
Class
Contribute to the project. This can be:
For a team member to receive credit, contribute to the project, preferably during class time. If you cannot contribute to the project during class, then by the exercise due date.
Use the form above to describe what contribution you made and provide a link to the contribution in GitHub. You will not receive credit unless you fill out the form.
All exercises are due by 4:30 pm on Fri Apr 14
Week 13 Class 23 Tue Apr 11 Posted: Apr 11
Class
Contribute to the project. This can be:
For a team member to receive credit, contribute to the project, preferably during class time. If you cannot contribute to the project during class, then by the exercise due date.
Use the form above to describe what contribution you made and provide a link to the contribution in GitHub. You will not receive credit unless you fill out the form.
All exercises are due by 4:30 pm on Wed Apr 12
Week 12 Class 22 Thu Apr 06 Posted: Apr 06
Announcements
Class
Exercise 52: Rename Method Refactoring & Workflow II
After seeing the new name, length()
, in action, the team has decided that the name of the method should be size()
, not length()
. Perform a Rename Method refactoring to rename from length to size. Use the procedure Fowler describes and the workflow shown in class, including the issue, branch, and pull request.
Exercise 53: Team Meeting
Create issues for testing.
For a team member to receive credit, they must create an issue, preferably during class time. If you cannot create an issue during class, then by the exercise due date.
To receive credit, you must be at the Team Meeting in class.
All exercises are due by 4:30 pm on Fri Apr 07
Week 12 Class 21 Tue Apr 04 Posted: Apr 04
Class
Exercise 47: Join Team
Meet with your team. Make sure everyone present on the team accepts the invitation.
Exercise 48: Build StreamVideo
Create a screencast of you cloning, building, and running the tests for the Streaming Project.
Upload using the form in the link of the exercise.
All exercises are due by 4:30 pm on Wed Apr 05
Your company purchased a streaming video service. The plan is to use this code (and the associated data-mining platform) for a future software product.
Your team is in charge of the software. The immediate goal is to bring this codebase up to company development standards by filling in the (primarily missing) unit test cases and performing refactorings. You are not to add any new features or change the code's behavior in any way, only to improve the design and implementation quality of the current functionality.
Each team has a GitHub Classroom repository. An invitation link to create the repository is on the Brightspace course page. All work is through the project repository via issues, branches, and pull requests. Discussions will take place via the issue tracking system in GitHub.
You have the following overall work to do:
Create unit test cases. Create an issue in the repository for each set of unit test cases. Then, assign them to a member of the team. Note that you need a complete set of test cases before you perform refactoring on a class.
Perform Refactorings Contribute refactorings by creating issues in the repository. These issues must motivate why the refactoring is necessary and include the name of the refactoring.
Adaptive Maintenance Current code does not take advantage of the features of C++11. In many ways, these are also refactorings, but there is no standard catalog for them. Treat them as refactorings in terms of issues and branches. You can also take advantage of the features of C++14 and C++17.
For each of these activities:
Notes:
The only allowed changes to the code are:
Note that you cannot delete any classes. You can, however, add classes.
Points are deducted from all members of the team for any additional functionality added to the project
Technical Notes:
The project is due by 11:59:59 on Tuesday, Apr 25.
Week 11 Class 20 Thu Mar 30 Posted: Mar 30
Class
Exercise 44: Rename Method Refactoring & Workflow
Perform a Rename Method refactoring. Use the procedure Fowler describes and the workflow shown in class, including the issue, branch, and pull request.
A GitHub Classroom link is in Brightspace.
All exercises are due by 4:30 pm on Monday, Apr 3.
Week 11 Class 19 Tue Mar 28 Posted: Mar 28
Announcements
GitHub At the time I write this GitHub is experiencing "degraded performance" with Git Operations. You can check the status of GitHub via the GitHub Current Status.
In general, this should only effect git pull
or git push
. A git commit
is performed in the local repository (that you cloned). The timestamp on a commit is based on when you made the commit, not when it was pushed.
Other parts of the status that may be applicable are Pull Requests, Issues, and Codespaces. If you see problems with Pages that means that you can still access the course pages (course pages are hosted in GitHub Pages), but I may not be able to update the pages.
Class
Exercise 41: Maintenance Categories
The quiz at the link in the title has you select, based on a commit message, whether a commit is for an adaptive, corrective, or perfective change.
Classifying changes into new features or particular maintenance categories based solely on the commit message is inaccurate. Accurately doing so requires considering the code changes (including added code comments), any related issues, and any related discussion to know the reason for the change:
In this exercise, all of the commit messages are for commits that are maintenance changes (i.e., not new features). In addition, the only categories considered are corrective, adaptive, and perfective.
One other consideration is the purpose of the change:
cmake
, and are then adaptive maintenance.All exercises are due by 4:30 pm on Wed Mar 29
Week 10 Class 18 Thu Mar 16 Posted: Mar 16
After Class
GitHub At the time I write this GitHub is experiencing "degraded performance" with Git Operations. You can check the status of GitHub via the GitHub Current Status.
In general, this should only effect git pull
or git push
. A git commit
is performed in the local repository (that you cloned). The timestamp on a commit is based on when you made the commit, not when it was pushed.
Other parts of the status that may be applicable are Pull Requests, Issues, and Codespaces. If you see problems with Pages that means that you can still access the course pages (course pages are hosted in GitHub Pages), but I may not be able to update the pages.
Announcements
int
to std::string
, use std::to_string()
.Class
All exercises are due by 4:30 pm on Monday, Mar 27
Week 10 Class 17 Tue Mar 14 Posted: Mar 14
Announcements
Midterm
Midterm scores and feedback are posted in Brightspace:
Exercise 32: CodeAnalysisTDD First Pass
The first step of the project. Feedback and a score. Fix any problems I mention.
Some examples of commit messages that do not follow the guidelines, or can be improved:
Class
All exercises are due by 4:30 pm on Wed Mar 15
Week 9 Class 16 Thu Mar 09 Posted: Mar 09
After Class
Midterm
Midterm scores and feedback are posted in Brightspace:
Announcements
Class
Exercise 31: Git Commands I
asciinema is a way to record terminal sessions. It records the commands that you enter and the output the command produces. You will use it to record exercises involving git
commands.
After you install asciinema on Linux/WSL/macOS, it is quite straightforward to use.
You can play, pause, skip, etc. You can also copy the commands as text.
For this exercise, you will use the GitHub Classroom Git1 invitation link in Brightspace.
With this repository, performing the following instructions using git. As you enter commands, record your terminal session with asciinema. Commands must be typed with no copy/paste. When completed, save the URL that asciinema gives you and enter it into this form
touch list.txt
issue1
echo "a" >> list.txt
Here is a reference to the commands used:
Description | Command |
---|---|
Status | git status |
Difference in the working copy | git diff |
Add a file to staged commits | git add <filename> |
Difference of staged commits | git diff --staged |
Push the changes to GitHub | git push |
Current branch | git branch |
Create a branch | git checkout -b <branchname> |
Move to an existing branch | git checkout <branchname> |
Commit all changes in working copy | git commit -am "<commit_message>" |
Commit all staged commits | git commit -m "<commit_message>" |
Pull the changes from another branch | git pull origin <another_branch> |
Difference of two branches | git diff <branch1>..<branch2> |
All exercises are due by 4:30 pm on Fri Mar 10
Week 9 Class 15 Tue Mar 07 Posted: Mar 07
Announcements
Class
The article How to Write a Git Commit Message has guidance on commit messages in general and Git projects specifically. Especially note the 7 rules. As the writeup mentions, these ideas are not new.
A message with only a subject line is adequate for our projects. The rules that only concern the subject are:
Make sure to use these guidelines as you implement any projects or exercises.
In Project 3: TDD, you will follow a TDD process to implement code submitted via a GitHub Classroom repository. An invitation link to create the repository is on the Brightspace course page.
Due Dates:
The input for a (source) code-analysis project is source code that can come from multiple sources, including solitary files (e.g., main.cpp), directories of source-code files (e.g., src/), source-code archives (e.g., project.tar.gz, file.zip), and standard input (i.e., stdin, e.g., std::cin).
In addition, solitary files and source-code archives can include a URL, e.g., https://raw.githubusercontent.com/UAComputerScience/sorttdd-mlcollard/main/sortTest.cpp
To perform the code analysis, the source code is wrapped in a single XML element with metadata about the source code, including filename, programming language, url, hash, and LOC (lines of code). For the source-code example, the resulting XML has the following attributes:
Attribute | XML Example |
---|---|
language | language="C++" |
url | url="http://mlcollard.net/fragment.cpp" |
filename | filename="fragment.cpp" |
LOC | loc="3" |
hash | hash="39dcad4f59855aa76420aa3d69af3d7ba30a91bb" |
The hash is of the source and is a SHA1 160-bit (20 bytes) represented in 40 hex characters, which Git uses. Note that the xmlns:code="http://mlcollard.net/code"
is not an attribute, but an XML namespace declaration, handled automatically by XMLWrapper.
The programming language is typically determined from the file extension, e.g., .cpp for C++, but exceptions exist. The variety of input sources and program options for the metadata follows the rules stated below.
Implement the below rules following a Test-Driven Development (TDD) approach. Write a test in CodeAnalysisTest.cpp, and implement the minimal code necessary to get it working in CodeAnalysis.cpp, refactor/clean up the code to make it clear and logical, then commit with an appropriate commit message. You are encouraged to commit more than once per test case, e.g., after entering the minimal code to solve the problem and refactor/clean up the code.
std::cin
) of a regular file, the disk filename is a single dash "-" and the entry filename is the literal string "data". In this case, you must use the option filename for the attribute filename.std::cin
) of a source-code archive, the disk filename is a single dash "-". In this case, use the entry filename for the attribute filename.All error messages are written to standard error (i.e., std::cerr), and the function should return an empty string.
Your score will depend on the following:
Midterm Exam Thu Mar 02 Posted: Mar 02
Midterm In our regular classroom
Office Hours from 4:45 - 5:15 pm today are cancelled.
Week 8 Class 14 Tue Feb 28 Posted: Feb 28
Announcements
Project 2 Due date is Wednesday, Mar 1 at 8:00 am EDT.
On Wednesday, I will provide feedback about your calculations and plans.
I will accept changes to Project 2 through Friday, Mar 3 at 4:30 pm.
Class
Exercise 27: sortTDD
Follow along with the TDD process. Commit after every refactoring.
The GitHub Classroom link is in Brightspace.
Exercise 29: MockClock
Follow along with the MockClock example. Commit after every added mock object.
The GitHub Classroom link is in Brightspace.
All exercises are due by 4:30 pm on Monday, Mar 6.
Week 7 Class 13 Thu Feb 23 Posted: Feb 23
Announcements
Class
All exercises are due by 4:30 pm on Fri Feb 24
The Midterm Exam is Thursday, Mar 2, and covers Chapters 1 - 7 of the Head First Software Development book, plus my notes on Version Control and Build Files.
make
and cmake
The exam has various problem types, including short answers, definitions, comparisons, creation of user stories, and planning. The question may require you to:
It is a good idea to go over the "Dumb Questions" and the answers.
Questions are from what we covered in the book, the exercises, and the projects. If I did not cover it in class, it is not on the exam.
A calculator is not needed for any of the math required, and, therefore, not permitted.
Week 6 Class 12 Thu Feb 16 Posted: Feb 16
After Class
Announcements
Class
Exercise 25: CMake
For this exercise, we will use our existing srcComplexity project where we did the Makefile.
Implement a CMakeLists.txt to build the project by following along in class, or viewing the commits later on.
All exercises are due by 4:30 pm on Tuesday, Feb 21
Week 6 Class 11 Tue Feb 14 Posted: Feb 14
Announcements
Class
Exercise 24: Makefile
Use the GitHub Classroom Makefile Exercise link on Brightspace to create the repository for the srcComplexity program.
The Makefile is currently empty. Implement a Makefile to build the project by following along in class, or viewing the commits later on.
Unless otherwise indicated, exercises are due by 4:30 pm on Wed Feb 15
Project 2 is due by Friday, Feb 24 8:00 am Wednesday, Mar 1. A GitHub Classroom invitation link is on the Brightspace course page.
For Project 2, take all the user stories from Project 1 and create a series of iteration plans.
Use the examples in the book to show which parts of the user story you should show in your iteration plan (e.g., do not restate descriptions). Also, for each plan, clearly state the entire new iteration plan, not just the changes. However, make sure to thoroughly discuss what the change was and what effect it had.
This is an individual project. Each member of a team has different user-story priorities. See the next section to get individual priorities for Project 2.
Put these in the Priority field in the order that you listed the user stories. In the report, do not discuss how you generated your report's priorities, i.e., pretend that the customer gave them.
The following plans may have you add additional user stories. This violates our rule that only the development team can create estimates. However, as part of the exercise, put in an estimate.
Each plan is a point in time. For each plan, show the entire estimation plan, including the iterations already completed.
Create an initial iteration plan:
The customer adds two new user stories of the highest priority at the very end of the first iteration. For the two new user stories, one is a new feature, and one is an emergency. Create a non-trivial estimate (i.e., an estimate that makes the planning interesting) for these new user stories.
A user story with a non-trivial estimate is taking twice as long. Assume this occurred right before the last iteration.
At the beginning of the last iteration of your current plan, the other developer leaves for another project, and it is up to you to finish the project.
Priorities
To get invididual priorities for Project 2, select the number of user stories:
Note: You may get a warning from your browser that the information is not secure. You can safely ignore that. As an alternative, you can directly access this from a command line and copy it directly into the clipboard, e.g., if you have 30 stories.
On macOS:
curl http://66.228.46.28/cgi-bin/priority.sh?stories=30 | pbcopy
In WSL:
curl http://66.228.46.28/cgi-bin/priority.sh?stories=30 | clip.exe
In Linux with xclip
installed:
curl http://66.228.46.28/cgi-bin/priority.sh?stories=30 | xclip
Week 5 Class 10 Thu Feb 09 Posted: Feb 09
Announcements
Class
Exercise 21: Version Control Crossword I
Unless otherwise indicated, exercises are due by 4:30 pm on Fri Feb 10
Spend your Team Meeting finishing estimates for the user stories. You will need them for Project 2. You can stop estimating tasks at this point.
Each team member will turn in to Brightspace a separate document that includes each round of planning poker:
I recommend you take notes as you go along. If on paper, do this exercise on a new sheet of paper. The uploaded document can be a PDF or a JPG.
Week 5 Class 9 Tue Feb 07 Posted: Feb 07
Announcements
Project 1: Requirements Report
In software, we use a variety of formats, i.e., languages, to define what we intend, and then use tools to generate the result. With traditional programming we use programming languages, e.g., C++, and then use a compiler/linker to build the executable program or runtime. It is very important not only to write the code, but to compile/link the code into an executable, and then to run the result.
With Markdown we write in a plain-text format. This is then translated into HTML or another form so we can view it. With Markdown documents on GitHub (.md extension), GitHub automatically displays it as a web page. As with source code, we need to make sure that the Markdown that we write looks proper both as raw text and as a web page on GitHub.
Crossword Labs had an update in the past couple of days. Printing is much more standard. So now you can both 1) Print using the Print menu item in your browser and 2) Use the Print button
Class
HFSD Chapter 5
Exercise 18: What's my purpose? Due: End of class. Put the completed handout in the folder when the team meets.
Exercise 19: HFSD Chapter 5 Crossword Due: 4:30 pm on Wed Feb 08
Exercise 20: Team Tasks II Due: End of class
Unless otherwise indicated, exercises are due by 4:30 pm on Wed Feb 08
Reminder
Steps
Perform the above as many times as you can. Each time, use the initial tasks from a different team member.
Each team member will turn in to Brightspace a separate document that includes each round of planning poker:
I recommend you take notes as you go along. If on paper, do this exercise on a new sheet of paper. The uploaded document can be a PDF or a JPG.
Week 4 Class 8 Thu Feb 02 Posted: Feb 02
After Class
Crosswords
Crossword Labs had an update in the past couple of days. Printing is much more standard. So now you can
Announcements
Exercise 14: Requirements Report Repository
If you did not create your repository in GitHub Classroom for Project 1, then I will assume you will not be working on it, and therefore I can already give you a 0 on the project. It is too late to get credit for the exercise, but if you still want to submit the project later, create your repository in GitHub Classroom.
Team Folders Take your graded work from the Team folder during the Team Meeting time. Do not leave it in the folder. If you are working on paper, use a clean sheet of paper for each Team Meeting.
Class
HFSD Chapter 4
Exercise 15: HFSD Chapter 4 Crossword
Exercise 16: Team Tasks
Exercise 17: Individual Tasks
Divide up the user stories without tasks among all present members of the team.
For next class, create tasks for each of your user stories. Do this on paper or electronically. Do not write them on the cards until the next class meeting time.
At no time are you to take home the user story or task cards from the team folder.
Upload a PDF or PNG to Brightspace.
This is due by 4:30 pm on Monday, Feb 6
Unless otherwise indicated, exercises are due by 4:30 pm on Fri Feb 03
Reminders
Every time you look at the set of user stories, you may see improvements. These improvements include wording, grammar, capitalization, terminology, and even if the team should split a user story. The user stories can be updated right up until implementation. So, if you see any improvements, make them.
In particular, make sure your user story titles are as good as they can be:
Remember to take your graded assignments from the folder.
Steps
Each team member will turn in to Brightspace a separate document that includes each round of planning poker:
I recommend you take notes as you go along. If on paper, do this exercise on a new sheet of paper. The uploaded document can be a PDF or a JPG.
Week 4 Class 7 Tue Jan 31 Posted: Jan 31
Announcements
Class
HFSD Chapter 3 (continued)
Exercise 12: HFSD Chapter 3 Crossword
Exercise 13: Team User Story Estimates II
Exercise 14: Requirements Report Repository
Using the instructions in Project 1: Requirements Report, create your repository for the Requirements Report in GitHub Classroom.
Unless otherwise indicated, exercises are due by 4:30 pm on Wed Feb 01
Continue to determine estimates for your user stories following the procedure from the last Team Meeting. Keep in mind the following:
If you cannot reach a consensus, discuss and perform another round of planning poker. When the team gets a consensus for the estimate, place the estimate at the bottom of the description on a separate line, e.g., "Estimate: 1 day" or "Estimate: 3 days".
As before, each team member will turn in to Brightspace a separate, new document that includes each round of planning poker:
I recommend you take notes as you go along.
The document can be a PDF or a JPG.
Once consensus has been reached, write down the estimate on the user story.
Project 1 is due 11:59:59 pm Friday, Feb 10, Monday, Feb 13, in the file Requirements.md in a GitHub Classroom repository. You will need a GitHub account. Once you have an account, an invitation link to create the repository is on the Brightspace course page.
At your place of work, you need to submit a formal report describing the project's current state. Write a report of your individual and team activities, including:
In other words, all the work and processes followed while creating the user stories and their estimates. The details of the process and procedure and the general observations are in the form of a narrative, i.e., describe what you did, how you did it, and the result, ordered by time. The report's tone is professional, with a clear, consistent presentation.
The team created the User Stories and Estimates, but this report is an individual project. In your report, make changes to User Stories if they do not follow the guidelines given in the book. These changes are especially crucial for the Title and the Description. Split User Stories if the Estimate is too large. Explain any changes in your report.
The report content, report format, and your involvement in team activities are all considered for your score.
Think very carefully about the presentation of the report, including how you are using Markdown. Remember, the User Stories are an unordered set not an ordered list.
Week 3 Class 6 Thu Jan 26 Posted: Jan 26
Class
HFSD Chapter 3 (continued)
Exercise 9: HFSD Chapter 3: Iteration Plan p81
Exercise 10: HFSD Chapter 3: Who Does What? p86
Exercise 11: Team User Story Estimates
Exercise 12: HFSD Chapter 3 Crossword Due after next class
As a team, create estimates for the user stories by playing planning poker using the procedure described on pages 48-49 of the book.
When the team reaches a consensus for the estimate, place the estimate at the bottom of the User Story on a separate line, e.g., "Estimate: 1 day" or "Estimate: 3 days".
Individually, each team member will turn in to Brightspace a separate report that includes each round of planning poker:
If the team is not able to come to a consensus, table that User Story and go on to another one.
If the report is done on a computing device, it is due by the end of class. If the report is written on paper, you have until the regular exercise due date to submit a photo of your report to Brightspace.
I recommend you take notes as you go along.
The document can be a PDF or a JPG.
Once consensus has been reached, write down the estimate on the user story.
Week 3 Class 5 Tue Jan 24 Posted: Jan 24
Class
HFSD Chapter 2 (continued)
Exercise 7: HFSD Chapter 2 Crossword
Exercise 8: Team User Stories II
All exercises due by 4:30 pm on Wednesday, Jan 25.
Your team is to correct the current user stories and increase the number of user stories. Very carefully go over your user titles and descriptions. Add more user stories and see what you are missing.
For this exercise, every invalid user story title will result in a deduction from the overall score. E.g., For 2 invalid user stories titles, I will deduct 2 points.
Remember to split any user stories that you can. Apply the "and" rule.
Overall feedback based on Exercise 7: Team User Stories.
Of the 48 candidate User Stories generated in Team Exercise User Stories, 35 (73%) have invalid User Story titles.
The following are some that are not valid user story titles
User story titles are not things, i.e., they are not nouns. The title is an action to perform followed by what to perform it on. They are in the Verb Object or Verb Phrase form. User story titles are never a single word as they need a verb and an object.
The title of a user story completes the sentence "The user will be able to …"
For words that can be both a noun and a verb, e.g., "Report", assume it is a noun, except in cases that include another noun, e.g., "Report a missing item".
User stories are not tasks for the developer. A single user story often requires multiple tasks.
In terms of style, choose one of the following:
All user stories for each team must follow the same style. I suggest the Capitalize All form, as the book uses this form.
The following are User Story titles that are actions but have other issues:
Week 2 Class 4 Thu Jan 19 Posted: Jan 19
Class
Each Team is assigned a separate App with the description in Brightspace.
As a Team, create as many User Stories as you can for that app. For now, this is just the Title and the Description. The Title is just an action that a user can perform. The Description is from 1 to 3 sentences that describes what that action is. Follow the examples given in the book.
The User Stories are written on the provided index cards. I will provide a folder for you to put the cards in as I will collect the cards at the end of class.
Week 2 Class 3 Tue Jan 17 Posted: Jan 17
Announcements
Class
Unless noted otherwise, all exercises are due by 4:30 pm on Wed Jan 18
Week 1 Class 2 Thu Jan 12 Posted: Jan 12
Announcements:
Class
Exercise 4: App Idea - Upload to Brightspace. Due by 4:30 pm on Mon, Jan 16
All applications start with an idea or a need. In the role of a user, write a one-page paper (at least 350 words) that is a description of an application. The paper includes who would use it and its features. The application can be one that you create yourself or an existing program.
Guidelines:
You will form a team in class of 3 or 4 members. The final team composition is at the discretion of the instructor.
After forming a team, your team needs to decide on a name. The choices are one of the Three Stooges (Moe, Larry, Curly, Shemp, Curly Joe), one of the Marx Brothers (Chico, Harpo, Groucho, Gummo, Zeppo), or one from Star Wars. Pick at least 4 names.
Email Dr. Collard the following:
Example content of the email (but don't indent):
Doe,John,johndoe@uakron.edu
Doe,Jane,janedoe@uakron.edu
Doe,Brian,briandoe@uakron.edu
Doe,Suzy,suzydoe@uakron.edu
Harpo
Moe
Yoda
Zeppo
The purpose of a team is not just to divide the work, but also to raise the overall quality. More than one person should check any team assignment in this course. You, as a team, are responsible for these directions. Any emails sent as part of an assignment (including exercises) must have the correct subject and CC list. Exercises are not accepted and do not receive points if they do not have the proper form and content.
Week 1 Class 1 Tue Jan 10 Posted: Jan 10
Announcements
O'Reilly Online Learning The course textbooks are available in O'Reilly Online Learning.
You do not have to be on the campus network (e.g., via VPN) to access O'Reilly Online Learning.
To access content, click the "Institution not listed?" link below the dropdown and enter your UA email. You will then create an account and use that account from now on.
For more information: Library LibGuide
Exercises
Exercise 2: Software Development Diagram
Draw the Software Development Diagram that I present in class. Upload a PDF or JPG into Brightspace.
All exercises are due by 4:30 pm on Wed Jan 11
Greetings and welcome to CPSC 480 Software Engineering (SE) for Spring 2023.
See you on Tuesday, Jan 10 at 3:30 - 4:45 pm in Arts & Sciences (CAS) room 134