From fcca1a4b10a609e7bb3e8a1b74bf614fae971a9c Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Mon, 18 Dec 2023 20:07:52 -0500 Subject: New post: umich/f23_wrapup --- docs/umich/f23_wrapup.md | 456 ++++++++++++++++++++++++++++++++ docs/umich/img/f23_wrapup/badapple.png | Bin 0 -> 292407 bytes docs/umich/img/f23_wrapup/tigerente.jpg | Bin 0 -> 202672 bytes docs/umich/index.md | 1 + 4 files changed, 457 insertions(+) create mode 100644 docs/umich/f23_wrapup.md create mode 100644 docs/umich/img/f23_wrapup/badapple.png create mode 100644 docs/umich/img/f23_wrapup/tigerente.jpg diff --git a/docs/umich/f23_wrapup.md b/docs/umich/f23_wrapup.md new file mode 100644 index 0000000..c1cd6b1 --- /dev/null +++ b/docs/umich/f23_wrapup.md @@ -0,0 +1,456 @@ +# Fall 2023 wrapup + +2023-12-18 + +My first semester at UMich is over, so here's my review. + +## Course review + +### EECS 370 + +Rating: __4.5 / 5__ + +Theme: computer organization and (micro)architecture + +#### Instructor (Mark Brehob) + +Pros: + +- Tons of experience, both industrial and academic +- Knows everything +- Is furry-inclusive + +Cons: + +- Talks too fast + +#### Things I learned + +- How assembly is written +- How assembly is executed +- Assembler & linker +- Processors + - Single-cycle + - Multi-cycle + - Pipeline +- Cache +- Virtual memory + +I had a headstart with the single-cycle processor thanks to +[nand2tetris](../projects/nand2tetris_1.md) but the pipeline really blew +up my head. It explains why modern computers are so fast while not running +into timing errors all the time. + +Cache and virtual memory, however, are just book-keeping, and make up for +the most boring exam questions. Virtual memory (in the scope of 370) +involves a lot of handwaving. Like, I know what page tables look like. But +who's managing it? Is the TLB part of the ISA? If I wanted to write +a kernel how much work is on my side? So many questions that hopefully +will be resolved in 482 (operating systems). + +#### Projects + +All projects are written in C. + +- p1 + - p1a: assembler (LC2K → binary) + - p1s: simulator (simulates binary) + - p1m: multiplication (write a program that calculates 6203×1429 in + assembly) +- p2 + - p2a: assembler (LC2K → object file) + - p2l: linker (object files → binary) +- p3: pipeline simulator +- p4: cache simulator + +Some argue p2l is the hardest part, but that isn't the case for me. I find +p3 the most difficult in that (a) there's a lot of data shuffled around in +the pipeline and (b) it's the only project I went to an office hour for. + +#### Favorite moments + +- When Mark came in wearing a pointy hat he said was for "ease of + identification in office hours" +- When four people showed up in their fursuits on Halloween and Mark was + like "hey cool can I take a photo afterwards" + +### EECS 281 + +Rating: __3.5 / 5__ + +Theme: data structures and algorithms + +#### Instructor (Marcus Darden) + +Pros: + +- Pretty good at explaining things +- Has a "lecture" playlist that he plays before lecture +- You _have_ to see how long his hair is + +Cons: + +- Sometimes slow + +#### Things I learned + +- How to use C++ STL efficiently +- Big O notation +- Common data structures and how they manage memory + - Vectors & deques + - Binary heaps + - Hash tables + - Graphs +- Algorithms + - Sorts + - Backtracking & branch-and-bound + - Dynamic programming + +VG151 (intro to computer programming) made me hate C++, because what the +fuck is polymorphism anyway. EECS 280 made me not hate it, and 281 made me +kind of like it (for the job it is designed for). In the four projects +I hardly ever inherited a class, or managed memory with `new` and +`delete`. + +My favorite topics are hash tables and dynamic programming. Imagine this: +you've been forced to do your work on those pathetic +flip-out-of-the-armrest desks, and suddenly someone gives you a huge +table. This is what it feels to be given O(n²) space when all you've got +so far is O(n), or worse, O(1). + +Fun fact: Before I took this course, I did not believe hash tables worked +like this. Like, seriously, why are you leaving more than half the buckets +empty?? + +#### Projects + +- p1: puzzle solver with DFS (stack) and BFS (queue) +- p2: priority queue + - p2a: shooting zombies (with `std::priority_queue`) + - p2b: implementing your own priority queue +- p3: bank simulator (`std::unordered_map`) +- p4: graphs + - part a: maximum spanning tree with Prim's algorithm + - part b: fast TSP (traveling salesman problem) at O(n²) + - part c: optimal TSP at O(n!) + +Note: p4b does not require a certain algorithm and is the only open-ended +"optimization", graded on how close your result is to the instructors'. +The instructors don't have an optimal answer either, because that would be +O(n!) and take forever. + +My favorite project is p3, and it is the only project that I got 100/100. +Reason: it's the only project that is something you'd use in real life +applications. Managing a database sort of stuff. + +Project 4 is easier for me than p1 and p2 actually. There's a lot of +nitty-bitty in the latter two. Like output formats and ambiguous +specification. My solution leaves room for improvement, but the 3% or 4% +deduction barely justifies the extra work, so I didn't even bother. If the +projects were better I'd give the course a 4 / 5. + +#### Favorite moment + +- When I wrote a Tampermonkey script that plays Bad Apple!! on the + autograder, shared a video on Piazza, and got 28 "good note"s + +![Piazza note titled "why my autograder playing bad apple" with a video of +Bad Apple!! playing on a 20×20 table, in cells colored red and +green](img/f23_wrapup/badapple.png) + +### GERMAN 103 + +Rating: __5 / 5__ + +Theme: elementary German + +GERMAN 103 is 101 and 102 condensed in one semester, and so it is +_f a s t_. That didn't stop me from slaying it though. + +#### Instructor (Laura Okkema) + +Absolute legend. If you disregard her competence at teaching German (which +she has a lot of), she: + +- is super patient and responsible +- uses postcards, her paintings, or her son's toys to divide class in + teams +- had a dog and a cat when semester began +- saw a dog abandoned on the street and went "oh I'll take her" +- now has two dogs and a cat +- enjoys melodic death metal +- gave us precious feedback regarding profanity usage in German (see [§ + Rollenspiel](#rollenspiel-roleplay) + +The only negative things I have to say about this course: + +- We had to write an essay (~10 sentences long) and memorize it for every + test, which is in my opinion not a productive way to design a test +- Feedback on Aufsätze is often as slow as a week (it's useful though) +- The textbook is hella expensive and MindTap has a pretty bad user + experience + +#### Assignments + +- MindTap (online homework thing which I forgot more than once) +- Arbeitsblätter (worksheets for each chapter) +- 3 Aufsätze (essays) +- Wiederholungsblätter (test reviews) +- Summary of the book »Oh, wie schön ist Panama« by Janosch + +The Aufsätze is one of the only things where I have total creative +freedom, so I abused this privilege. In the first two I wrote about: + +- Das Beamermännchen (little man named Greg who lives in a projector) +- Die Hexe (a witch named Melissa who cast a storm-repelling spell on + a flight) + +My instructor liked the first one so much she printed it out and hung it +on the bulletin board :) + +#### Rollenspiel (roleplay) + +This section is primarily for my own archival purposes. It is not intended +for a general audience, but it's not top secret either. + +tl;dr: My team performed a roleplay and won $200 + +
+Warning: MASSIVE infodump + +The third Aufsatz is a group project, intended to be played out on stage. +I knew immediately what I wanted. + +In the book »Oh wie schön«, on their way to Panama, the bear and the tiger +meet a fox, who "wanted to celebrate his birthday with a goose". (Janosch +18) Innocent as this sounds, an illustration shows the goose lying in the +fox's lap, next to a pot and silverware. The popular belief is that the +goose is the fox's dinner. (Myllynen 26) + +I refuse to believe it, so in my headcanon the fox is _not_ going to eat +the goose. Instead he and the goose are a married couple, having an +argument. They verbally abuse each other in front of the tiger and bear, +triggering a dispute between the latter two (who, in my headcanon, are +a gay couple). + +I pitched my idea to my groupmates, and we went with it. The problem was +I had no way to end it, but Ava suggested we could give life to the +Tigerente (tiger-duck, which the tiger carries with him all the time like +a baby but doesn't talk) and let him settle the argument. + +Now, with a beginning and an end, all we need to do is find a trivial +dispute that could tear not one but two relationships apart. There is zero +description of the fox and goose's life, but there was a lot about the +tiger and bear. The bear goes fishing, and the tiger picks mushrooms. At +the end of the day the bear for both of them. The trivial dispute is then: + +- Tiger is sick of eating fish and mushrooms every day +- Bear is the one who cooks + +Extrapolate this a bit, and we came up with + +- Goose is sick of eating lettuce and potatoes every day +- Fox is the one who cooks + +I believe this is very — almost too realistic. I'm sure food related +breakups happen routinely. What makes this even better is the fact that it +was the fox's birthday, which makes eating the same kind of food more +ridiculous. + +However, we put a fundamental difference between the two duos as well: + +- Bear and tiger are traveling to Panama +- Fox and goose have stayed home for 20 years, despite fox's promise on + their wedding to travel around the world + +Which ends in the latter pair joining bear and tiger on their way to +Panama. + +Now that we have the plot, we churned out a script. We made sure to +sprinkle in two types of humor: + +- Situational, such as the goose saying "I have no hands, I have wings" + when asked why she never cooks"; +- Profanity. + +Yes, vulgarity is how you want the audience to engage. The most famous +German profanity — or perhaps word in general — is Scheiße (shit), but we +didn't end up using it. (This was, however, the first word Laura heard as +she entered the room we were rehearsing in, the moment I knocked over +a soap dispenser.) + +The profanity we used were "Wichser" (wanker) and "Hundesohn" (son of +a bitch, or dog literally, which is anatomically not off base because +foxes are somewhat dog-like). + +One day on the lecture I asked Laura if it was OK to use these two words. +You should see her face as I threw this question. She went through a phase +of "seriously?" and then affirmed that yes, she's OK with it. + +Later, as she wrote feedback for our first draft, she commented on our use +of the two words again. She thinks we should reconsider these words, not +because they're naughty, but because she has better alternatives. + +She argues that Wichser is mostly used among teenage boys, and Hundesohn +is kind of outdated, and used rarely in Germany. In addition, she left us +a paper that discusses animal insults. Like a whole 13 page paper. I have +a theory that, she downloaded this paper long ago and waited for this day. + +She recommends the insult "dumme Gans" (dumb goose), but unfortunately the +insult was actually directed toward the fox, and to call an animal a "dumb +$animal" is like calling a human "dumb human", and weaken the insult. + +We ended up keeping Wichser and Hundesohn, because incidentally bear and +tiger are somewhat teenagers, and the fox is "old" according to the book. +Also, these are pretty famous insults too. This seems to convince Laura. + +We also learned that the best team (or two) would be nominated into +a competition with the other German classes, and the winning team would +receive $200 in reward. That said, I believe we had a pretty good chance. + +Once we had the final script, we went on to do our first rehearsal. Thomas +caught covid and had to join us over Zoom. + +At the same time, I was working on the props. My inner child/engineer +hybrid made this masterpiece: + +![Tigerente made out of cardboard](img/f23_wrapup/tigerente.jpg) + +We had one more session of rehearsal before our class performance. We +couldn't afford full costumes, so we just improvised as best as we could: + +- Ava (goose) brought a feather scarf or something +- Thomas (bear) wore a brown jacket +- I (tiger) wore a yellow T-shirt + +Ryan also brought a butter knife. The guidelines forbid weapons, so it was +plastic. We did our final rehearsal outside of the library. + +On performance day, I brought my Tigerente. Realizing I don't have +a string to pull him with, I used my USB microphone with a clip on one +end. + +The performance went smoothly. The other three groups also did +a spectacular job. Their roleplays were: + +- Rotkäppchen-artig (the little red riding hood with a twist) +- Geistjäger (ghostbusters) +- Fortnite (featuring lines such as „Ach! Ich bin gestorben!“ and a sheet + of paper that just said "GUN") + +Personally I enjoyed Rotkäppchen-artig the most but somehow Geistjäger was +nominated. Oh yeah our play was nominated too. + +The competition was set two days later. That day I learned that the +Geistjäger cast couldn't make it, so Rotkäppchen would be competing with +us after all. The other two competitors were from 102, bringing »der +Froschprinz« (the frog prince, which featured a talking piece of bread) +and »der Urlaub« (the vacation, set in Switzerland, that somehow ended in +a guy suffering diarrhea). + +Right after our performance, I handed my Tigerente to Hartmut (_the_ +German department professor, who starred all the grammar videos) for his +autograph. He agreed. + +After all four groups have performed, we and the professors were asked to vote. +We won, and Rotkäppchen came second. Tied third are the other two groups. + +Absolutely wonderful. +
+ +#### Favorite moments + +- Rollenspiel of course +- When Laura gave us a Kahoot quiz on a Zimtsterne recipe and I was the + only one who got the "convert 150 ℃ to ℉" question right (thanks to + KRunner) and I got a copy of her recipe + +### MUSIC 210 + +Rating: __4/5__ + +Theme: Rap songwriting + +#### Instructor (Deidre Smith, aka D. S. SENSE) + +She's a nice lady who unfortunately missed a lot of lectures due to illness. +Nevertheless, she was nothing but encouraging to every one of us. + +Creativity does not constrain me; language is the barrier. I can sometimes fail +to understand her accent, and I'm not a fluent English speaker when it comes to +rap. I took this course partly to train my spoken English, but it didn't seem +to work that well. (skill issue) + +Every in-person class we would be given 25 minutes to work on a short piece of +hip hop. I abused this opportunity to: + +- rant about NFTs +- write a piece that goes between 7/8, 6/8, and 9/8 time +- ask people in the room to decide on my grocery list + +Anyway, this course gave birth to my first original song, [This Song Will +Uncure Your Depression](../music/uncure-your-depression.md). + +### CHEM 130 + +Rating: __4.5/5__ (relative to my expectations and wishes, which are low) + +I took CHEM 210 two years ago and sucked so much it wasn't even transferable. +I had to repeat it to fill in that hole on my transcript. But here, I almost +know everything, and routinely get full points on the tests. + +There are two hypotheses why I sucked: + +- CHEM 210 is inherently harder than 130 +- skill issue + +I believe both factors are at play. On one hand 210 defintely covered something +extra (entropy and electrochemistry), but on the other at that time I was +a fresh college student who didn't even know how college worked. This course +was chemistry "principles". It's nothing like high school chemistry that's just +"remember this experiment" and "remember that phenomenon". Instead it's built +upon physical and statistical principles, which I did _not_ know at that time. +Now that I've taken a course on electromagnetics and one on statistics, I can +actually understand what's going on with these "dipoles" (they're just two +opposite charges on a stick) and "electron clouds" (they're just probability +density functions). This is why I wonder why this course is so often taken in +the very first semester of college, when it's not a prerequisite for any other +ECE course. In fact, that makes the experience a little like high school +— learning the "principles" without learning the principles of the principles. + +## General comments & concerns + +- I am aware that, as far as infrastructure goes, universities are among the + best places in the US. But even so, there's not enough buses. +- Food too expensive. But not terrible. +- Drinks too expensive. +- The nature is well preserved and air quality is good. +- It snows sometimes which is fun if I wasn't waiting for a bus outside. +- I have to learn to slow down. When I'm walking in a dining hall, my instincts + urge me to hurry up, which is not a good strategy in a place packed with + people carrying plates. +- People here are more welcoming and diverse than expected. I have witnessed + zero cases of xenophobia or racism so far. +- I wanted to get an FCC ham radio license but never got around to. Next + semester I guess? + +## Significant material gains + +- I bought a blåhaj +- I bought a bass +- I bought a laptop +- I got a "Michigan Pride" T-shirt at the drag show +- I got a "Know two ways out" shirt at a fire safety awareness event +- I got an "Arts & Resistance" T-shirt at the Duderstadt gallery +- I bought a second-hand CD of _The Black Parade_ +- I bought two books "just because" and three more for reasons + +## Works Cited + +- Janosch. _Oh, wie schön ist Panama_. Beltz & Gelberg, 1978. +- Myllynen, Milka. "Was schätzen Leser an einem Kinderbuchklassiker? + Aufgezeigt anhand von Kundenrezensionen auf Amazon.de zum Kinderbuch + „Oh, wie schön ist Panama“." Tampere University, April 2019. [PDF + version on + tuni.fi](https://trepo.tuni.fi/bitstream/handle/10024/105532/MyllynenMilka2019.pdf). + Accessed 2023-11-07. diff --git a/docs/umich/img/f23_wrapup/badapple.png b/docs/umich/img/f23_wrapup/badapple.png new file mode 100644 index 0000000..3e33ad3 Binary files /dev/null and b/docs/umich/img/f23_wrapup/badapple.png differ diff --git a/docs/umich/img/f23_wrapup/tigerente.jpg b/docs/umich/img/f23_wrapup/tigerente.jpg new file mode 100644 index 0000000..0c4fe57 Binary files /dev/null and b/docs/umich/img/f23_wrapup/tigerente.jpg differ diff --git a/docs/umich/index.md b/docs/umich/index.md index 4aea3ac..f49071b 100644 --- a/docs/umich/index.md +++ b/docs/umich/index.md @@ -3,3 +3,4 @@ so basically i live in ann arbor now - [Lessons in the US of A](us_lessons.md) +- [Fall 2023 Wrapup](f23_wrapup.md) -- cgit v1.2.3