Assignments are to be completed by individuals, although you are encouraged to discuss your work with your classmates. In keeping with scholarly tradition, all that you claim as yours must be authentically your own, and you must cite your sources for anything that is not. As always, your work should represent best practices of college-level composition. Work that is substandard in this regard can only be partially correct at best; structural problems that impede reading render a submission essentially incorrect. Keep in mind that The Writing Center is free and available for all students.
All of your assignments belong in our shared folder on Google Drive. You can gain access to this folder only by completing the registration form posted to Canvas; any requests for access through Google Drive will be ignored. Within the Assignments folder of the shared folder, you will create a document named after yourself. Each assignment will have its own heading, in Heading 1 style, with the name “Assignment N”, where N is the assignment number. When you are satisfied with your work, submit the URL to that section of the document via Canvas. The process is shown in this video; you can ignore the fact that the video's title refers to CS222 since it's the same process for us.
Readings from Norman are specified by page number in the print version. Chapter number and section titles are provided for those with an electronic version with different pagination.
Assignments marked Team are to be completed by your group. Generally speaking, the expected results from team assignments is scaled by the number of people on the team. Each team should create a new document in the Assignments folder, where the document's title consists of the surnames of the team members; this is the document where the team's submissions should be posted, and to which one team member submits the link on Canvas.
Tasks marked CS545 Only are designed for those students enrolled in CS545. They are marked on the dates they are due, but you are expected to make steady progress throughout the semester toward completing these tasks. For grading purposes, these are separate assignments from the CS345 requirements and will be tracked separately on Canvas. These assignments will be listed with a “G” suffix (for “Graduate-Level”); for example, the first one would be marked as “Assignment 2G”. Please list these separately in your assignment document and submit the link specifically to the corresponding entry.
Note that your submissions will be shared with our learning community. Do not submit anything that you would not be willing to share with your classmates.
Submit the object model for your final project. If you are taking the senior capstone or you are interested in learning the UML (e.g. from my overview or Allen Holub's Quick Guide), then you can submit this as a UML class diagram. For this, I recommend UMLet. If you have not studied the UML or another formal modeling language, then you can submit this model as digitized CRC cards or in source code stubs (declarations only, implementation removed).
Include with your submission a 2–3 sentence reminder of the solution you are building. Clearly identify component boundaries according to their responsibility a la SRP. Keep in mind that responsibility should be articulated as a role within the company— to whom is the code responsible?
Your submission will be evaluated according to its compliance with SRP and, to a lesser extent, SOLID more generally.
Submit a draft of your final report. The following subset of items from the Final Project specification are required:
Prepare and deliver a five-minute in-class explanation of your software architecture. Identify the boundaries between your model-layer and view-layer classes.
In the event that you are unable to present during class, record a screencast of the presentation and post it (or a link to it) to the discussion board by 1PM on Saturday.