Unit Summaries


Overview

This quarter (Summer 2021), instead of two exams, we will have three "Unit Summary" assessments that are meant to replace the reviewing, summarizing, and reflecting that studying for exams provides. These assessments will typically contain a few "exam-style" questions to check your understanding of key concepts, but the majority of your time will be spent reviewing and reflecting on the material covered by the study guide.

The content covered by each Unit Summary is as follows:

  • Unit 1: Lecture 1 (Binary) - Lecture 6 (Floating Point)
  • Unit 2: Lecture 7 (x86 Programming I) - Lecture 14 (Structs)
  • Unit 3: Lecture 15 (Structs) - Lecture 23 (Memory Allocation II)

Instructions


What to do

For each unit summary, complete the three tasks detailed below.


Task 1 - Floor Plan

Estimated time to complete: 4–5 hours

We've used the as a metaphor throughout this course, treating each course unit as a floor that we've explored. For first task, you'll create a floor-plan of what we've covered in this unit, a summary (in a sense) of the spaces that we've seen, visited, and inhabited. This will be serve as a reference to know where you've been, should you need to refer back for future courses, projects, and work. Schematic drawings, sketches, really, any format that works for you works for us, as long as we can understand what you're trying to communicate (and, ideally, you can understand when looking back a year from now). Your floor-plan should go well beyond a "cheat sheet", in fact, your floor-plan probably won't look like a "cheat sheet" at all. We're looking for a synthesis of the material that you've seen so far, with an emphasis on how the different components that we've examined fit together into something cohesive. Rest assured, we won't grade on artistic ability! We'd just like you to demonstrate your understanding of pieces of this course interact with each other, and we think that visuals tend to communicate interactions better than language. Again, we'll have three of these throughout the quarter; we anticipate that this format will become more familiar with time.

It's likely that most of you intend on living within the for some portion of your career, probably for whatever comes after your undergraduate degree. Many new-grad employment opportunities (especially the subset at the Allen School career fair) tend to require technical prowess over all other qualifications, despite technical understanding having little bearing on career success. Our hope is that the floor-plans that you create can serve as an excellent reference for the technical knowledge that you might be expected to reproduce, but we stress that those that truly excel in their careers tend to have deep technical and socio-technical understandings. Therefore, to better prepare for your career as a whole, beyond your first job, your floor plans should represent how technical material interacts with socio-technical context, rather than give an isolated technical description of what we've covered, without context. Good scientists (especially computer scientists) don't solely include "what is", they supplement with context and justification. In your floor plan, you should include descriptions of why features were included ("what was"), as well as what you might like to change to help this space feel more like your own ("what could be"). You'll need both socio-technical context and technical understanding to build a complete floor-plan that will serve you beyond reviewing for your first job.

For Task 1, small-group work is allowed and encouraged! Feel free to discuss your ideas with fellow learners and get feedback on early iterations. As iteration is exceedingly important in design tasks, we'll devote some class time to getting feedback from others. Regardless, if you get feedback from others, make sure to acknowledge them in your final report. Most importantly, the work that you submit must be a representation of your own synthesis, in your own words, with your own design. Humans are phenomenally diverse creatures, and your floor-plan should reflect your own, wonderful uniqueness, perhaps peripherally guided by the advice of others.

You'll note that we aren't giving any examples. That's intentional! After we've graded Unit Summary #1 and #2, we'll take some time in class to look at some submissions that really worked well, but we've seen a tendency for students to over-use examples, potentially missing out on potential design spaces by only peripherally changing the example they were given. We expect many of you to be in some state of confusion when starting this assignment — that's an expected part of the process. If you're feeling stuck, or you feel like you need some extra help, please reach out! We're happy to sit with you in that confusion. We're happy to give feedback, we're setting aside some class time for you to get feedback from fellow students, and we'll add more office hours over the week that each unit summary is due if there's demand. We're deeply invested in your success, in this assignment and in this course broadly, let us know what we can do to help you be successful!

For this task, you should submit:

  • Your floor-plan, that includes both technical details of "what is" as well as socio-technical context that details "what was", and "what could be", that is, details of what you'd like to change. This can be any format that you like — more traditional 2D forms should be submitted as a PDF, more avant-garde 3D or virtual forms should be submitted as a PDF with a link to a video of you describing what you've made.
  • A description and justification of your design, around a page in length, though if your floor-plan "explains itself", you might not need as much space. If you need more than one page, you should strongly consider whether it's possible to add more explanatory power to your floor-plan. We'll enforce a hard limit at two pages, and we'll scrutinize submissions over a single page to see if the extra length was warranted.
  • The amount of time that you spent on this task, as a single sentence, so we can have some idea of how this course is progressing.
You should prioritize clarity over brevity and follow best practices in readability: fonts no smaller than 10pt, 1" margins, single-spaces lines. If you feel that your visual floor-plan doesn't offer the most clarity, you could put more effort into having a clear description (or vice-versa, depending on which feels more accessible to you). You'll submit a PDF, scanned handwritten and digital ink versions are fine, as long as we can read them without much effort. You'll submit your PDFs on Gradescope, with separate links for tasks 1 and 2.

We'll grade your floor-plan based on the following criteria:

  • Completeness: Does your floor-plan cover this unit's content, both technical and socio-technical components? If there are omissions, are they justified?
  • Cohesion: Do items in your floor-plan fit together in a way that matches the topics in this unit? Is it "structurally sound", that is, do the pieces of this unit, as described in your floor-plan, fit together sensibly?
  • Clarity: Can we easily understand what you're trying to communicate with your floor-plan? Is your design polished, that is, have you worked through several iterations to find ways of communicating that seem most suited to the material?
  • Creativity: Did you go "above and beyond" to create a unique piece of work? Did you incorporate your sense of self into your floor-plan? This will likely distinguish between floor-plans that receive extra credit.

We fully recognize that we're asking for something different than most assignments that you might have completed at UW. This task doesn't have a single, "right" answer, and we're asking you to bring some creativity to your work. We'd like to note that most tasks outside of the undergraduate classroom tend to be this way: no clear answers, no example format, and with some form of self-expression as a requirement. If this feels daunting, or you're not sure where to start, we'd recommend that you begin by reviewing course material. Think about how one piece of course content (binary numbering, for instance), might fit together with other pieces of course content (i.e. C datatypes) in some house-like structure. Some components might serve as a foundation, some might be more of an accessory. There aren't clear, correct answers for this task — you're creating a representation of your understanding that feels like yours! We won't be providing examples, but ask for help if you're feeling stuck, or if you'd like feedback. We can't grade in advance of a submission, but we'll do what we can to help.

Most importantly, start early! Compared with prior offerings, we're reducing the workload from homeworks so that you'll have more time to spend on your unit summaries, without this course exceeding its expected time allotment. You can start working on your floor-plan (even if you're just iterating through early versions) as soon as we start a unit! While you could turn in a something that you threw together haphazardly at the last minute, you'll learn much more by taking time to think through your design! Most open-ended design tasks tend to benefit from a few iterations, we anticipate that your floor-plan will be no different.


Task 2 - Reflection

Estimated time to complete: 30 minutes

After you've created your floor-plan, write a few paragraphs reflecting on the experience of making your floor-plan and learning the material in this unit. This is open-ended; we're looking for evidence that you took some time to think through how this unit (course material, lectures, labs, and floor-plan) personally affected you. This could be exclusively technical or exclusively socio-technical, but we'd prefer you include elements of both. In the same vein as task #1, there isn't a single correct answer here — we just want you to have some space to reflect on what you've accomplished, what felt valuable to you, and what you'd rather do without. If you're not sure where to start, we'd recommend following the format below. You aren't required to use this — in fact, we'd prefer that your reflections come entirely from you — but feel free to use the example format if you need somewhere to start.

Our goal is for your reflection to have some impact on your learning in this course! Studies of learning have demonstrably shown that reflection is critically important in one's process of learning and understanding new material, but reflection is a skill, like programming or debugging, that needs to be practiced. We're hoping that you'll reflect with some depth, describing "why" and "how" different components affected you, rather than solely describe "what" affected you. We won't grade for reflective depth, but we'll note in our feedback if we feel that your reflections would benefit from more introspection.

Again, we ask that you prioritize clarity over brevity, and present something that conforms to best practices in readability: fonts no smaller than 10pt, single-spaces lines and 1" margins. It would be unusual for a reflection to extend beyond single page — if yours does, consider cutting redundant content or try to give less emphasis to insights that aren't key to your reflection. Most will submit in a PDF format, though handwritten or digital ink versions are welcome, as long as we can read them without much effort. Unlike personal reflections, someone else (i.e. the course staff) will need to read and understand what you're trying to communicate; it's awfully hard for us to give feedback that helps you when we can't understand what you're describing.

Task 2 must be completed individually. Your submission should be your own work, in your own words. You should include, as part of your submission, the amount of time that you spent on this task, so we can have some idea of how this course is progressing.

Example Format (not required)

For each statement, note the degree to which you agree with it; one of Strongly Disagree, Disagree, Somewhat Disagree, Neutral, Somewhat Agree, Agree, Strongly Agree. Then, write a few paragraphs that explain your choice, noting both what might have changed and how you've experienced that change.

  • From my experiences in this unit, my view of low-level programming has changed
  • From my experiences in this unit, my understanding of how computation is performed has changed
  • From my experiences in this unit, my idea of what it means to be a computer scientist has changed
  • From my experiences in this unit, the way that I see myself in computing spaces has changed
  • From my experiences in this unit, the way I see myself broadly has changed
  • From my experiences in this unit, my career goals, either from my first job or from my career as a whole have changed


Task 3 - Assessment Questions

Estimated time to complete: approximately 30 minutes

Answer the provided questions. These questions are designed to assess your technical understanding of the material, much as a timed exam would in other computer science courses. You may refer to any resources from this course: your floor-plan from Task 1, the course slides, content on Ed, or the course textbook. Referring to materials outside this course is not allowed. Task 3 must be completed individually. Your submission should be your own work, in your own words.


Submission

Unit Summaries will be submitted via .

All Tasks will be graded separately. We will weight Task 1 at 55% of your unit summary grade, Task 2 at 15%, and Task 3 at 30%.

Tasks 1 and 2 will use the following grading scale:

  • E for "Exceeds requirements", that is, full credit + extra credit. You've demonstrated a complete understanding and mastery of covered material. (See syllabus for description of extra credit) You've created a superb, creative floor-plan, you've given insightful reflection into how the knowledge that you've gained from this unit has impacted your understanding of the world of computing.
  • S for "Satisfies requirements", that is, full credit. You've demonstrated a broad understanding and mastery of covered material
  • N for "Not yet satisfying requirements", that is, less than full credit. You've demonstrated a moderate, but growing, understanding and mastery of covered material. A broad understanding and mastery has not yet been achieved.
  • U for "Unable to assess", that is, no credit. You haven't demonstrated moderate understanding and mastery of covered material, or you haven't shown enough work for us to make a determination of your learning and mastery.

We expect that most people who complete Task #1 and Task #2 with genuine effort (that is, those that took time to work through several iterations and get feedback on their design) will receive an S for "Satisfies Requirements".

Task 3 will be graded using either the scale above or using standard exam-style grading (i.e., X points per questions).