summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/umich/f23_wrapup.md456
-rw-r--r--docs/umich/img/f23_wrapup/badapple.pngbin0 -> 292407 bytes
-rw-r--r--docs/umich/img/f23_wrapup/tigerente.jpgbin0 -> 202672 bytes
-rw-r--r--docs/umich/index.md1
4 files changed, 457 insertions, 0 deletions
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
+
+<details markdown="1">
+<summary>Warning: MASSIVE infodump</summary>
+
+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.
+</details>
+
+#### 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
--- /dev/null
+++ b/docs/umich/img/f23_wrapup/badapple.png
Binary files 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
--- /dev/null
+++ b/docs/umich/img/f23_wrapup/tigerente.jpg
Binary files 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)