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
Open Source Studio (Spring 2026)
(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!
= Assignments = The assignments in this class are designed to give you an opportunity to try your hand at using the conceptual material taught in the class. We will do one project and have one short writing assignment reflecting on that project and course topics. Any quizzes will be short and low-stakes. There will be no exams. Unless otherwise noted, all assignments are due at the end of the day (i.e., 11:59pm on the day they are listed as being due, Pacific time zone). == In Class: Discuss, Listen, Co-Work == === Discussion === <!-- The course uses the case study method: a particular form of instructor-mediated discussion. A standard "case" usually involves reading an example—an event and the surrounding context, or an organization or group. It is important to realize that '''I will not summarize case material in class and I will not cover it in lecture'''. I expect you all to have read it and we will jump in and start discussing it. Cases ask students to put themselves in the positions of individuals facing difficult situations to tease out the tensions and forces at play in the case and to construct — through group discussion — the broader lessons and takeaways. Cases are a wonderful way to connect the sometimes abstract concepts taught in many academic courses to real examples of the type of ambiguous situations that you will likely encounter in your career. Generally speaking, there are multiple right answers in cases, and there are definitely poorly-prepared answers versus carefully-considered ones! --> This course uses a Socratic seminar discussion style -- I will ask questions rather than providing answers. Generally speaking, there are multiple right answers, and there are definitely poorly-prepared answers versus carefully-considered ones! You should also be aware that these discussions are conducted as cold calls, described below. ==== Cold Calling ==== I call on people ''without'' asking for volunteers first. I will be doing this in each class. Modern technical work environments include very similar situations: very few lectures (except for "all hands" type meetings and short "training" activities), and a range of types of team meetings and group conversations, where you will be expected to be prepared and then participate in key moments. Because I understand that cold calling can intimidate some students, I will be circulating a list of questions (labeled "Reading Note" in the syllabus) that we will discuss. These will be finalized at least 6 days in advance. I will only cold call to ask questions for which you have time to prepare your answers, or where the general format / structure has been announced in advance so that you can prepare. Although it is a very good idea to write out answers to these questions in advance, I will not be collecting these answers. You are welcome to work with other students to brainstorm possible answers. Although I may also ask spontaneous questions that I do not distribute ahead of time, I will never cold call when asking these questions. I have written a computer program that will generate a random list of students each day and I will use this list to '''randomly''' cold call students in the class. To try to maintain participation balance, the program will try to ensure that everybody is cold called a similar number of times during the quarter. Although there is always some chance that you will called upon next, you will become less likely to be called upon relative to your classmates each time you are called upon. ==== Assessment for discussion ==== I have placed detailed information in [[User:Kaylea/Assessment#Case Discussion|the discussion section of my assessment page]]. This describes both the rubrics I will use to assess your case discussion and how I will compute the final grades in the course. === Standup Meetings === Once project groups are formed, you will meet in a standup format in each class. In standup, you answer three questions: what did you do since the last standup, what will you do before the next standup, and do you have any blockers? You will also echo these answers into the Discord channel. Your performance in standup will be assessed according to the rubric described in [[User:Kaylea/Assessment| the detailed page on assessment]] == Out of Class: Read, Watch, and Work == Each class session will require advance preparation from you, including engagement with class materials and working on course projects. More details on the class materials are in the daily schedule, and more details on course projects are in the assignments section. === Notes on Group Work === You will be part of a group of contributors to an open source project as part of this class, first learning about potential projects, then joining a group, then identifying a scope for your contribution, and finally conducting that work and seeking to merge it with the public project. Please note that this means your work in this class will be public and made available to the project under their license. Real-world technical roles involve collaboration and teamwork. This course is '''not''' a team project course. Instead, the work you do will be largely individual. The purpose of the group is for you to explore a new organization as a cohort, offering each other advice, support, and peer reviews as you work on the project. This is an opportunity to develop your professional skills and network. Think carefully about what kind of group member you want to be, and how you will respond to potential sources of conflict. In general, groups work well when students have motivations that align with the work of the group, varying skillsets, and display mutual respect. I will assess your work based on the evidence I see in behavioral traces: the records left behind in the tools we use for the course. === Project: Making a Meaningful Contribution to Open Source === The open source contribution project is broken up into multiple tasks, each building on the previous. You will begin by reflecting on your own skills and interests, then explore potential projects where you might contribute. You'll share what you find and consider what others have found as possible projects, and then vote for a project you'd like to contribute to. I will form you into groups -- where possible, you and your groupmates will all contribute to the same project, but in some cases your group may organize around a theme of contribution type or language if student interests diverge too far. In your group, you'll develop and propose a Statement of Work to me -- a scope for your group's effort, describing what each person will contribute. You'll then develop your contribution and refine it, conducting first your own self-review and then a review for a peer, before finalizing your contribution and submitting it to the community. We'll close the quarter by showing our work projects to one another, and reflecting on our experience. The "Open Source Project Rubric" section of [[User:Kaylea/Assessment| the detailed page on assessment]] gives the rubric I will use to evaluate your work. ==== Extra Credit: Team Bonding Activity ==== Many classes include a necessity for students to meet outside of class, and you may find that in order to complete work your group likewise needs to arrange to meet up. But outside-of-work events are also a common way for organizational work teams to develop social relationships -- and research has found this to be valuable if everyone's needs and perspectives are respected. If your group meets up outside class for '''non-work''' purposes, take a selfie and send it to me for a little extra credit (available only once and in the first 3 weeks of the quarter). Only one group member needs to send this to me. ==== Open Source Project Prep Task #1 ==== ;Task: Skills and Priorities Inventory ;Due: Friday, April 3, 11:59 p.m. Pacific time ;Deliverables: You are done with task 1 if you have filled out the Skills and Priorities Assignment [Google Forms Link is posted to Canvas] ;Turn In: via a Google Form ==== Open Source Project Prep Task #2 ==== ;Task: Community Field Trip and Evaluation ;Due: Friday, April 10, 11:59 p.m. Pacific time ;Deliverables: You are done with task 2 if you have evaluated 2 open source projects according to the field trip and evaluation form; it is a Google Form you can return to and edit your responses. You should then anticipate sharing the results of your field trip in class. ;Turn In: The filled-in evaluation form via Google Forms; no Canvas turn-in. '''Steps''' # Visit at least 2 communities you would be interested in contributing to. # Evaluate the community according to the criteria in the form. # Please note that this assignment is not private: the results of your evaluation will be shared with other students in the class to help them in project selection and group formation. ;Tips: * Allow some time for this! The point value for the assignment is relatively high.... * You are investing in your future success in the class: spending time now to find a good project will pay off later in your satisfaction and success. * Sources for projects to evaluate: ** GitHub's help wanted: https://github.com/topics/help-wanted ** An external site for browsing the above: https://github-help-wanted.com/ ** Social good projects: https://meaningfulcode.org/ ** Humanitarian projects: https://hfoss.etica.ai/ ==== Open Source Project Prep Task #3 ==== Groups in this course are affinity-based. If several people want to contribute to the same codebase, each with their own tasks, I'll place them in the same group. Beyond that, I will try to form groups that make sense, grouping students together based on the kind of project, the language in use, other overarching traits, or student preference. ;Task: Set up work environment and group chat ;Due: Wednesday, April 15, 11:59 p.m. ;Deliverables: You are done with task 3 if you have set up your contribution environment for the project. ;Turn in: A screenshot of your development environment '''Steps''' # Meet your group members! # Join the Discord channel for your group (hosted in the class server). # Make sure you can install the project you are proposing to contribute to: you must be able to test changes before you try to submit them to the project. To avoid disrupting your other uses of your computer, I recommend using the Docker image from the CSS Remote Linux Lab: https://csswiki.uwb.edu/css-linux-lab-docker-image/ -- use the run as administrator options, and use the 'permanent' option when launching docker rather than the 'temporary' one, so you don't lose work. You might also explore deploying the project using GitHub's codespaces feature. If you are not able to set up a development environment for yourself, you will likely need to move to a different project. ;Tips: * If you are running into issues, contact Dr. Champion right away -- you may need to move to a different group. * The exact path your project takes will be different from other groups at this point. Use your group chat and standups to talk about challenges you are facing! * Different projects will have different standards for AI usage and you must follow their rules. For course purposes, feel free to use AI tools as a tutor. However, please note that the code produced via AI may be far below the quality expected by the project. If the project you contribute to allows for AI contribution, you should always plan to revise any AI output to fit project requirements and needs. ==== Open Source Project Prep Task #4 ==== ;Task: Analyze the structure of the project or projects and produce a cribsheet / quick reference card ;Due: Friday, April 17, 11:59 p.m. Pacific time ;Deliverables: You are done with Task 4 if everyone in your group has added at least one item to a cribsheet and it's pinned to the top of your channel. ;Turn in: No need to turn in something for this; Dr. Champion should be able to grade your work right out of Discord. '''Steps''' # Use Discord to discuss the project and identify important links and reminders. Topics might include: ## Identify important links for your project (front-facing website, developer-facing website, important documents if not linked from the GitHub site, communication channels the project uses) ## Identify overall genre and architecture for the project, key files, tips, reminders. (Examples: "React front-end, postgres database -- great tutorial on YouTube here:", "JavaScript bot, make sure to update both commands.yml and commands.js if you add new commands", "Python library; unit tests are required for everything and go in the command-specific file in the test/ dir", "Does a Hackathon every other Friday (next one is on....xx/xx)" # Share your observations about the project in the chat # As a group, compile your observations into a single message for reference and pin it. ;Tips: * This is mostly to help you in the future...don't cheese it. ==== Open Source Project Statement of Work (Task 5) ==== ;Task: Identify areas where you can contribute and prepare a group Statement of Work ;Due: Friday, April 24, 11:59 p.m. Pacific time. ;Deliverables: You are done with this task if everyone's roles in the project are described and the scope of work explained. ; Turn in: your Statement of Work document for your group, via Canvas (1 per group), as a link to a Google doc where I have edit rights '''Steps''' # Review the Statement of Work template # Identify work you personally would like to do in the project (sizing will vary here based on your interest and goals: 2 substantial bugs, a new feature of some significance, or other revisions on the scale of about 40 hours of work over a 5 week period -- 2 weeks for the first draft or progress report, 1 week for a second draft / self review, 1 week where you will work on a peer review but can also be improving your own work, and 1 week for final touches after receiving a peer review) # Comment on the issue or communicate with the maintainer about your interest in this work. This will make it less likely that someone else will do the work before you have a chance (although this could still happen). Be polite and sincere! # Estimate how long you think each phase will require: planning / analyzing the work, implementing the work, testing the work, refining the work in response to feedback # Identify when you will complete each of these phases for each task # Identify fall-back positions in the terms and conditions (if you're not able to fix the bug, what will you do instead to demonstrate what you've learned? If you do less than the work outlined, what grade do you think is fair? See rubric for this assignment.) # Contribute to the group document with your areas of work. # Expect to negotiate the scope of your contribution with Dr. Champion and to engage in a dialogue the maintainer; you should expect this to be a good-faith discussion. ==== Open Source Project Rough Draft -- Task 6 ==== ;Task: Finish up a first draft or first milestone of your project ;Due: Friday, May 8, 11:59 p.m. Pacific time ;Deliverables: in accordance with the Statement of Work ;Turn in: ==== Open Source Project Code Review (Self) -- Task 7 ==== ;Task: Review your work before you ask others to review it ;Due: Friday, May 15, 11:59 p.m. Pacific time ;Deliverables: You are done with this task if you have asked an LLM to review your work and made recommended changes that you think make sense. ;Turn in: the history of your conversation with the LLM, and a link to a code commit. '''Alternative for conscientious objectors:''' The use of LLMs is not a necessary learning goal for this course. Therefore, LLM use is not required. Students who object to LLM use may do this assignment by using static analyzers and code profiling tools. ==== Open Source Project Second Draft -- Task 8 ==== ;Task: Complete the second draft or milestone ;Due: Friday, May 15, 11:59 p.m. Pacific time ;Deliverables: ;Turn in: ==== Open Source Project Code Review (Individual) -- Task 9 ==== ;Task: Seek peer review of your work and conduct a review of someone else's work ;Due: Friday, May 22, 11:59 p.m. Pacific time ;Deliverables: You are done with this task if you have arranged for a peer review with a colleague and done a review of someone else's code. ;Turn in: your review text. ;Steps: # Request a peer review via Discord, including a link to your repository. # Come to an agreement as to who will review whom. # Conduct a review of a peer's work and send it to them. # Share the text on Canvas. ==== Open Source Project Post-Review Revision -- Task 10A ==== ;Task: Respond to peer review of your work ;Due: Friday, May 29, 11:59 p.m. ;Deliverables: You are done with this task if you have revised your code in response to a peer review. ;Turn in: a link to the commit / commits associated with the peer review. ==== Open Source Project Contribution -- Task 10B ==== ;Task: Make the contribution described in the statement of work. ;Due: Friday, May 29, 11:59 p.m. Pacific Time ;Deliverables: You are done with this task if you have completed your portion of the statement of work. This task must be submitted on time but can be revised / resubmitted to meet community standards (within reason; talk to Dr. Champion if issues arise). ;Turn in: A link to your pull request to the main source tree of the project (or whatever the community requires). ==== Demo + Presentation of Work -- Task 11 ==== You will share your (or your group's) efforts with the class as part of a final celebration of our work in the class. Task: Present your / the group's work to the class. ;Due: Wednesday, June 3rd, in class ;Deliverables: ;; 1 - A virtual poster describing your individual work OR a group poster describing the group's work as a whole. ;; 2 - The oral presentation of your work (Time allocation: 5 minutes per person with up to 3 minutes for questions; if you present individually, you have 5 minutes total, if a group presents as a group, multiply time by quantity, the division of time should be reasonable and fair but does not need to be identical). ;Turn In: A PDF of your poster. '''Steps''' # You can lay out the poster using any tool you like; Miro or Canva should work well. # Plan to project your poster and zoom in on elements as you talk # Include the following elements: ## What is the project? ## Who is in your group? ## What work did you do? ## Observations. Potential topics include: ### What did you learn ### What feedback did you get from the community ### What advice would you give to other students or new contributors ## Screenshots, visuals and other evidence # In class, you will show your poster and talk about your work. ;Tips: * Don't make a printout, but for future optional activities, I recommend using a standard horizontal layout (e.g., 20x30) so that it can be printed. ==== Reflection on the Project -- Task 12 ==== See the [[User:Kaylea/Assessment | brief reflection rubric]] for details on my expectations in terms of the content of the reflection. A successful essay will do the following things: # Use content and concepts from the course. # Use evidence from your experience, your project, and the projects of others. Mention project names, commit IDs, line numbers, dates & times as appropriate. # Cite your sources; these sources must be real, they must provide support for the statements associated with the citation, and they must be viewable by me. Note that AI tools are notorious for fabricating these and use of AI tools for this assignment is forbidden. # Be 1200-1500 words. Note that there is a penalty for going over length and that references don't count in length limits; I'm not interested in nitpicking, but essays over 1600 words are particularly unfair to others. Essays under length won't receive a special penalty but are '''very''' unlikely to achieve the depth I am looking for. # Do not use AI tools. If you are not sure what to write, think about what happened in the project and choose some of these prompts as jumping off points (do '''not''' treat the following as questions to answer in order!). What kind of work did you end up doing, and how well did you do? Was the project easy or hard, which parts, how, and why? How did the analysis go, and what did you learn? Walk through each topic we covered. How did course concepts apply (or fail to apply) to the situations you faced in developing your project? Did anything surprise you or change your mind during the project? Did you experience any failures or problems? How did you solve them? Based on your experience, what is your advice for the students who take this course next? What did you learn about yourself and the ways you prefer to work? What did you learn from the presentations done by your fellow students? Did anything surprise you in the work from other groups? Do not write in a long single paragraph or send me a list of bullets; instead, write a standard essay with an introduction, key points, and conclusion. Choose and use a formatting standard and stick to it (APA, Chicago, ACM, etc.). Use correct citation formatting for both your inline citations and your References section. Your essay should make liberal use of many kinds of evidence, including several course readings, lectures, and videos, as well as several commit IDs or other URLs with your specific experience. Do not use AI tools. Do use examples and evidence. This should be an essay that only you could write, because it's about specific events in your experience of the course. ;Turn in: a well-formatted essay via Canvas ;Due: Friday, June 12 at 11:59 p.m. === Grading === I will follow the very detailed grading rubric described on [[User:Kaylea/Assessment|my assessment page]]. Please read it carefully. I will assign grades for each of the following items on the UW 4.0 grade scale according to the weights below: * In-class activities, including discussion: 40% * Project Prep (Tasks 1-4) : 15% * Project Work (Tasks 5-10): 35% * Presentation (Task 11): 5% * Reflection (Task 12): 5% '''Impact of Missing Class''' If you must miss class or be late, file the class absence form to alert me. Not filing this form ('no call, no show') will impact your in-class activities grade. Advance notice lets you avoid a penalty, but it does not serve as a makeup. There is no direct way to make up for missing in-class activities. Instead, you can expect to be called upon more often in subsequent classes to balance out your participation. Please note that if you miss too many classes, it will eventually become impossible to receive full credit for the in-class activities portion of the grade as I will not be cold calling the same person an excessive number of times in a single class session. Standup participation is equivalent to answering one question in class. If you miss standup, it is still a good idea to update your groupmates on what you're doing, but you will not receive credit. Instead, the self-balancing approach I use to randomize who answers questions will mean that you are more likely to be called on in subsequent classes. '''Grade Questions''' Everyone makes mistakes and I want to fix mine as quickly as possible. If you have questions about a grade, book a private timeslot on my calendar within 1 week of the grade being released. In a grade consultation session, I will ask you to take the lead: show me in specific detail how your work fulfills the rubric for the assignment type overall, how you fulfilled the criteria for the specific assignment, and how your work meets the learning goals of the course. '''Mapping Percentage to the 4.0 Scale''' Instructors have discretion in how we make use of the 4.0 grading scale; we select the weight for each element of the course, the number of points available, and we decide how best to map a percentage of those points into the 4.0 system. This mapping, and the evenness of spacing within the mapping, may vary from class to class, and it may be quite different from what you are accustomed to seeing elsewhere at UWB (or feel unnatural, if you grew up as I did, receiving letter grades!). For this quarter of this class, I will map an overall 97.0% to a 4.0 and a 60.0% to a 0.7, with even spacing in between. This means to receive a 2.0 for the course, you need a 74.6% in the class. Doing the bare minimum is a high-risk approach (what if life gets busy or messy later in the quarter?), and I don't recommend it. Instead, come to class prepared and do all the work on schedule. '''Late Policy''' Assignments are due on the posted date at 11:59 p.m. Pacific time. You may choose one extension-eligible assignment for which you want to use one 48-hour extension, no questions asked: Tasks 1-6 and 8-10 are all extension eligible, Tasks 7, 11, and 12 are not. Use Canvas to make your request so that it is private and trackable. I suggest not using your extension unless you cannot avoid it (you might need it later!). The default lateness penalty is 20% per 48-hr period, however some assignments may have their own rubric for any lateness. In addition, when the assignment is slated for in-class discussion, a specialized late assignment policy applies; turning in the assignment after an in-class discussion of the assignment increases the penalty to 50%. Note that assignments in this class tend to build upon one another; being late with an assignment means less time to do the next stage. Do not expect your groupmates to do extra work to accommodate your need for an extension. No extension is possible for the Presentation and Peer Review assignments as those involve coordinating multiple people and have very tight timing. No extension is possible for the Reflection assignment because it sits at the very end of the quarter and I must submit grades on time. If you experience a severe or extraordinary interruption to your ability to complete class work in a timely manner, I expect to follow [https://www.uwb.edu/registrar/incomplete-grade-policy the UWB policy around incompletes] and to work with you, the advising office, and the disability services office as required to navigate your difficult situation.
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