CS 373 Fall 2023: Benson Ngai
Where did you grow up?
I was born in Auckland, New Zealand but grew up in Guangzhou, China. I moved to Plano, Texas in 7th grade, and have been living there ever since.
What high school did you attend?
I attended Shepton High School for 9th to 10th grade and Plano West Senior High School for 11th to 12th grade. Both are in Plano, TX.
What was your favorite extracurricular activity in high school?
Science Fair. It introduced me to the world of computer science and allowed me to gain a lot of experience doing research, problem-solving, and developing communication skills and confidence through presenting my work. I did it for all 4 years of high school, each year exploring a completely different scientific area (sustainable energy in 9th grade, biology in 10th grade, materials science in 11th grade, and deep learning in 12th grade).
Why did you come to UT?
The UT Computer Science program’s academic prestige speaks for itself. I wanted to enjoy the tight-knit community in my honors program while experience a large campus/student-body college experience throughout my 4 years. Also, I really enjoy the energy of being near a big city like Austin.
Why are you majoring in CS?
No one in my immediate or extended family is an engineer. Ever since I was younger, I was always tinkering with tech and gadgets and consequently became the “technical” person of the household. Throughout my own experiences, I learned more and more about computers, and to be honest, I’ve never considered any other major than CS. Computer science surrounds us on a daily basis, and I love the complexity and breadth of topics that come with CS.
Why are you in this class?
I want to explore backend engineering way more. Most of my previous job/personal project experiences (in terms of full-stack development) have moreso involved front-end development, but I prefer to learn about the complexity of robust, flexible backend architecture (servers, databases, etc.). For this course’s project, I really want to focus on learning and developing the backend side of the application to solidify my knowledge in this area.
What are your expectations of this class?
From what I’ve heard, what you get out of this class is what you put in. I’m sure this is the case for many classes, but since there are no exams, projects heavily depend on effort, commitment, and teamwork. Out of all my courses, I expect this course to be the least rigorous (and hopefully not require as much work), but nevertheless, I expect to give 100% effort in completing all projects/work on time with exceeding standards. By the end, I want to be pretty knowledgeable about full-stack engineering.
How much do you know about Javascript/Python/SQL/Web programming?
I started programming in Javascript through my AP Computer Science Principles class, so that’s the first language I learned. It pops up every now and then (during projects, internships, hackathons) where I need to remember how to do certain things in the language, so I would say I’m just familiar rather than fluent in the language. I’d say I’m pretty fluent in Python; I use it the most and spend my extra time learning everything happening behind the scenes of a Python script (ie. decorators, Pythonic objects, implementations of data structures, etc.). I have a little bit of experience in SQL through the few times I’ve had to query something from a database, so I’m familiar with the syntax and could probably overall understand what a query does and how to write some basic queries. In terms of Web programming, I have the most experience with React.js and some experience with Flask.
How did you like the first lectures?
So far, the material has been decent. I haven’t used Docker extensively, nor have I performed unit testing in Python, so this is all new stuff that I’m happy to have learned already so quickly. However, personally, I think the pacing is a little slow considering the amount of material taught. I do like the plethora of examples, but at times, I would prefer to move onto the next topic rather than explore more examples of a rather basic concept.
How did you feel about the cold calling?
Personally, I don’t really like it. I see that it’s required such that it encourages everyone to pay attention and learn, but I think that 1. it slows down the pacing of the class (the socratic seminar style of conversation between Professor Downing and a student), and 2. I think people learn differently. There are certain people who learn best by talking and working through a problem with others, but others who learn best by thinking about the material by themselves. In terms of it forcing students to pay attention in class, I think that’s up to a student. At this level of education (especially this being an upper-level course), I think students should be responsible for their own learning and participation in a course, and an instructor shouldn’t have to enforce anything to ensure that a student is keeping up with the class.
What do you think about specifications grading?
I don’t mind it. I just treat it as the same as normal grading. As long as I meet the requirements for the grade that I want, then I’m good. The nice thing is that everything is very clear cut; I know exactly how many blogs/quizzes to complete to get an A, for example.
What made you happy this week?
We had our first Texas Club Tennis practice this week, which was really fun. We normally play on Tuesdays, Wednesdays, and Fridays, which allow me to practice and get my mind off stressful coursework throughout the week.
What’s your pick-of-the-week or tip-of-the-week?
After avoiding using Docker for so long (just because I’ve never had the time to learn what it is/how to use it), we finally learned about its virtual environment container system. Particularly, I found creating a mapping between your local and virtual environment via the “-v” flag very useful, and can see myself using it a lot on the future for doing any type of work, whether it’s a quick task or long project that requires me to build my own image).