My UW Experience

UNDER CONSTRUCTION (12/31/20)

FIRST YEAR

(2016-17)

Autumn 2016

ENGL 111: Composition - Literature

ENGR 101: Engineering Exploration

GEN ST 199: University Community

MATH 125: Calculus W/ Analytic Geometry II

PHYS 121: Mechanics W/ Calculus

Winter 2017

AMATH 342: Introduction To Neural Coding And Computation

CSE 142: Computer Programming I: Java (W/ CSE 190: 142 Lab)

PHIL 120: Introduction To Logic

PHYS 122: Electromagnetism

Spring 2017

CSE 143: Computer Programming II: Java

(W/ CSE 390: 143 Honors Discussion Section)

MATH 126: Calculus W/ Analytic Geometry III

PHYS 123: Waves

SECOND YEAR

(2017-18)

Autumn 2017

ATM S 211: Climate Change

CSE 351: The Hardware/ Software Interface 

CSE 391: Software (Linux) Tools

MATH 308: Linear Algebra 

NBIO 490: Computational Neuroscience Seminar

Winter 2018

CSE 333: Systems Programming (C & C++)

E E 215: Intro to Electrical Engineering (Circuit Analysis) (w/ E E 492: Leadership Seminar)

MATH 307: Differential Equations 

Spring 2018

COM 220: Intro to Public Speaking

CSE 311: Foundations of Computing 1

MATH 309: Linear Analysis

Summer 2018

HONORS 230 B: Education Inside Prison & CSE 499 A Research

 

Third Year

(2018-19)

Fall 2018

CSE 332: Data Structures & Parallelism

BIOEN 460: Neural Engineering

DXARTS 471: Mechatronics Art

ENGR 231: Intro to Technical Communication

Winter 2019

CSE 312: Foundations of Computing 2

CSE 369: Intro to Digital Design

CSE 490D: Intro to Accessible Tech & Participatory Design

CSE 490 H1: History of Computing

P BIO 545: Quantitative Methods in Neuroscience

Spring 2019

CSE 371: Digital Design

CSE 461: Intro to Networks

BIOL 130: Intro to Neuroscience

CSE 499 A: Research at Reality Lab

CSE 498 B: Research at Restorative Technologies Lab

FOURTH Year

(2019-20)

Fall 2019

CSE 401: Compilers

CSE 484: Computer Security

PHYS 224: Thermal Physics

CSE 498 B: Research at Restorative Technologies Lab

Winter 2020

AMATH 500: Theoretical Neuroscience Journal Club

CSE 421: Algorithms

CSE 451: Operating Systems

CSE 498 B: Research at Restorative Technologies Lab

PHIL 442: Neuroethics

Spring 2020

CSE 481: Robotics Capstone

CSE 490 W: Wireless Communication

PHIL 345: Moral Issues of Life and Death


spring 2.jpg

FIRST YEAR

2016-17

The day before my first day at UW, I had a casual interview with an employee from Microsoft Enable. He urged me to explore all my interests, so I did. My primary goal was to get admission into the CSE department - but this didn't worry me for most of my first year. I participated in several extracurricular activities (CubeSat, NASA RMC, CSNE Hackathon), but my coursework was just as heavy: intense 16-18 credit quarters. They were lower-level classes, nevertheless - quite a contrast from my second year.


fall.jpg

🍂Autumn 2016🍂

This was my first quarter at UW. I did something risky but fulfilling: I took a full 18-credit courseload with work-heavy courses; however I knew most of the subject material. I still was used to my high school sleep schedule, so I arrived at campus at 8:30 AM almost daily. The quarter went very well - I was satisfied with what I had learned and how I had performed. Most importantly: I joined a FIG (First-Year Interest Group) which helped create several friends I still stay in touch with. We all took the same Math and English class. I created a FB group for all the members, and would reserve large rooms for almost weekly study sessions (we would mostly focus on math). I began participating in the UW Satellite Team's Command and Data Handling subsystem and became the electrical lead for UW Bothell's Trickfire Robotics for the NASA Robotic Mining Competition.



ENGL 111: composition - literature

"Study and practice of good writing; topics derived from reading and discussing stories, poems, essays, and plays."

Read the following portfolio component I made a little while ago on this class. It contains a couple works. 


ENGR 101: Engineering Exploration 

"Presentations and discussions on topics of current interest in engineering. Explores various areas of engineering research, engineering disciplines, and the relevance to today's students."

In this class, we would have professors and industry alumni come present their work. We would submit small paragraphs exploring the topic before and reviewing the topic after the presentation. We also had "passport" assignments due at the end of the quarter which all had their own topic related to exploring the engineering community at UW. Here is an example of something I submitted: Passport_Community.pdf . Although it was sleep-inducing at times, it was fun and enlightening. 


GEN ST 199: University Community

General Studies 199 (GEN ST 199) is a two-credit hour course which serves to create learning communities for students new to the University of Washington and provides information about university, co-curricular, and academic resources. Through class interaction and activities, this course will help you navigate the UW, begin to identify your campus community, and engage in classroom discussions with a small group of peers; establishing skills that will help you to be successful at the UW

There isn't much to be said about this class, for we only met once a week. However, it was a great experience getting to know all my FIG members. I remember we wrote a letter to ourselves; I have the letter still in my possession, and plan to read it at the beginning of my senior year. One memorable thing we did was go to the international district and explore the area with a small group. We also had some small homework assignments similar to the Engineering Exploration ones, such as this one: Mapping_Response.pdf . 


MATH 125: Calculus w/ Analytic Geometry II

"Second quarter in the calculus of functions of a single variable. Emphasizes integral calculus. Emphasizes applications and problem solving using the tools of calculus."

My first math class at UW: not bad. It was centered around integrals, which I already had a bit of experience with. I would organize several study sessions with my FIG (as seen above), and we would effectively help each other out on homework assignments. Our TA, David, was excellent and both lecture and quiz sections were effective. Although I knew most of the course content in high school, I didn't understand integration to such depth until after I'd taken this course (thus I'm glad I didn't skip it like most of my friends from high school). 


PHYS 121: Mechanics w/ Calculus 

"Basic principles of mechanics and experiments in mechanics for physical science and engineering majors. Lecture tutorial and lab components must all be taken to receive credit."

This is the first of the physics series I took this year, and it had a VERY intense workload. By this, I mean on a weekly basis we had these assignments: 

  • Pre-lab (due digitally by Sunday night)

  • Pre-tutorial (due as a digital survey by Sunday night)

  • 3 Pre-lecture quizzes (one before every lecture on certain chapters - they were not easy - due digitally)

  • The lab section

  • The tutorial section

  • Tutorial HW (due physically on paper by Monday 3pm)

  • Post-lab (due digitally by Sunday night)

On top of this, we had 3 midterms! It was ridiculous, but I pulled through. The concepts weren't too difficult, but the workload was and it ensured that I knew the material well. I kept with Professor Tolich through the next two quarters; he continued to be an excellent lecturer and adviser for physics topics within and outside the scope of the class. The next two quarters also had the same workload with one wonderful exception: we would have 2 midterms instead of 3. 


schedulememe.png

❄️Winter 2017❄️

Although I thought I'd take less than 18 credits this time, lo and behold, I did just that. Again, although it was an 18-credit schedule, it was fine for the same reason as last quarter: I knew at least half of the content to a decent extent, at least for CSE 142. I really wanted to continue with MATH 126, but the class was filled. Anyways, this was one of my favorite quarters at UW.



AMATH 342: Introduction to neural coding and computation

"Introduces computational neuroscience, grounded in neuronal and synaptic biophysics. Works through mathematical description of how neurons encode information, and how neural activity is produced dynamically. Uses and teaches Matlab as a programming language to implement models of neuronal dynamics and to perform coding analysis."

This was one of the most interesting classes I've taken at UW so far. Here's the website link: http://faculty.washington.edu/etsb/AMATH342/ . This class immensely contributed to my skills in data analysis and how to use Matlab and Python to perform that data analysis. Taking this class alongside PHYS 122 was perfect because we were simulating an RC response of a neuron during our biophysics unit while I was learning RLC circuits in physics. Eric-Shea Brown was a wonderful professor. Read the following portfolio component to see my work.

Aside: I made that meme featuring the TA and submitted it with my last homework assignment. 


CSE 142: Computer Programming I: Java (w/ CSE 190: 142 Lab)

"Basic programming-in-the-small abilities and concepts including procedural programming (methods, parameters, return, values), basic control structures (sequence, if/else, for loop, while loop), file processing, arrays, and an introduction to defining objects. Intended for students without prior programming experience."

I don't have much to say about this course other than I covered most of the content in high school, but not to this depth, and therefore got a pretty decent grade. I decided to take this course as opposed to CSE 143x (the accelerated course which covers both 142 and 143) because I hadn't done much Java within the past year. Also, I wasn't used to the style guide which UW abides, since my high school programming teacher enforced a very loose, casual style. Generally, I did well on the exams (adjusting quickly to the style) and got 88% on exams (missing points on the smaller/ more technical errors). Homeworks were consistently and quickly aced.


PHIL 120: Introduction to Logic

"Elementary symbolic logic. The development, application, and theoretical properties of an artificial symbolic language designed to provide a clear representation of the logical structure of deductive arguments."

This was the one course I've felt that I had the most "success" with. I wouldn't call it an easy 4.0, but I found propositional and predicate logic proofs to be genuinely fun and would practice them - following along with extra exercises in the book and reading it all the way through. This resulted in me basically acing the entire course (aced one exam, lost one or two points on the second midterm and final combined, and aced homework). The final was unlike any other final I had ever had. It wasn't easy, but I felt as if I knew the answer as soon as I finished reading the problem, and all I had to do was guide my hand to reach the solution. 


PHYS 122: Electromagnetism

"Covers the basic principles of electromagnetism and experiments in these topics for physical science and engineering majors. Lecture tutorial and lab components must all be taken to receive credit. Credit is not given for both PHYS 115 and PHYS 122. Prerequisite: either MATH 125 or MATH 134, which may be taken concurrently; PHYS 121."

The same assignment structure as last quarter's physics class, same professor, but now we have two midterms instead of three. I had two other friends who would sit next to me in lecture, and we'd keep each other awake by actively participating in the class and having fun. Every Wednesday afternoon, I’d finish up the homework in the physics study center; after finishing, I’d help others with the same questions. The most fulfilling part of the course was figuring out what was deemed the hardest homework problem all on my own, then explaining the method to others alongside the professor.


spring3.jpg

🌸Spring 2017🌸

This quarter was HELL. I took the final of the weed-out courses: MATH 126, PHYS 123, and CSE 143 w/ honors section. On top of this, I spent the quarter helping build the NASA RMC robot; and spent Week 9 of the quarter in Florida averaging 2 hours of sleep per night whilst doing my schoolwork.


CSE 143: Computer Programming II: Java


(w/ CSE 390: 143 honors discussion section) 

Constructing my own grammar

"Continuation of 142. Concepts of data abstraction and encapsulation including stacks, queues, linked lists, binary trees, recursion, instruction to complexity and use of predefined collection classes."

The content of the course, in terms of sections, subject material, and assignments, was wonderful. The exams and grading were the worst. Many students agree. I don't have much to say about this course. Like the last course, I basically aced all the homework assignments and did so quickly; I did poorly on the time-crunched paper exams. The honors section was basically Professor Reges talking about material from the book Godel Escher Bach, introducing us to topics we’d learn later (directed graphs, cryptography), and talking about himself. 


MATH 126: Calculus w/ Analytic Geometry III

"Third quarter in calculus sequence. Introduction to Taylor polynomials and Taylor series, vector geometry in three dimensions, introduction to multivariable differential calculus, double integrals in Cartesian and polar coordinates."

I had the best TA to-date (update: I ended up having a better TA next year, but it’s not fair to compare the two, both were outstanding) and the exams the professor gave were unnecessarily computationally intensive - resulting in low midterm averages. I got a 95% on the final, however, which saved my grade for the course. Concepts like cross products became far more intuitive.


PHYS 123: Waves

"Explores electromagnetic waves, the mechanics of oscillatory motion, optics, waves in matter, and experiments in these topics for physical science and engineering majors. Lecture tutorial and lab components must all be taken to receive credit. Credit is not given for both PHYS 116 and PHYS 123. Prerequisite: either MATH 126 or MATH 134, which may be taken concurrently; PHYS 122."

Same structure, same teacher, a lot of varying material and several nights doing homework. While taking PHYS 122, I would stay an hour after I had just finished my Wednesday homework at the study center to help fellow classmates confused by the same problems I had just overcome. Deriving my techniques from Richard Feynman, I was able to articulate my findings and methods to my classmates as effectively as my physics professor at the study center - for I was able to share their misunderstanding. I continued doing the same for this course. Here are some videos from lecture: 

Diffraction pattern from lab.


 
lake_2.jpg

SECOND YEAR
2017-18

I was rejected from the CSE department over the summer application period. The advisers told me that the sole weakness in my application was that I wasn't able to demonstrate my ability to perform well in CSE coursework - given that they've only seen my performance in 142 (good) and 143 (terrible). With exception to helping out here and there and attending a few events, I restricted myself from extracurricular activities and anything that would risk thinning my effort. Coursework, especially CSE coursework, was a priority this year. Moreover, instead of taking 18-credit quarters, I took 12-credit ones. It was difficult - I cannot do only coursework, lest I lose my sense of purpose. But, it was worth it: after performing well in CSE 351 and 333, along with excellent MATH 308/ 307 grades, I got into the department the following (Spring) application.


fall.jpg

🍂Autumn 2017🍂

After getting rejected from the CSE department over the summer, the advisers told me that the sole weakness in my application was that I wasn't able to demonstrate my ability to perform well in CSE coursework. Therefore, I petitioned into a majors-only course, and made that the sole focus of this quarter.



ATM S 211: Climate Change

"The nature of the global climate system. Factors influencing climate including interactions among the atmosphere, oceans, solid earth, and biosphere. Stability and sensitivity of climate system. Global warming, ozone depletion, and other human influences. Intended for nonmajors."

This was an excellent course - I learned the fundamentals of feedback loops and the role they played in global climate change. In addition to learning about climate change in general, there was also a chapter on policy; ultimately: not too broad, but not too specific either, so it was well-designed for non-majors like me. The course was well-structured too, making it easy to study between lecture slides and textbook content. 

Getting bored in lecture part 1

Getting bored in lecture part 2


CSE 351: The Hardware/ Software Interface

"Examines key computational abstraction levels below modern high-level languages; number representation, assembly language, introduction to C, memory management, the operating-system process model, high-level machine architecture including the memory hierarchy, and how high-level languages are implemented. Prerequisite: CSE 143."

Results I saved from a lab where we had to figure out simulated caches' parameters.

Like I had stated before, this class was the focus of the quarter. Professor Justin Hsia was excellent, as was the course structure. There were office hours almost always available, and the course made it easy to study hard. The topic was something I had some experience with from playing around with embedded systems, so the first few weeks were chill; however, this course did require a ton of work, spending every Wednesday or Thursday working on the labs; these labs were puzzles that required creative and investigative thinking, as opposed to rote, computational problems on the other end of the spectrum.

 

CSE 391: Software (Linux) Tools

"Introduction to tools commonly used in software development. Topics include using a command-line interface, writing scripts for file and string manipulation, managing user permissions, manipulating text with regular expressions, using build-management tools, and using version-control systems. Prerequisite: CSE 143. Credit/no-credit only."

This was a chill 1-credit course which I loved because I had no idea what people were doing with computers when they were on a terminal. This was a tools-based class, and taught me how to use a computer well. 


MATH 308: Linear Algebra 

"Systems of linear equations, vector spaces, matrices, subspaces, orthogonality, least squares, eigenvalues, eigenvectors, applications. For students in engineering, mathematics, and the sciences. "

Without a doubt the best course I have ever taken, with the best professor I've had to date. Vasu Tewari is an excellent professor: energetic, insightful, quick, accessible, and extremely caring. Unfortunately for us, he's leaving UW to be a professor at UPenn, I wish him luck! Anyways, the course content taught by Vasu was some of the most interesting, thought-provoking content I've learned. Linear Algebra is genuinely fun and enjoyable. The focus of the course was that matrices are linear transformations and vice versa; it taught me that things can be solved by viewing them in different ways. For example, a problem can be impossible to solve by a human if thought as matrix multiplication, but can be possible by thinking of it [visually] as linear transformations. Here are some of my favorite questions from the quarter, and their thoughts from Vasu: 

As you can see in the picture, Vasu gave clear explanations with enthusiasm. Additionally, Vasu also linked us to a channel called 3Blue1Brown to supplement the course with visuals; this channel is probably my favorite educational Youtube channel currently. The series, "Essence of linear algebra," is described eloquently by the introduction video below. The image on the lower right is taken from, and linked to, a favorite moment whilst learning linear algebra. 

Review session

Review session

By 3Blue1Brown

By 3Blue1Brown


NBIO 490: Computational Neuroscience Seminar

"Supervised readings and group discussions in computational neuroscience. Credit/no-credit only."

This course ultimately motivated me to pursue the computational neuroscience minor. The class schedule and presentations were as listed below. After each presentation, we would have a write-up due before the next one; each write up involved a one-page summary and summary/ basic analysis of one of the speakers' research publications. In my application for the minor, I said “each seminar left me feeling inspired - despite how I was feeling before. Every single lab project presented was precisely the stuff I would dream about doing in college as a child.” 

11/3   Tom DanielLearning from flight

11/10 No class: Veteran’s Day

11/17 Bing Brunton: Big data approaches in neuroscience

12/1  Fred Rieke:  Deciphering the retina

12/7   Beth BuffaloAttention and learning

9/30   Adrienne Fairhall:  Coding principles in sensory systems

10/6    Eric Shea-Brown: Math in neuroscience

10/13  John Tuthill: How the brain keeps track of the body

10/20  Merav SternLearning in mice & models

10/27   Chet MoritzBrain-computer interfaces


bus.jpg

❄️Winter 2018❄️

Through succeeding in CSE 351, I made some good CSE reject friends: Yokesh and Avnish. We would continue to take the next-level class in that subject: CSE 333 (for which 351 was the only prerequisite). Winter grades don’t officially factor into the admissions process for the next application cycle, but extreme test grades (really good or really bad) do make an impact; so, we took the risk, and formed the CSE 333 Idiots gang. We also all took EE 215 with a wonderful professor; I also took a seminar on EE in industry, and differential equations. These three STEM classes, despite being a few credits, were intensive.


CSE 333: Systems Programming (C & C++)

"Includes substantial programming experience in languages that expose machine characteristics and low-level data representation (e.g., C and C++); explicit memory management; modern libraries and language features; interacting with operating-system services; introduction to concurrent programming. Prerequisite: CSE 351."


E E 215: Intro to Electrical Engineering (Circuit Analysis) (w/ E E 492: Leadership Seminar) 

"Introduction to electrical engineering. Basic circuit and systems concepts. Mathematical models of components. Kirchhoff's laws. Resistors, sources, capacitors, inductors, and operational amplifiers. Solution of first and second order linear differential equations associated with basic circuit forms. Prerequisite: either MATH 136, or MATH 126 and either MATH 307 or AMATH 351, either of which may be taken concurrently; PHYS 122. "

EE 492: "Weekly seminar with program alumni presenting their workforce experience, demonstrating the depth and breadth possible in the field and best practices. Credit/no-credit only"

John Sahr is an amazing professor, and taught the course well. I felt like I was in high school again rapidly learning chemistry/ biology from Mr. Emery. One reason for this - aside from Professor Sahr’s way of instilling curiosity and explaining concepts intuitively and step-by-step - was the way Sahr graded/ structured the course. Everything was take-home: the two midterms and the final (in addition to the labs & homework). The average was graded very highly (like 3.8/ 3.9) because everyone did well. There was no need for a high-curve in this course, there was no need for a weed-out process. Yes, it’s true that some “slackers” could have earned some grade they didn’t deserve; but the vast majority of us learned a good number of concepts very thoroughly without much stress; and it was not at all easy - this course required tons of work and studying. Also, I had an extremely adept TA - Alvin Cao - who would bring real applications of the concepts being taught, and would hold very helpful extra office hours.


MATH 307: differential Equations 

"Introductory course in ordinary differential equations. Includes first- and second-order equations and Laplace transform."

This course was far more like MATH 126 than MATH 308 - more computationally intensive (computing integrals and derivatives). Few parts of the course were solely "conceptual." The focus of the course, however, was not calculation; the course focused on the modeling applications of the differential equations: first-order ODE models (Newton's law of cooling, interest, etc...) and second-order ODE models (damped oscillations, Laplace transform). My favorite part of the course, undoubtedly, was understanding how the equations representing oscillations worked - how we can differentiate between the transient and steady-state solution - and how we could use Laplace transforms to almost magically compute these models. It was also the last part of mathematics covered by Khan Academy, so I had to say farewell to Sal Khan for mathematics, for now. The course was taught by a graduate student, who's only taught 126 section before, so some things were a bit rocky (extremely long homeworks, impossible timed quizzes). However, he was very open-minded - even having a mid-quarter survey - and improved accordingly and effectively. 


sp18-cover.jpg

🌸Spring 2018🌸

This was my first quarter as CSE major, and my goal for the quarter was to do well in CSE 311 and finally relax. It was still difficult, but I didn’t have to keep on worrying if I was good enough to get into the department; and as far as I remember, I got a decent amount of sleep. I even did a bit of running with Husky Running Club.


COM 220: Intro to Public Speaking

The course objectives are deceptively simple: By the end of this quarter, you should be able to compose and deliver a clear, convincing, and compelling speech on a public issue using solid evidence. In service of this goal, we will study the principles of argumentation and arrangement, critically examine our own speeches and the speeches of others, and practice, practice, practice. This course thus advances the mission of the Department of Communication to nurture socially responsible, literate citizens who can interpret and evaluate the images and messages they create and receive.

220-1.jpg

This course was one of my favorites at UW; given by the description above, delivery was not that important. I realized I’m honestly a pretty good speaker. The class consisted of three assignments:

  1. Impromptu Speech: 5 minutes of preparation on a relatively random topic followed by a 4-5 minute speech. All topics are initiatives related to UW, with statements like “The UW shouldn’t fund an ORCA card for every student,” or “The UW should not grade on the curve.” I believe I got a topic like the latter example. The speech went well.

  2. Ceremonial Speech: 5-7 minute speech praising a person, event, or organization. I chose to speak on the anniversary of Apollo 13. I jammed a lot of information into my transcript, and my speech was on-time but extremely dense/ fast-paced.

  3. Advocate Speech: 5-7 minute speech at Red Square advocating for some cause. I chose to advocate against hostile architecture, and called my audience to label hostile architecture with “design crime” stickers, and spread the word. I put an immense amount of care into my speech. I ordered the stickers, and since they would come late, I made a website component and a corresponding QR-code handout card for my audience to enter their address and get the stickers mailed to them for free. I went to a conversation on homelessness at the UW School of Social Work. I constructed my transcript with font variations indicating pauses and volume changes and gestures towards specific objects in Red Square. Delivering the speech was one of the most passionate moments of my life; I was literally screaming at the audience during the height of the speech. The speech went so well that the professor emailed me over the following summer, asking permission for my transcript to be used as an example of a good speech. Unfortunately, I was so in-the-moment that day I forgot the record the speech, but I hope to participate in Toastmaster’s clubs in the future, and continue being an effective communicator.

 

CSE 311: Foundations of Computing1

Examines fundamentals of logic, set theory, induction, and algebraic structures with applications to computing; finite state machines; and limits of computability.

The image below is a picture of scratch work I did in a problem involving Strong Induction and modular arithmetic. As soon as I finished and celebrated the completion of what was possibly the most difficult homework question, everyone started taking photos of my work and copying it down on their papers. I had to put a note on my final write-up about this, so that I didn’t get accused of plagiarism. Anyways, 311 was a great course, and given my exceptional performance in PHIL 120: Intro to Logic, this course wasn’t too difficult. I had a great time learning beyond my basic understanding of propositional and predicate calculus.

311-1.jpg

MATH 309: Linear Analysis

First order systems of linear differential equations, Fourier series and partial differential equations, and the phase plane.

A combination of linear algebra (matricies and linear systems) and differential equations, this course was strenuous and painfully in-depth. Homeworks would take 20+ pages filled with confusing calculations; concepts took a far longer time to become even remotely intuitive. Despite the absolute difficulty of the course, it was satisfying being able to understand most of the concepts, and being able to practice for and complete well-made exams which weren’t too easy and weren’t too hard. I had no requirement to take it, just like I had no requirement to take PHYS 123, but did so to finish-up the MATH 300X series and see more beauty resulting from linear algebra. Professor Sahr, during a chat on the way to class, recalled how a course with this content revealed some of the most beautiful math he’d learned to date, which inspired me to continue through this rough but rewarding course.


su18.jpg

☀️ Summer 2018 ☀️

Instead of doing an internship, I found an opportunity to combine two interests of mine: virtual reality, and prisons. I did this through research at the Reality Lab, and through a class which involved collaborating with inmates on projects. The following winter, I’ll be continuing this work.

HONORS 230 B: Education Inside Prison & CSE 499 A Research


wi182.jpg

THIRD YEAR
2018-19

I was in the department now; and I also got into the Undergraduate Training Program for Neural Computation and Engineering. All I had to do now was proceed with the core computer engineering graduation requisites, and prepare for research. Meanwhile I began getting back into sports, and after an extremely difficult first couple quarters, I finally moved out and closer to campus, where life became far easier.

au18.jpg

🔥🍂Autumn 2018🍂🔥

This quarter was logistical HELL. It was unlike any previous quarter I’d taken. Monday and Wednesday nights, I’d have jiu jitsu practice at the IMA (which would end at 10:30 PM). Tuesday and Thursday mornings, I’d have mechatronics art, which took place at the UW Ballard Fab Lab 4 miles away from campus. Even with the most efficient scenario, if I went back home, I would get a maximum of 6 hours of sleep, most likely 5 or less. So, I had to stay overnight near campus (I slept on a couch at a gracious friend’s house) to get a sufficient amount of sleep. I had to bike to and from the fab lab (sometimes I’d take the bus); sometimes I’d stay overnight at the CSE building/ fab lab. In addition to that, I made a commitment to volunteer at the food bank, but that only lasted for a few shifts before I was unable to continue. I was away from home more than I was at home; I had never experienced that before. However, UW now feels like a home to me.

The unique part of this quarter is that, although a decent bit of learning took place, most of it was executing logistics: moving from one place to another quickly; packing, carrying, and unpacking efficiently; developing the most efficient procedures for showering and eating and drinking and sleeping. It was exhausting, and helped me understand things coursework couldn’t.


Survival 101: Getting through Autumn 2017 (*not an actual class)

In order to survive the quarter, I acquired:

  • A junk bike; affordably added a new bike seat, bike rack, head/ tail lights, and lock

  • A bike house (for parking the bike overnight)

  • A locker in the CSE/ EE basement

  • Sleeping equipment: pillow, blanket, sleeping bag

  • Carrying equipment: gym bag, 2 similar-sized over-the-shoulder carry bags, a few different backpacks, lunchbox, packing cubes for three sets of clothes in the gym bag: second day set, gym set, and sleep set.

  • Food: 2 boxes of rice and meat (thanks to mom) carried every other day, campus food (Caribbean chicken, Vietnamese sandwich), an emergency stock of food (canned meals, top ramen, spam, tuna, canned chicken breast), various fruits stocked around weekly. I’d store these in the refrigerator or in my locker. Don’t forget Clif bars - a commuter’s necessity.

  • Food utensils: plate, small plate, bowl, fork/knife/spoon

I would shower after jiu-jitsu practice, and in the morning before class, at the CSE basement showers. If you’re bald, you could be in-and-out of the shower in ten minutes. If you have hair, like me, it’ll take closer to 14-15 minutes. My fastest time was 14 minutes in-and-out.

After jiu jitsu (8:30 PM to 10:30 PM) and showering (11 PM), I’d eat in the CSE building, pack sleeping materials, get on my bike, and nightride over to Nick’s with my sleeping bag (12 AM). In the morning (7:50 AM), I’d coast down back to the CSE building (8:10 AM), shower & brush (8:40 AM), and leave to mechatronics class (9 - 9:30 AM). This would happen every Monday night to Tuesday morning and every Wednesday night to Thursday morning.


CSE 332: Data Structures & Parallelism

Covers abstract data types and structures including dictionaries, balanced trees, hash tables, priority queues, and graphs; sorting; asymptotic analysis; fundamental graph algorithms including graph search, shortest path, and minimum spanning trees; multithreading and parallel algorithms; P and NP complexity classes.

This course, I believe, is considered to be the main course of most CSE programs; it contains most of the content contained in software engineering interviews.

The class entailed 3 projects (plus a few exercises), which I did with my project partner and friend (who also introduced me to Brazilian jiu jitsu) Colin:

  1. Zip: Implementing the fancy data structures involved in file compression.

  2. uMessage: Implementing word suggestion, spelling correction, and autocompletion in chat messengers.

  3. Chess: The core project of the class: building a chessbot using parallel algorithms.

The culminating project of a chessbot was quite a challenge. We were introduced to a Minimax algorithm, with its parallel version, as well as an optimizer called “Alpha-Beta Pruning,” with its parallel version; then, in order to defeat some of the better chessbots, we had to make some more optimizations such as iterative deepening and move ordering. We ultimately utilized cloud computing to maximize our performance and beat one of the harder bot opponents.

An interesting bug arose when implementing MVV-LVA (most valuable victim, least valuable aggressor) move ordering. The way I vaguely remember this optimization working is that when considering all the moves, you can consider them in a certain order so that you’re able to consider better moves first and move on. The better moves are usually those which utilize the last valuable piece on your side and capture the most valuable piece on the opponent’s side. It was rather simple to implement, but it was having a seemingly negative effect on our performance. I looked at the code countless times: it was only a few, simple lines to sort the move objects, and it made so much sense. All I did was implement a comparator for the move object to define which move was considered more or less valuable, then applied a standard library sort to it.

Several TA’s spent hours stepping through debugging the code, delving into files underneath our implementation and placing breakpoints in layers of the code we wouldn’t ever get close to touching or editing. In the end, one of the best TA’s I’ve ever had, Ollin, hopped on by. We explained the issue to him, and he said, while chewing a Clif bar, “just flip the list.” We explained to him that we’ve all taken a look at how the list is sorted and it logically makes perfect sense. He replied something along the lines of “well, if there are only two possibilities, and you’ve eliminated everything you’ve thought of, just do it.” We did, and it worked. You see, the list was sorted from least to greatest: from least valuable move to the most valuable, when we should be looking through it the other way around! That moment taught me an extremely important lesson that’s saved me hours of debugging: regardless of whether or not something might make sense, if there’s only a handful of possibilities to try, just try them!


BIOEN 460: Neural Engineering

bioen-1.jpg

Introduces the field of Neural Engineering: overview of neurobiology, recording and stimulating the nervous system, signal processing, machine learning, powering and communicating with neural devices, invasive and non-invasive brain-machine interfaces, spinal interfaces, smart prostheses, deep-brain stimulators, cochlear implants and neuroethics. Heavy emphasis on primary literature.

This course was basically like a seminar but more involved: we had reports due each week summarizing and analyzing papers in various areas of neural engineering. It gave me a much better view of neural engineering, and helped get me to where I am today: helping build the spinal stimulators in the Restorative Technologies Lab. It also gave me a better introduction into neuroethics, which is a class I took later in my senior year.




DXARTS 471: Mechatronics Art

Part one of a two-quarter sequence exploring the world of physical computing, creative coding and digital fabrication for art and design projects. Provides hands-on prototyping with digital/analog electronics, experimenting with interface design and programming with Arduino and Processing for the creation and control of interactive objects. The students will engage with the use of smart materials and learn to create their own sensors and actuators through digital crafting tools (such as laser cutters, cnc routers and 3d printers), as well as learn to conceptualize and fabricate responsive environments. Emphasis will be made in the use of mechanics and real-time interaction for multimedia installations and performances that explore surrounding space, movement and the role of the viewer/user in the creation of immersive experiences in the physical world.

In short, this class is about art that involves electronics. I’ve heavily documented my projects in this course, which I decided to make cumulative instead of separate. The project order is: media archaeology, speculative object, and interface.

On the final day of the class, everything had went well for my presentation, but a friend of mine was having technical difficulties. She was an incredibly talented arts student, and her project involved a makeup table which had a screen as the mirror; the videos on the mirror would show makeup ads of beautiful faces applying the makeup, but the moment one touched any object on the makeup table (all of which were hooked up to capacitance sensors), the videos would instantly switch to heart-wrenching and gruesome videos of animals being experimented on. It worked beautifully, but on the day of the presentations, it just was not working properly.

She did her best to fix it as the class was going around in a circle doing presentations for others’ projects. I did my best to help her, but at some point she gave up and began crying. A relative of hers was also there to view the project, and it was heartbreaking. She insisted that I just give up, but I told her I wouldn’t.

The project entailed communicating between an Arduino - which read the sensor values, and reported a 1 or 0 back depending on the threshold - and the computer - which ran Processing code to display the videos given the 1 or 0. My initial debugging confirmed that the Arduino read the sensors perfectly, and the Processing code, given fake input, would display the corresponding videos properly. The Arduino and Processing code communicated to each other via Serial; upon printing out what was being written and what was being read, it was clear that seemingly random values would be printed out from the read end. However, the random values had a pattern, a form to them which indicated that the read wasn’t reading the proper chunks of the byte stream. There are several different ways to represent a 1 or 0, and there was some asymmetry going on between writing and reading. I re-designed the code, using some example from online, to put all the incoming Serial data into a buffer and read only when we had a whole chunk to read.

I finished the new implementation right before the demo, and it worked perfectly. My friend and the class thanked me, and it was one of the proudest moments of my life.


ENGR 231: Intro to Technical Communication 

Examines basics of researching and presenting technical information for different audiences and purposes. Individually and in teams, students learn to construct document and presentations, following conventions of oral, written, and visual communication. Assignments are grounded in ethical and sustainable engineering practices.

There’s not much to say about this class other than that it was a requirement I fulfilled, and it helped reinforce my poster-designing skills.

 Winter 2019

wi19-1.jpg

❄️ Winter 2019 ❄️

This quarter was dedicated to finishing up some more core major requirements. The new CSE building just opened up, I acquired a Cisco internship after much preparing and interviewing, and things were looking up. Commuting through the snow days, and in general, had become increasingly difficult; this would be the last quarter I commuted from Bothell.


CSE 312: Foundations of Computing 2

Examines fundamentals of enumeration and discrete probability; applications of randomness to computing; polynomial-time versus NP; and NP-completeness.

This class was essentially the statistics class for CSE majors. Before this class, every time I had learned and re-learned intermediate/ advanced probability concepts, it felt unintuitive and shaky; I didn’t get why Bayes’ theorem made sense, and I didn’t understand how multiple dependent/ independent events worked with each other. Before this class, I felt that probability and statistics was my weakest area of mathematics. However, the way the professor taught the class, the order in which concepts were taught, and perhaps the fact that I had grown up now and knew how to learn better, made it such that I left the class feeling like I had a solidly intuitive understanding of probability and statistics that wouldn’t fade quickly as it would before. We first covered counting (combinations, permutations, complementing, etc…), then probability (conditional, Bayes’, Law of Total Probability), Gambler’s Ruin, Naive Bayes Classifier, random variables, linearity of expectation, various distributions, central limit theorem, maximum likelihood estimators, culminating with some more advanced topics towards the end. Bayes’ theorem was absolutely trivial at the end of the class, once I understood that probability was just counting the sizes of sets, some of which may intersect.

A picture from one of the lectures early in the quarter.

A funny meme I made teasing my friend Yokesh about he would be the one to make a worse than n^3 algorithm for matrix multiplication.


CSE 369: Intro to Digital Design

Introduces the implementation of digital logic and its specification and simulation. Covers Boolean algebra; combinational circuits including arithmetic circuits and regular structures; sequential circuits including finitestate-machines; and use of field-programmable gate arrays (FPGAs). Emphasizes simulation, high-level specification, and automatic synthesis techniques.

This was the class which introduced me to working with FPGA’s at the hardware level. The professor which taught this class was excellent (I had him before for CSE 351: Introduction to Hardware/ Software Interface), and emphasized understanding the math of the concepts he taught, such as ensuring proper clock timing (or cache parameters in CSE 351). The culminating project for this class had several options; I chose to build the Frogger game from scratch.

This is the development board we used for the class. The circuit displayed is from the first lab we did, which got us comfortable with the board and physical logic gates.


CSE 490D: Intro to Accessible Tech & Participatory Design

This course should really be titled:

The Goals and Complexities of Designing All-inclusive, Cutting-edge, Technology Solutions.

In this course, we consider the complex relationship between technology and people through the lens of designers and engineers. The course primarily addresses the global issue of equal access to public spaces and to information and communications technology (ICT) by persons with disabilities. We examine the ways in which technology can be both assistive and a potential barrier for diverse populations, regardless of ability or heterogeneous needs, and in that context we will review a host of devices and solutions created to improve quality of life, function and independence for people with disabilities. Additionally, we will explore the role of technology designers and engineers in designing for equity in a technology-laden society, and therein explore the fundamental connection between critical social theory and participatory design. Students are asked to participate in class discussions about the readings, complete short assignments and present their ideas for technology innovations that embody all-inclusive design. This course will prepare students to pursue lead roles in participatory design teams.

This course was pretty alright. I created an accessible website and explored different technical aspects of disability.


CSE 490 H1: History of Computing

In this seminar, students will:

- Review historical milestones, innovations, and papers which have helped shaped the field of computer science.

- Explore different macro- (e.g. 20th century politics, economies, education) and micro-level (course projects, interdisciplinary collaborations between departments, undergraduate research, etc.) factors impacting innovation in the field.

- Think critically about the history of computing as a multi-dimensional network of events and influences, rather than a linear timeline of technological breakthroughs.

- Develop a better understanding of the work that led to the fundamental algorithms, tools, and applications of the core and elective CS courses.

This was one of the best seminars I’ve taken from the CSE department; the origin of computers, or the origin of any manufactured thing for that matter, has always fascinated me. The highlight of the course for me was visiting the Living Computers Museum. I wrote a blog post for my final project about core rope memory:

 

P BIO 545: Quantitative Methods in Neuroscience

Discusses quantitative methods applicable to the study of the nervous system. Revolves around computer exercises/discussion of journal papers. May include linear systems theory, Fourier analysis, ordinary differential equations, stochastic processes, signal detection, and information theory.

A picture of a typical lecture in NEURO 545

In this course, we studied five topics and its applications in neuroscience: linear algebra, differential equations, Fourier analysis, stochastic processes (which lined up well with CSE 312), and principal components analysis (PCA). We spend two weeks on each topic, where we’d to an introduction lecture, a more in-depth lecture with tutorial and discussion, a coding workshop, and a student presentation based on a paper utilizing the method. I helped present PCA, which I was curious about since learning about it in MATH 308. By the way, there’s an incredibly well-done visual at this webpage showing what PCA does, and gives some intuition for how it works. Overall, it was a great course which introduced me to commonly-used methods in neural engineering research, which I’ve been touching upon in my current research.

sp19.jpg

🌸Spring 2019🌸

After much difficulty, I finally moved into my own room in the U-District with the friendliest, smartest, and most responsible roommates I’d ever have. A friend donated their old bike which I modified and used to get around; I’d continue attending BJJ when I could, finishing up the rest of the Computer Engineering Core Requirements, and finally apply to the 5th Year Master’s/ Combined B.S./M.S. program.


CSE 371: Digital Design

Provides a theoretical background in, and practical experience with, tools, and techniques for modeling complex digital systems with the Verilog hardware description language, maintaining signal integrity, managing power consumption, and ensuring robust intra- and inter-system communication. Prerequisite: either E E 205 or E E 215; either E E 271 or CSE 369. Offered: jointly with E E 371.

After taking CSE 369 last quarter, I took this course with my old friend and previous TA for 369, Gavin. This course gave us more freedom (and much more work) in the design and implementation of the solution. We had several homework assignments and labs. Each lab entailed a report with a block or state diagram, description, and simulation test results for each component and the overall solution; ending with a problems faced/ feedback section. The following is a summary of the latter sections:

  • Lab 1: Parking Lot Occupancy Counter

    • Obstacles: Coming up with a simple design for the parking gate FSM. I had a highly interconnected 6-state diagram before reaching my simpler 2-state FSM. It was difficult to come up with my own definition for what should be counted, and what should happen in error cases. After reading the spec several times, I realized that the assumption that the car can only go in one direction after entering the sensors greatly simplified everything. The rest of my obstacles came from implementing the design in Verilog - running into syntax errors frequently.

    • Tips & Tricks: The main piece of advice I took away from this lab is that it’s alright to go through multiple iterations of thinking about starting a lab, and that it’s alright to come up with different definitions and start over. I took several hours to just come up with a simple design, saving me many more hours of dealing with complexity. I’m glad I made the decision to keep drawing FSMs on my whiteboard, take a picture, erase everything, and start over and over again - because it made the end result much simpler with the same functionality.

    • Hours spent: 8

  • Lab 2: Memory Blocks (RAM)

    • Obstacles: There were several bugs I came across, most of which were fixed by going back through the directions.

    • Tips & Tricks: A piece of advice I’d give to myself is to take a break and start over - because some errors in simulation, for example, were simply fixed after I had a new mindset.

    • Hours spent: 8

  • Lab 3: Display Interface (line drawer and animation on monitor)

    • Obstacles: This lab had many, immense obstacles. Overcoming them taught me more than any previous lab did, and I have a lot to say in this section. 

      Random Parallel Lines. At this point in the lab, my testbench had shown that my line drawer worked perfectly. Two TA’s also confirmed that, and there were several wild goose chases trying to figure out what else was wrong. I had spent four hours creating the module which worked perfectly in simulation, and spent more than four hours overcoming just this obstacle. Here’s the result of the error:

Upon programming the board, I would get a bunch of random lines, which happened to be parallel to the one I intended to draw. Then, I noticed (with the help of a TA), that when I press my reset button, the actual line I intend to draw, draws properly. Because of the way I structured my case statements in my line drawer, when reset was 0 (which is what it is when the board is programmed, because I had that hooked up to SW 0), it would skip to the next if statement (which would check if the coordinates x and y equaled x1 and y1 yet, which it didn’t), and it would step into that if statement. Within that if statement was my draw logic. So, my line drawer was taking random, undefined x and y values, and then running off with them in the right direction. Eventually the lines would somehow reach x1 and y1 and stop drawing. So, to solve this, I created a “draw” signal, which would only be set high after a reset. I checked that signal in that if statement which would go into my draw logic, and the obstacle was overcome. Also, it’s funny to note that (0,0) to (319, 239) would draw just fine with the error.

The Blink: My lines would begin to blink after animating. This would result from my x and y not being defined for some period of time. Therefore, I created an “else” statement, such that my x and y would never go undefined (I just set them back to x0 and y0). Then, everything worked well. I underwent countless more obstacles, all of which were solved by properly using the testbench. I would see other students with a truly dazzling variety of errors, and I hope they documented theirs too.

  • Tips & Tricks: I had spent several hours thinking that my line drawer module was perfect and that something else was wrong, because two TA’s and I had verified that my testbench was working perfectly. I checked everything outside of my module, and thought that maybe Quartus interpreted things differently from ModelSim. I tried using different cables, monitors, and boards. I eliminated almost everything else, and I was at a loss for how to proceed. However, my reset was always setting how I wanted it to in the simulation, and that wasn’t the case on the hardware. So, the solution to this is that if something is working properly in simulation, but not on hardware, and that you’ve eliminated all other areas of error, then your simulation isn’t actually mimicking what the hardware is doing. Your testbench isn’t crazy enough, and you need to throw more crazy inputs in your simulation - like weird reset values - to see what’s wrong.

    Another tip is to just be resilient regardless of progress made. I’m fine with debugging a bug whose location is known, and making slow progress towards it. However, with this error, I spent hours not knowing where things were going wrong. After a few hours of more trying failed line after line, I tossed my glasses on my keyboard and shoved my face into my hands, hopeless. Shout out to Ling for seeing that happen, telling me not to give up, and helping me find the source of the bug.

  • Hours spent: 17

  • Lab 4: Implementing Algorithms in Hardware (Datapath and Controller for Binary Search)

    • Obstacles: Switch that was not debounced (knowing this bug helped me a year later in my research) and initial state of binary search wasn’t set.

    • Tips & Tricks: Similar to what I faced in Lab 3, it’s important to stay resilient when facing bugs, even when your simulation is perfect. For the first bug, we were facing a noise issue; yet we spent our time re-compiling the code multiple times using SignalTap, digging for a metastability issue. We faced another similar bug, but it turns out the problem was with our ASM states; we spent time trying to re-implement our (hardware-oriented) fix from the previous bug. Two bugs, same appearance, but located in different parts of our implementation. So, it’s important to not leave any stone unturned. In any case, as the old saying goes: “If it works, it ain’t broke” - Anand Sekar (11 PM on Monday).

    • Hours spent: 11

  • Lab 5: Digital Signal Processing (recording, filtering, and replaying audio)

    • Obstacles: Sample values are signed, not unsigned.

    • Tips & Tricks: Make sure you are careful in selecting the type of a variable. Having an incorrect bit-width that overflows, or treating signed values as unsigned can create significant issues.

    • Hours spent: 9

  • Lab 6: Custom Project - Keyboard Synthesizer

    • Obstacles: Scaling audio samples for the envelope function (multiplying and dividing with large intermediary values) was difficult. We had long compilation times and had to split version control branches and comment out code to develop upon specific aspects of the solution.

    • Tips & Tricks: When developing something, only focus on developing the aspect you’re currently working on, i.e. don’t be bogged down by other aspects of the project. This tip is inspired by our long compilation times, and I think it’s part of the essence of this course: testing out modules before testing out the whole thing. It’s guaranteed to speed up development regardless of what context you’re developing in, but is especially noticeable when compiling Verilog projects.

    • Hours spent: 18


CSE 461: Intro to Networks

Computer network architectures, protocol layers, network programming. Transmission media, encoding systems, switching, multiple access arbitration. Network routing, congestion control, flow control. Transport protocols, real-time, multicast, network security.

This class was taught by none other than John Zahorjan: the same professor with a unique teaching style who taught me CSE 333: Systems Programming. Again, the class was relatively unstructured, confusing, and - quoting the course overview - “murky” - but in such a way that made the repetition of system design patterns more apparent. There were a few main takeaways from the class I solidly remember:

  • The internet, and many other complex systems, are composed of layers - each of which are extremely similar in how they deal with encapsulation/ serialization and encryption.

  • You are seldom guaranteed anything at all (e.g. reliability, privacy, throughput etc…).

It was a project-based course with three projects:

  1. A registration server

  2. An HTTP proxy

  3. A simplified version of Tor

Each project built upon the previous one. One thing I had never faced before is that each project had no specification on what language can be used: you could use whatever you wanted as long as it did what it needed to do. This was especially unfortunate since the only friend I had in the class had a group, and everyone else was buddied up. I third-wheeled each of the three projects, which didn’t use the same language (first Java, second Java then Go, third - I believe it was Go). For the first one, I pair-programmed with my partner who then went off to do the rest of the projects himself. The second project was the roughest since my new partners wrote up code for the entire HTTP server and then hit run - without testing or even simply compiling any incremental aspect of it beforehand - before switching to another language and repeating themselves. I joined my friend on the third project - who was graduating that quarter, was the smartest guy I knew, and decided to just do it all himself. It was not ideal.

Nevertheless, the lessons I learned in the class about networking, and problems I faced using Java in the second project, would give me a solid foundation when doing CSE 550: Systems for All after graduating.


BIOL 130: Intro to Neuroscience

Provides a broad introduction to the study of brain function in humans and other animals. Emphasizes how circuits within the brain process sensory information and generate complex movements.

I took this course in fulfillment of the Undergraduate Training Program in Neural Computation and Engineering, and it was better than I’d hoped. If I had the time I would have properly taken the 3-course set of neuroscience courses, but this sufficed. It summarized and solidified the neuroscience aspect of neural engineering I’d seen over the past couple years, and taught me several new perspectives.

One big takeaway from the course is that our brain wasn’t designed to perceive the world accurately, it evolved for our survival and we are able to perceive the world the way we are only for that purpose - accuracy is a convenient bonus. This was clearly understood after watching this demonstration, which you can try yourself right now. Watch this video, first normally looking at each face, then watch it again following the instructions to focus your vision at the center and keeping the faces at your peripheral. It was spine-chilling to perceive the faces as grotesque monsters; it wasn’t like other optical illusions where we can’t tell if something is moving or different in size or color or not - it was horrifying. Anyways, thinking from this bigger-picture perspective can help in a lot of scenarios.

I’ll discuss this more in the next section, but I’d begin exploring neuro/bio ethics far deeper this quarter due to ethical dilemmas I was facing in the lab. In class, we studied “consciousness”: what we can define it as, what it means in neuroscience, etc… We invited Cristof Koch - the leading research on the neural correlates of consciousness (i.e. what parts of the brain correspond to our conscious functions) - to talk about his research. First of all, this is an interesting but troubling endeavor, since hemispherectomies exist and our professor conversed with a person who had gone through such a procedure and hadn’t realized until it was mentioned. Second, and most importantly, Dr. Koch asserted that his definition of consciousness requires biological means, i.e. no computer could ever be conscious. When we all finally asked about why it must be that way, he said something along the lines of “I have an astronomer friend who simulates black holes on her computer, but I don’t get scared that I’ll get sucked in, since it’s only a simulation, not reality.” None of us found the explanation logically relevant and utterly lacking. If something matches all other criteria for having a significantly high level of consciousness or sentience, such as “containing highly differentiated and integrated information,” then it should be considered. What does it matter if its behavior is the result of computations performed through biological matter or digital switches - consciousness is a property of emergent behavior, not material implementation. It’s the same mindset present in some scientists (again, I’ll talk about this in the next section) denying the intelligent properties (such as higher-level reasoning, empathy, culture, etc…) of animals in the field of ethology, even when there’s clear evidence for it. I eventually realized that the definition of consciousness we’d spent so long outlining ultimately boiled down to human-ness: how human something is, or how much of an “agent” something is. Again, I’ll talk more about this later when I ended up reading more about ethology in Sp19 and when I take Neuroethics in Wi20.

Here are a couple other cool things we learned about that I’d refer to later:

  • Scientists are able to take slices of brains and keep them alive and working in petri dishes. A student asked: are those pieces of brains still… thinking? The professor answered: if you define thought as natural neural activity, then yes, it’s thinking.

  • Scientists can stimulate the aspects of rats’ brains which correspond to hunger and killing. That means they can essentially flip a switch and that rat will eat (or kill) and stop only when they flip the switch back or until it dies - it does not have control. A student asks: if we performed the same thing on humans, would we be able to reason and stop doing the action/ not eat until we die? The professor answered: if that stimulation targeted the neurons that correlated to the very action of eating, not simply the desire to eat or anything further upstream, then it doesn’t matter how much we reason about it in order to mitigate the desire to eat or how much we want to make the choice otherwise; the stimulation goes past making a choice and forces the action, and we would eat until we die.


CSE 499 A: Research at Reality Lab

I continued the VR in Prison research, trying to get as far as I can before handing off the project to future students. I focused on the mental health aspect, collaborating with Greener Games’ Nature Treks VR and participated in a poster presentation in the annual Undergraduate Research Symposium, where I got interviewed.

CSE 498 B: Research at Restorative Technologies Lab

I began my research at Dr. Chet Moritz’s Restorative Technologies Lab. I began working under Dr. Soshi Samejima and Nicholas Tolley, who introduced me to the Brain-Controlled Spinal Interface they were testing out on rats. Since I came from Computer Engineering, I was more interested in both the higher-level analysis of the neural data as well as the hardware implementation; but I was also interested in working with the animals (although I never completed the training necessary to care for the animals directly). I would focus on the hardware implementation, i.e. getting all this to work on an FPGA. I was to collaborate with Jared Nakahara of the Sensor Systems Lab, but ended up mostly working with Nick. Nick walked me through the code he’d written for decoding the neural data. By the end of the quarter, we’d collected new recordings of a rat performing the lever push task, and I’d used Nick’s code to create a neural decoder that could predict when the rat was going to push the lever given the neural signals. It was difficult for me to find a place in helping implement the hardware, since Jared was far more experienced and seemed to have everything under control; I had been taking Digital Design this quarter, so I was able to help testbench some of the simpler modules, but it didn’t help progress the main design issue: serializing the computations so we can effectively use the multipliers on the chip.

Meanwhile, I didn’t feel comfortable with experimenting with rats. By that, it’s not that I wasn’t comfortable with handling them/ being around them/ witnessing terminal experiments; it’s not that I was queasy about the thing itself. I was more concerned with how the thing was justified. The answers I got were that we complied with standards set by some organization, but that satisfies the question only so far as citing a law would satisfy a moral question. I contacted a professor from this field (who was part of the grant that was funding me, and taught the Quantitative Methods in Neuroscience and Seminar on Computational Neuroscience): Dr. Adrienne Fairhall. She referred me to Dr. Sara Goering - who co-leads the ethics part of the Center for Neurotechnology (CNT) - whom I set an appointment with. I talked with her about all my concerns and questions, and she told me about very similar experiences she had in a lab that would suffocate bunnies to conduct autopsies. I was mainly interested in the issue of why we treat animals with more human traits with more moral consideration than other animals who may be still worthy of that same moral consideration; how do we justify that difference, etc… She referred me to a book titled Are We Smart Enough to Know How Smart Animal Are? by Frans de Waal. It’s an excellent book that delves into that question; I would highly recommend it as a starting point for anyone concerned about these important yet unanswered or dismissed questions. It would inspire me to take her Neuroethics class, which would dive far further into these questions and others.

cisco.jpeg

☀️ Summer 2019 ☀️

TODO: create a blog post about this.

4th.JPG

FOURTH YEAR

(2019-20)

Over the summer - when I experienced my first internship - I was admitted into the Combined B.S./M.S. program at CSE. Since I was admitted into CSE late, and have been pursuing research in neural engineering, I wasn’t able to graduate or begin my M.S. early. This last year was all about taking those 400-level classes to solidify my foundational understanding of CSE, completing my honor’s thesis, and finally graduating. COVID-19 hit as Winter quarter ended, making my last quarter - and the next year - far different than anticipated.

Fall 2019

CSE 401: Compilers

CSE 484: Computer Security

PHYS 224: Thermal Physics

CSE 498 B: Research at Restorative Technologies Lab

Winter 2020

AMATH 500: Theoretical Neuroscience Journal Club

CSE 421: Algorithms

CSE 451: Operating Systems

CSE 498 B: Research at Restorative Technologies Lab

PHIL 442: Neuroethics

Spring 2020

CSE 481: Robotics Capstone

CSE 490 W: Wireless Communication

PHIL 345: Moral Issues of Life and Death

 


Anand SekarUW, courses, school