Week 12 Highlights

Here are some highlights from student submissions for Week 12.

Children’s Book

In the Land of NAND [PDF]
Emily Franklin, Luke Sills, Emily Huo, Reza Mirzaiee (Cohort Felt)


Cantor's Theorem (to the tune of "You'll Be Back" from Hamilton)
Derek Bassett, Isabelle Deadman, Justin Ngo, Anh Nguyen, Henry Todd, Letao Wang (Cohort Benjamin)

The Day Computing Died - The Rao-Blackwell Theorems
Zach Baugher, Tyler Willis, Sarah Yao, Karen Zipor, Jennifer Li, Carryk Bhattal

Wilkes Cohort Final Project Rap
Stephen Boakye, Kyle Cheng, Collin Orendorff, Yu-Jiyun Taom, Iskander Umarkhodjaev

Theory of WAP-u-tation (listener discretion advised!)
Cris Scruggs


News Flash: P = NP!
Cameron Church, Diana Damenova, Daniel Lower-Basch, Jason Tufano, Michael Yates (Cohort Anh)

Office Hours
Noah Holloway

Mulan Solves P vs. NP
Charles Fang and Darwin Walter

Theory of Computation — Official Trailer
Gabriel Edwards, Prithvi Kinariwala, Jared Nguyen, Ian Reyes, Dawang Shen (Cohort Rosenblum)


The Legend of Bruno L.‘s Lasagna Language
Benjamin Grant, Callie Hartzog, I Jung, Joseph Kerrigan, Hallie Khuong, Grace Kisly (Cohort Jones)

Make your way Through Finite State Automata
Selena Johnson

Domino Logic Gates
Jack Liu, Anh-Thu Nguyen, Victor Pham


2-bit Ripple-Carry Adder and 4-bit CLA in Minecraft
Jackson Berigan, Edward Kim, Justin Liu, Phuc Nguyen, Parth Raut, Evan Topoleski (Cohort McCarthy)

Divisible by 8 FSM
Kevin Cooper, Maxim Gorodchanin, Amar Singh, David Zhang, Zhen Zhang (Cohort Buolamwini)

Week 12

Week 12 is now posted - see the Week 12 page for the details.

Please read the Week 12 guide early, since it is different from previous weeks and you need to decide on how you want to partition your cohort for this by the date of your Week 11 write-up deadline.

Week 11

Week 11 is now posted - see the Week 11 page for the details.

Week 10

Week 10 is now posted - see the Week 10 page for the details.

Week 9

Week 9 is now posted - see the Week 9 page for the details.

Week 8

Week 8 is now posted - see the Week 8 page for the details.

Week 7

Week 7 is now posted - see the Week 7 page for the details.

Cameras and Community

In general, we’re pleased with the responses on the peer evaluation surveys, and it is clear that most students have respect for and are valuing the interactions with their cohortmates. But, one thing we’ve heard from some of your peer evaluation surveys, and also felt ourselves, is the difficulty forming a connected community in this on-line environment.

Groups that knew each other and were used to working together pre-pandemic usually were able to move to on-line environments fairly well, and the personal connections already established in the easier in-person environment translate to the on-line environment. I’ve seen similar things in comparing groups that have nearly all of their interactions on-line but have one or two in-person meetings a year, to ones that never meet in person. Without the in-person meetings, the level of familiarity and comfort that comes from feeling like you know who someone is are very hard to attain.

This makes the challenge of forming a community with your cohort, which for most of you is with people you have never met in person, especially difficult (and perhaps exaccerbated by the additional stress you might feel about being graded during the assessed cohort meetings, although we really don’t want this to be stressful).

Which meeting would you rather be in?

One thing that is a big factor in how well group video meetings work is correlated with having cameras on. From the now thousands of group on-line meetings we’ve been, with groups ranging from 3 up to several hundred people, the biggest thing that seems to impact the quality of the meeting is whether or not most people have their cameras on. I’ve (Dave) seen similar things from observing my daughter’s classes and activities — some require everyone to have their camera on all the time, others do not allow anyone to turn their camera on. There are very good justifications for each of these policies, but the cameras-off meetings lead to stale, non-interactive environments, where no one forms any connections.

Having cameras on allows interactions that aren’t possible with audio only — mid-meeting high fives, playing rock-paper-scissors, raising hands, showing interest, showing confusion, showing pets, celebration dances, etc. Video also helps make people seem like humans, not just voices in the ethernet.

That said, we don’t want to require or pressure anyone to turn their camera on during the cohort meetings, and as we said at the beginning of the course, we don’t want anyone pressuring your cohortmates to turn cameras on. There are lots of “good” reasons why someone would decide to keep their camera off, such as:

  • Not having an adequate and private place to use to join the meeting and being worried about things that might be seen in your background.

  • Being anxious about how you look on camera, or fearing that people will judge your ideas differently if they can see you (we really hope this would not happen with people in our class, but that doesn’t make the fear of it less valid, especially when it does happen in lots of other environments).

  • Not having enough bandwidth to have good audio and video at the same time and prioritizing audio.

  • Not having a working camera.

But, there are also lots of “bad” reasons why people prefer to keep their cameras off during a meeting:

  • Not wanting to reveal if you are falling asleep, distracted, bored, or confused. (All of these are important visual clues for the other people in the meeting that, although not always pleasant to see, are very valuable to know.)

  • Wanting to be able to only partially engage in the meeting, and to be able to do other things without being noticed. We sympathize with this reason for many meetings we attend, but for the cohort meetings we really want everyone to be fully engaged and participating, even during times when others are speaking.

  • Wanting to be able to “hide” and lurk in a meeting, without contributing to it.

  • Not wanting to be the first one in the meeting with a camera on. This is a tough one, and understandable, but also the reason why small group meetings that start with about half of the people with cameras on, tend to devlolve into meetings with no cameras on. It feels awkward to be the only one in a meeting with camera on since it seems like everyone is looking at you and you have no one to look at. But, try and stick it out and hope that if you do, others will join. We would also suggest that there is a way to encourage others to turn on their cameras without pressuring any individual to do so: “If I turn on my camera, will anyone join me?”

It isn’t possible for us, or your cohortmates, to distinguish between the “good” and “bad” reasons you might not be willing to have your camera on. On the other hand, my guess is the vast majority of students who have their cameras off, it is for a “bad” reason not a “good” one.

We don’t want anyone to feel any individual pressure to turn their camera on since we know some people do have valid reasons not to. But, we hope that people who are turning their camera off for “bad” reasons, will consider that although it is an immediate sacrifice personally to turn on your camera, it is a community benefit that will, in the long run end up being a personal benefit also.

Week 6

Week 6 is now posted - see the Week 6 page for the details.


Since a few students asked about using Piazza, I wanted to post an explanation of why I’m not willing to use Piazza for any official course interactions here (these are my personal views, which don’t necessarily reflect those of anyone else on the course staff).

The reason I’m not willing to use Piazza is their business model is based on surveillance of students and monetizing the data collected through this is ways that may be harmful to students forced to use it. (Note: I did use it once, cs4414 Fall 2013, and can talk more about that separately than I will here.)

Piazza’s revenue model is about selling information it collects about students who use it to companies that might want to hire (or not hire) them as a result of this data. The data that is potentially collected is incredibly valuable for this purpose — not only does Piazza collect the names and email addresses of students, it also leans all the classes they are in (at least for the classes using Piazza), as well as when they work, how often they ask questions, the contents of the questions they ask, when they answer questions, and how often and at what times they view any course materials posted there.

You can read their privacy policy here: https://piazza.com/legal/privacy.

Among other high(low)-lights:

“When you use our website, we collect and analyze information such as your IP address, browser types, browser language, operating system, the state or country from which you accessed the Services, software and hardware attributes (including device IDs) referring and exit pages and URLs, platform type, the number of clicks, files you download, domain names, landing pages, pages viewed and the order of those pages, the amount of time spent on particular pages, the terms you use in searches on our sites, the date and time you used the Services and upload or post content, error logs, and other similar information.”

“We use the information that we collect through our Services for a variety of purposes, including the following business and commercial purposes: … notify you in the Services about Events and that may be of interest to you; "

“… We may share or disclose certain information, in connection with or during negotiations of any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.”

(This one should especially scare you, since even if they seem to be behaving mostly responsibly now, in the long run, they either need to find ways to better monetize all the data they are collecting, or to sell out to a company that has less ethical scruples and can monetize it enough to justify the sale price.)

I realize many of your other classes do require you to use Piazza, so you are already providing all this data to them. On the other hand, I don’t feel comfortable requiring you to provide data with these risks to participate in a class that I have influence over.

Beyond the privacy policy, you should also be aware who owns the content you post on Piazza and what limits there are on how it is used. Namely, from their Terms of Use:

By posting User Content on or through the Service, you grant Piazza a worldwide, irrevocable, perpetual, non-exclusive, transferable, royalty-free license (with the right to sublicense) to use, copy, reproduce, process, adapt, modify, publish, transmit, display, distribute, and otherwise exploit such User Content in any format or medium now known or developed in the future, in order to provide the Service subject to applicable law and our Privacy Policy.

I want my course materials to be used openly, and this is the reason for using the Creative Commons BY-NC license on nearly everything that I have control over. You should also think about the intellectual property value of anything you contribute to a course (and I do hope many students produce things of value), and whether you want a for-profit company to have an “irrevocable, perpetual” license to do anything they want with them.

But how is this different from Google/Github/Discord/Slack/etc.?

At some level, the entire Internet ecosystem we use operates under similar business models, so how can I justify requiring students in this class to use Google (forms), Github (owned by Microsoft, to access the course website), and Discord?

It is definitely difficult to figure out exactly where the line should be drawn. I know someone who refuses to use any Internet service that requires an account, but I’m not able to be that principled.

The main difference I see is that none of the ways we use those services are tied what you do in the course as much as Piazza would be. In theory, Google, Microsoft, and Discord could find ways to extract the data they can collect on students in this class to create profiles to sell to recruiters. But, this would be highly unlikely since it isn’t their business model. (In Google’s case since all UVA students are required to use their email, I believe, the additional information they get from your course website accesses is unlikely to put you at increased risk over what they can already extract from your email). Discord’s business model isn’t clear yet, so this does raise some concerns, but I think it is still fairly safe (at least relative to what is already known about Piazza).

I don’t have any problem with Piazza’s original business plan, which was to be a service for students to use to help each other and have their own discussions (assuming they would be transparent and honest about the data they are collecting and what they would do with it, and students would join knowing these risks). But, this didn’t work — the only way to get enough students on the platform was for courses to adopt it officially (but based on instructors deciding to use it, not their universities, who would have needed to do a privacy and legal compliance audit on Piazza before doing this), and for course staff to use it as a required platform for courses. So, if students want to set up a Piazza forum for this course themselves as a totally optional way of discussing topics without any involvement of the course staff, I have no objection to that.

What should students do if they are now uneasy about Piazza collecting dossiers on them?

My suggestions would be, if you are uncomfortable with the data Piazza will collect about you and how it could be abused as a requirement for participating in a course, to first raise that with the course instructor for classes using Piazza. There may be ways to participate in the class without using it, or a way to use a temporary, fake identity for Piazza with the course, that is not tied to your main email adress or the identity you have at UVA.

If none of these work, I would encourage you to still use Piazza without worrying about the implications of the data it is collecting about you when you ask or answer questions or access course materials, since the benefits of interacting fully with a course still outweight the downsides of providing that data to Piazza.