Not logged in
Talk
Contributions
Create account
Log in
Navigation
Main page
About
People
Publications
Teaching
Resources
Research Blog
Wiki Functions
Recent changes
Help
Licensing
Page
Discussion
Edit
View history
Editing
Software Engineering (Fall 2025)
(section)
From CommunityData
Jump to:
navigation
,
search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
= Schedule = == Sprint Prep == === September 25 (Thursday): Introduction to the Course, Software Engineering, and SDLC === '''Before Class''' * Watch the 'Introduction to CSS 360' video. * Read over the syllabus (this document!) and be ready to ask questions. '''In-class Goals''' * Review class structure and plan for the quarter * Dive in on content: what is software engineering? What is the software development life cycle? * Start the class checklist '''Optional Materials''' * ''Interested in how this broad idea of a Software Development Lifecycle then gets used to advance our thinking via research? Check out this poster example using a generic SDLC customized for research software as a way to organize our thinking about how to develop software for research:'' Yehudi Y, Cashman M, Felderer M, Goedicke M, Hasselbring W, Katz DS, et al. Towards Defining Lifecycles and Categories of Research Software. deRSE25 Conference Proceedings. 2025;doi:10.5281/zenodo.15002661. [https://oceanrep.geomar.de/id/eprint/60845/| Poster Link] * ''Interested in how security gets integrated with the Software Development Lifecycle?'' Read: A. Wee, A. Kudriavtseva and O. Gadyatskaya, "“Have Heard of it”: A Study with Practitioners on Adoption of Secure Software Development Frameworks," 2024 IEEE European Symposium on Security and Privacy Workshops (EuroS&PW), Vienna, Austria, 2024, pp. 626-633, doi: 10.1109/EuroSPW61312.2024.00076. [https://ieeexplore.ieee.org/document/10628637| Paper Link] === September 29 (Monday): DUE: Class Checklist === '''Required Task:''' Complete the class setup checklist. This will take as much as 90 minutes (and includes a tutorial on JavaScript) so please plan in advance. As with most other assignments, you must complete this task by 11:59pm Seattle time. === September 30 (Tuesday): Organizing Patterns: Agile, Waterfall, and All That === '''Before Class:''' * Read the Reading Note * Watch the lecture video Organizing Patterns: Agile, Waterfall, and All That [45min] * Read [https://www.agilealliance.org/agile101/the-agile-manifesto/| the Agile Manifesto] and [https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/| the 12 Principles]. * Read [https://orbiscascade-washington.primo.exlibrisgroup.com/permalink/01ALLIANCE_UW/1juclfo/alma99162156685801452| Chapter 1 from The Mythical Man Month] <!-- * Watch the quick how-to guide to reading research papers * Read the case study on Mjølner Informatics: John Stouby Persson, Anders Bruun, Marta Kristín Lárusdóttir, Peter Axel Nielsen, Agile software development and UX design: A case study of integration by mutual adjustment, Information and Software Technology, Volume 152, 2022, https://doi.org/10.1016/j.infsof.2022.107059. (https://www.sciencedirect.com/science/article/pii/S0950584922001690) --> '''In-class Goals''' * Class Discussion (see reading note) * Group Discussion - Scenario matching (see reading note) * Groups assigned and announced. * Your first sprint planning meeting! '''Optional Materials''' * ''Interested in even more specifics about Agile and the methodology?'' IBM offers a Coursera Course on this topic called '''Introduction to Agile Development and Scrum'''. * ''Interested in Conway's Law?'' [https://martinfowler.com/bliki/ConwaysLaw.html| Check out this blog post from Martin Fowler] == Sprint 1 == === October 2 (Thursday): The Problem of Coordination (Git and GitHub) === '''Before Class''' * Read Reading Note #2 * Read Chapter 2 of Mythical Man Month * Read [https://git-scm.com/book/ms/v2/Getting-Started-A-Short-History-of-Git A very short history of Git] * [https://www.theserverside.com/video/Git-vs-GitHub-What-is-the-difference-between-them Watch Video and Read Blog Post describing distinction between Git and GitHub] [9m] * Watch my lecture on How to Read a Software Engineering Research Paper * Read this research paper: Helena Tendedez, Maria-Angela Ferrario, Jon Whittle. 2018. Software Development and CSCW: Standardization and Flexibility in Large-Scale Agile Development. In ''Proceedings of the ACM on Human-Computer Interaction'', Vol. 2, CSCW, Article 171 (November 2018). ACM, New York, NY. 23 pages. [https://doi.org/10.1145/3274440 Download Here] '''In Class Goals:''' * Finish Reading Note 1 as needed * Discuss Reading Note 2 * Finish Sprint Planning * Standup * Hands-on / triage issues with Task 1 (due tomorrow!) '''Optional Materials''' * [https://en.wikipedia.org/wiki/Git| Wikipedia entry on Git] * [https://www.ted.com/talks/linus_torvalds_the_mind_behind_linux| TED Interview with Linus Torvalds] === October 3 (Friday) === [[#Bot Project Task #1|Bot Project Task 1]] due at 11:59 p.m. Pacific time. If you're done early, get started on [[#Bot Project Task #2|Bot Project Task 2]]! === October 7 (Tuesday) Learning from Failures and Fiascos Part 1 === Please be aware that these cases involve some visceral description, human tragedy, and loss of life. Although this material is disturbing, I include it because these are at times the stakes of failure in software engineering as well: our work touches on every part of life, including transportation, health, and safety systems. '''Before Class''' * Read Reading Note #3 * Watch my mini-lecture on Learning From Failure (Part 1) * Prepare Case Material ** The Oregon Whale Incident: Read article and watch 4m video: https://www.registerguard.com/story/lifestyle/2024/11/11/exploding-whale-day-florence-oregon-coast/76092539007/ ** Tacoma Narrows Bridge: *** Watch documentary footage: https://en.wikipedia.org/wiki/File:Tacoma_Narrows_Bridge_destruction.ogv *** Read article and watch 5m video about the event: https://www.cascadepbs.org/2019/08/how-washingtons-most-infamous-bridge-failure-helped-engineers-prevent-more ** Hyatt Regency walkway collapse *** Listen to: https://timharford.com/2022/03/cautionary-tales-death-on-the-dance-floor/ [47m] *** Wikipedia article about the collapse: https://en.wikipedia.org/wiki/Hyatt_Regency_walkway_collapse -- note the 'Investigation' section and accompanying diagram ** Read excerpts from ''Success Through Failure'' and ''To Engineer is Human'' both by Henry Petroski. '''Class Goals:''' * Discuss Reading Note 3 * Standup * Hands-on / triage issues with Task 2 '''Optional Reading:''' * ''If you'd like to read about Brooks' idea of the roles in a software development team'', read Chapter 3 of The Mythical Man Month; we won't cover this in class. * ''If you'd like to read about Brooks' idea of developing a coherency in operating system architecture'', read Chapter 4 of The Mythical Man Month; we won't cover this in class. * ''If you are curious about the Tacoma Narrows Bridge Collapse'', you might enjoy [https://en.wikipedia.org/wiki/Tacoma_Narrows_Bridge_(1940) the Wikipedia article] * ''If you can't get enough of the exploding whale incident,'' it also has a [https://en.wikipedia.org/wiki/Exploding_whale Wikipedia article] === October 9 (Thursday) Learning from Failures and Fiascos Part 2 === '''Before Class''' * Read Reading Note #4 * Watch my mini-lecture on Learning From Failure (Part 2) * Prepare Case Material ** Review [https://nvd.nist.gov/vuln/detail/CVE-2022-38392 an unusual CVE] ** Read [https://status.cloud.google.com/incidents/ow5i3PPK96RduMcb1SsW Google's analysis] of their May 12th 2025 outage ** Read [https://mashable.com/article/google-cloudflare-amazon-internet-outage-june-2025 how Mashable covered] the same issue ** Read [https://www.theregister.com/2025/06/16/google_cloud_outage_incident_report/ the Register's take] on what happened '''Class Goals:''' * Discuss Reading Note 4 * Standup * Hands-on / triage issues with Task 2 (due Friday!) '''Optional Reading:''' * ''If you enjoyed the Cautionary Tales podcast,'' you might also enjoy [https://timharford.com/2023/03/cautionary-tales-office-hell-the-demise-of-the-playful-workspace/ this one], examining assumptions about work and return to office. === October 10 (Friday) === [[#Bot Project Task #2|Bot Project Task 2]] is due (release version 1.0). === October 14 (Tuesday) -- Requirements === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!--> readings to be 3 discord papers -- but one is very short! <--> === October 16 (Thursday) -- Design Part 1: Patterns === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!-- Ch 21-22 of Making Software --> === October 17 (Friday) === Bot Project Task 3 is due (version 1.1) == Between-Sprint Planning == === October 21 (Tuesday) -- Design Part 2: Architecture and Systems === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' === October 23 (Thursday) -- Testing and CI / CD === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!-- Ch 9, Ch 12 in Making Software --> === October 24 (Friday) === [[#Bot Project Task #4|Bot Project Task 4]] is due at 11:59 p.m. Pacific time. === October 28 (Tuesday) -- Evidence Part 1: Collecting and Evaluating=== '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!-- Ch 1-3 of Making Software --> <!-- Ch 27-28 of Making Software --> === October 30 (Thursday) -- Evidence Part 2: DevOps and Dora === <!-- dev test prod here? --> '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!-- Ch 10-11 in making software --> === October 31 (Friday) === [[#Bot Project Task #5|Bot Project Task 5 Due]] at 11:59 p.m. Pacific time. == Sprint 2 == === November 4 (Tuesday) Evidence Part 3: Static Analysis and Fuzzing === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' === November 6 (Thursday) -- Infrastructures and Supply Chains (Part 1) === Case: Log4J '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!-- Dependencies, Ch 20 in making software --> === November 11 (Tuesday) -- Infrastructures and Supply Chains (Part 2) === Case: Leftpad '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' === November 13 (Thursday) -- Dependencies?? Triage?? Bug-prone areas?? Generative AI something something? Guest Speaker? === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!-- Beyond Lines of Code Ch 8 of Making Software --> === November 18 (Tuesday) Quality, the -ibles, and Trade-offs === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' === November 20 (Thursday) -- Code review === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!-- Ch 18 in Making Software --> === November 21 (Friday) === [[#Bot Project Task #6|Bot Project Task 6]] (version 2.0) Due at 11:59 p.m. Pacific time. == Between-Sprint Planning == === November 24 (Monday) === [[#Pre-made Demos|Pre-made demos]] of your bot are due today at 11:59 p.m. Pacific time. === November 25 (Tuesday) -- Demo Day! === Demo Day! Your demo of your bot should be done [[#Live Demos|live in class today]] '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' === November 27 (Thursday) === US Thanksgiving: No class! === December 1 (Monday) === Your [[#Bot Feedback|bot demo feedback]] is due, 11:59 p.m. Pacific time. === December 2 (Tuesday) - Costing, Estimation, and Maintenance === Sprint Planning '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' <!-- Ch 23-25 of Making Software --> == Sprint 3 == === December 4 (Thursday) - Decomissioning === '''Before Class''' * Read Reading Note ## * Watch my mini-lecture on * Prepare Case Material ** '''Class Goals:''' * Discuss Reading Note ## * Standup * Hands-on / triage issues with Task # '''Optional Reading:''' === December 9 (Tuesday) === No class meeting. However, this is the designated timeslot for the final exam for this class. I strongly recommend that you plan to co-work with your group during this time (Professor Champion will run an open lab during this period). === December 11 (Thursday) === [[#Bot Project Task #7|Bot Project Task 7]] (Final version of your bot) due at 11:59 p.m. Pacific time. === December 14 (Sunday) === Reflection Due == Administrative Notes == === Teaching and learning after periods of disruption === Global events have a tremendous impact on all of us. Many of you missed key portions of the K-12 experience due to the pandemic or have experienced substantial stress due to circumstances beyond your control. We may be struggling to recover our own mental and physical health. Many of us are developing a sense of a "new normal". As your instructor and colleague, I commit to do my best to approach the course in an adaptive, generous, and empathetic way. I ask that you try to extend a similar attitude towards everyone in the course. When you have questions, feedback, or concerns, please try to share them in an appropriate way. If you require accommodations of any kind at any time, please contact me. === Your Presence in Class === As detailed in [[#Case discussion|section on case studies]] and in [[User:Kaylea/Assessment|my detailed page on assessment]], your homework in the class is to prepare for cases as well as to work on projects. Case discussion and team standup are an important ways that I will assess your learning. Obviously, you must be in class in order to participate. If you need to miss class for any reason, please fill out the course absence form so that I know you are not coming and do not include you in my cold call list. In the event of an absence, you are responsible for obtaining class notes, handouts, assignments, etc. There are many students who have eagerly requested to join the class, but there are not enough seats. I want to include as many students in the class as possible. I will automatically drop anyone who misses the first two class sessions and try to replace them with unenrolled students who do attend. This is consistent with college policy and with the course description in the catalog. === Devices in Class === I ask you to stay focused and avoid distractions for yourself and your peers in the classroom. Spending class time gaming and shopping is a waste of your precious dollars and your precious minutes here --- live, face-to-face opportunities to learn are getting harder to find and they mean so much when we engage with them. That said, you are an adult, and I myself cannot imagine taking a class without being able to take notes on a device and look up topics as they come up. Learning to be present and to control our attention is part of being a modern adult. I promise not to spend class time goofing off online and I think you owe it to yourself to promise the same. === Office Hours === The best way to get in touch with me about issues in class will in the Discord server via asychronous messages sent to one of the text channels. This is preferable because any questions you have can be answered in a way that is visible to others in the class. My available hours are visible in [https://cal.com/kayleachampion this calendar scheduling site]. If my planned availability does not work for you, please contact me in the Discord server or over email to arrange a meeting at another time. === Religious Accommodations === Washington state law requires that UW develop a policy for accommodation of student absences or significant hardship due to reasons of faith or conscience, or for organized religious activities. The UW’s policy, including more information about how to request an accommodation, is available at [https://registrar.washington.edu/staffandfaculty/religious-accommodations-policy/ Religious Accommodations Policy]. Accommodations must be requested within the first two weeks of this course using the [https://registrar.washington.edu/students/religious-accommodations-request/ Religious Accommodations Request form]. === Student Conduct === The University of Washington Student Conduct Code (WAC 478-121) defines prohibited academic and behavioral conduct and describes how the University holds students accountable as they pursue their academic goals. Allegations of misconduct by students may be referred to the appropriate campus office for investigation and resolution. More information can be found online at https://www.washington.edu/studentconduct/ === Safety === Call SafeCampus at 425-352-5359 anytime–no matter where you work or study–to anonymously discuss safety and well-being concerns for yourself or others. SafeCampus’s team of caring professionals will provide individualized support, while discussing short- and long-term solutions and connecting you with additional resources when requested. === Use of AI Tools === In this course, students are permitted to use AI-based tools (such as UW’s version of Copilot) on some assignments. The instructions for each assignment will include information about whether and how you may use AI-based tools to complete the assignment. All sources, including AI tools, must be properly cited. Use of AI in ways that are inconsistent with the parameters above will be considered academic misconduct and subject to investigation. Please note that AI results can be biased and inaccurate. It is your responsibility to ensure that the information you use from AI is accurate. Additionally, pay attention to the privacy of your data. Many AI tools will incorporate and use any content you share, so be careful not to unintentionally share copyrighted materials, original work, or personal information. Learning how to thoughtfully and strategically use AI-based tools may help you develop your skills, refine your work, and prepare you for your future career. If you have any questions about citation or about what constitutes academic integrity in this course or at the University of Washington, please feel free to contact me to discuss your concerns. Please note that I do not consider grammar/spellchecking to be a prohibited use of AI, even when other uses for AI are not allowed. Adapted from: [https://teaching.washington.edu/course-design/chatgpt/sample-ai-syllabus-statements/ UW sample syllabus statements]. === Academic Dishonesty === This includes: cheating on assignments, plagiarizing (misrepresenting work by another author as your own, paraphrasing or quoting sources without acknowledging the original author, or using information from the internet -- including from AI tools -- without proper citation), and submitting the same or similar paper to meet the requirements of more than one course without instructor approval. Please note that fabricated citations are a form of academic dishonesty. Academic dishonesty in any part of this course is grounds for failure and further disciplinary action. The first incident of plagiarism will result in the student’s receiving a zero on the plagiarized assignment. The second incident of plagiarism will result in the student’s receiving a zero in the class. === Disability Resources === If you have already established accommodations with Disability Resources for Students (DRS), please communicate your approved accommodations through their processes at your earliest convenience so we can discuss your needs in this course. If you have not yet established services through DRS, but have a temporary health condition or permanent disability that requires accommodations (conditions include but not limited to; mental health, attention-related, learning, vision, hearing, physical or health impacts), you are welcome to contact DRS at 425-352-5426 or uwbdrs@uw.edu or disability.uw.edu. DRS offers resources and coordinates reasonable accommodations for students with disabilities and/or temporary health conditions. Reasonable accommodations are established through an interactive process between you, your instructor(s) and DRS. It is the policy and practice of the University of Washington to create inclusive and accessible learning environments consistent with federal and state law. === Mental Health === Your mental health is important. If you are feeling distressed, anxious, depressed, or in any way struggling with your emotional and psychological wellness, please know that you are not alone. College can be a profoundly difficult time for many of us. Resources are available for you: * UW 24/7 Help Line 1.866.775.0608 * https://wellbeing.uw.edu/topic/mental-health/ * https://www.crisistextline.org/ * https://www.uwb.edu/student-affairs/counseling === Other Student Support === Any student who has difficulty affording groceries or accessing sufficient food to eat every day, or who lacks a safe and stable place to live, and believes this may affect their performance in the course, is urged to contact campus advising and counseling services for support. Furthermore, please notify the professors if you are comfortable in doing so. This will enable us to provide any resources that we may possess. Please also note the student food pantry, Any Hungry Husky. == Credit and Notes == This course was inspired by the course notes shared with me authored by Jeff Stride, Arkady Retik, and Hazeline Asuncion. In developing the content and approach, I drew from research into effective teaching techniques and challenges facing computer science students, including: * Oram A, Wilson G. 2011. [https://orbiscascade-washington.primo.exlibrisgroup.com/permalink/01ALLIANCE_UW/1juclfo/alma99162157478701452| Making software : what really works, and why we believe it]. 1st ed. Sebastopol, Calif: O’Reilly. * Wilson, G., Aranda, J., Hoye, M., Johnson, B.: Experience report: It will never work in theory. IEEE Software 41(03), 80–82 (May 2024). https://doi.org/10.1109/MS.2024.3362649 * Liao, Y. C., & Ringler, M. (2023). Backward design: Integrating active learning into undergraduate computer science courses. Cogent Education, 10(1). https://doi.org/10.1080/2331186X.2023.2204055 * K. Banweer and D. A. Trytten, "WIP: Code Insight: Combining Code Reading and Debugging Practices for Active Learning in Entry-Level Computer Science Courses," 2024 IEEE Frontiers in Education Conference (FIE), Washington, DC, USA, 2024, pp. 1-5, doi: 10.1109/FIE61694.2024.10893296. * K. Beck (2025). [Legitimate Peripheral Participation| https://tidyfirst.substack.com/p/legitimate-peripheral-participation] Blog post on Substack.
Summary:
Please note that all contributions to CommunityData are considered to be released under the Attribution-Share Alike 3.0 Unported (see
CommunityData:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:
Cancel
Editing help
(opens in new window)
Tools
What links here
Related changes
Special pages
Page information