CS building
(CS building)

Back in undergrad, I had the habit of recording what I saw and felt every semester in the “NTU Observations and Reflections” series. Now that I am studying CS at NCTU, I have a new series: “NCTU Observations and Reflections”. My hope is to graduate early in graduate school—one post per semester. Hopefully it does not take more than four posts.

Campus

NCTU is actually quite beautiful. The first time I came to NCTU was when I applied to the CS graduate program. As soon as I walked into the campus, I felt comfortable. It certainly fits the stereotype: “nice mountains, nice water, and very boring.” But honestly, I think that is a misunderstanding. Riding to downtown only takes a bit over ten minutes, and in Taipei, taking the MRT to almost anywhere takes more than ten minutes anyway. Compared with NTU, NCTU has fewer random non-students hanging around, the campus feels less crowded, and many buildings even have more modern interior design than NTU.

NCTU campus
(NCTU campus: looking toward the library)

In Taiwan, if you are not going abroad and you already went to NTU for undergrad, the best domestic option for graduate school is still NTU. Even if you switch from BIME to CS, you are basically staying in the same life circle. I can understand why Richard Feynman’s teacher, John Slater, insisted that Feynman leave MIT. Slater told him, “You should go see what the rest of the world looks like,” so Feynman went to Princeton for his PhD. Another example is 張懋中, who studied at NTU, NTHU, and NCTU from undergrad through PhD. This semester at NCTU has been pretty happy for me, so I have always felt that even if you cannot get into NTU CS, coming to NCTU CS is actually a solid option.

I like NCTU’s architecture a lot. For example, the Haoran Library is huge, and every floor feels stylish. The first floor has spacious sofas where you can read comics and elegant glass tables where you can chat. The second floor holds periodicals, all arranged in circular shelves that surround the area. With the lighting and decoration, reading magazines there is extremely comfortable. My favorite is the sixth floor: there are many self-study desks, each desk is large and spaced far apart, and there are usually very few people. You can enjoy a lot of personal space. Near the floor-to-ceiling windows there are also lounge chairs and sofas facing outside—you can scroll on your phone, look at the view, and rest.

Library, 6th floor
(Library, 6th floor)

The student cafeterias are also beautifully designed. Whether it is the Second Cafeteria or the “Female Second” Cafeteria, there are comfortable sofas and seats, and even bar counters. NTU does not have a single cafeteria that can compete with NCTU’s in terms of interior design. My favorite is picking a seat by the floor-to-ceiling windows in the morning—lying on the sofa, scrolling my phone, drinking coffee and eating bread, and enjoying the sunlight and quiet of the early morning.

A New Lab

I originally wanted to go abroad, so at the beginning of the semester I spent almost all my time studying English. The reason was that I wanted to see the world, live in a foreign environment, make more foreign friends, and seriously improve my English. But after attending classes at NCTU for a few days, that motivation gradually faded. The reason was: I could already meet foreigners here, I could already speak English, and I even had some classes taught in English—so it felt like being abroad would probably be more or less the same vibe. Then I heard from a senior student that when she studied abroad for graduate school, she mostly met Chinese and Indian students, and she did not really make foreign friends. She studied abroad mainly for job-hunting reasons, while I am not necessarily determined to work in the U.S., so I did not have the motivation of “buying a U.S. job ticket” by doing a master’s degree there.

Thinking it through, it seemed like there was no must-go-abroad reason. So I stopped studying English and decided to first do what I could do well: since I was already at NCTU CS, I should focus on my studies and graduate as soon as possible. To be honest, I feel a bit embarrassed: back then I discussed with many professors and seniors, and everyone suggested that I stay at NCTU and finish first. But I refused to listen. In the end, after I figured it out myself, I arrived at the same conclusion as everyone else. Still, I will not give up the chance to go abroad—if I get the opportunity to work abroad or do a PhD abroad, I will definitely go.

By November, I had decided to take NCTU seriously. Before that, I had dropped my previous advisor, so I needed to find a new professor. Looking for an advisor in November surprised several professors. Normally, choosing an advisor is something you do a year earlier; a year later, you often only have “leftovers.” I did not have much choice, so I talked with professors who still had openings, one by one. In the end, I really hit it off with Professor 游逸平, so I joined the Systems Software Lab (SSLAB). I should thank the classmate who abandoned NCTU for NTU, because that was why I could still get into SSLAB at that point in time. My past experience was mainly in browsers, database systems, and compilers, which actually fits this lab well. Although the professor’s main expertise is still compilers, I think the essence of systems software is the same, and whether it is the professor, the senior students, or my peers, everyone here feels quite strong.

I have heard that some labs do not really do much communication—everyone works on their own. And CS is a field that does not require experimental instruments, and it does not have the kind of “senior trains junior” structure. People are more like lone rangers fighting solo. But even lone rangers can still exchange ideas and help each other. In that sense, I think the atmosphere in SSLAB is great. People regularly exchange knowledge, and discussing professional topics is genuinely enjoyable.

Library, 2nd floor
(Library, 2nd floor)

However, because I joined the lab relatively late, by the time I joined, everyone else had already spent five months since summer reading papers and exploring directions. The lab’s average time-to-graduation is also around 2.5 years, so if I want to graduate on time, I need to speed up. This semester, the two main directions I explored were GPGPU and WebAssembly. The former is a direction my advisor has been guiding students on in recent years. The latter is related to his expertise and is also a relatively new area, so it should have more room for work. I still have not pinned down exactly what to do yet, but it feels like I really need to at least decide what I am doing before winter break.

To understand how to do research properly, I went back to re-watch 彭明輝’s talk and re-read the “研究生完全求生手冊” (I had already read it when I did an undergrad project, but back then I was not truly a graduate student—and I had forgotten most of it anyway). I have always liked reading 彭明輝’s articles. His explanations on literature review techniques were especially enlightening. But techniques are just techniques. Finding a valuable topic yourself still feels difficult. Asking professors and seniors how they find topics is only a reference—everyone’s interests and strengths are different, and the sparks of inspiration are often different as well.

Courses

This semester I took two courses: “Algorithms” and “Network Programming,” both taught in English. I took Algorithms because in undergrad I only took the basic data structures and algorithms course, and I felt I should fill in what needs to be filled. But this course was purely theoretical, and there was only one assignment. In my opinion, that is still not solid enough. I probably need to solve more algorithm problems to make the theory concrete before I can say I truly understand it. Later I found that the content of NTU CS undergrad “Advanced Algorithms” is basically identical to NCTU graduate Algorithms. After all, both use Introduction to Algorithms. I found 陳縕儂’s teaching easier to understand, so later I stopped going to class and just watched 陳縕儂’s YouTube channel.

In-class scene
(In-class scene)

I heard Network Programming is one of the heavy core courses at NCTU. I took it because a senior student strongly recommended it, and I also knew it would be heavy, so I only took two courses this semester because of it. In short, the course is systems programming plus user-space network application development.

As it turned out, it really was time-consuming. I spent almost all my time on assignments. And because I am relatively weak, I spent a huge amount of time and still could not finish them. Two out of four assignments were submitted late, and the scores were not high. The essence of this course is actually the assignments (the senior student told me that too). The lecture materials were already “antiques.” In class, the professor would criticize the sample code as outdated and badly written, blah blah blah, and I would be like: then why not update the sample code? The professor also lectured in a very improvisational style. I did not feel I gained much from lectures, and later I stopped attending. But during the assignment process, when I looked up materials myself and implemented things, I truly learned a lot. I have to say: the assignment design was pretty good. It was painful for me, and I felt frustrated seeing others easily get full marks while I still made many mistakes, but I know I learned something—and that sense of gain is real.

At the beginning of the semester, I also audited “Introduction to Music” and “Introduction to Law,” which are general-education courses for undergrads. Many people dislike gen-ed courses and think they are unnecessary, and this has long been controversial at NTU as well. Personally, I think gen-ed courses are great, because I am interested in many areas, and I believe cultivating humanistic literacy through listening, watching, and learning is worthwhile. To this day, the most impactful gen-ed course for me was “Human Rights and Justice” that I took in my freshman year at NTU (see my reflection). It completely broke my old way of thinking. The purpose of gen-ed courses is probably to help you step outside your frame and broaden your horizons.

After all, NCTU is an engineering-focused university, and it differs from a comprehensive university like NTU. Most people I interact with are from engineering backgrounds, and even in the Fine Arts Club, you rarely see students from humanities or social sciences. I do not think that is a good thing. Only by interacting with people from different backgrounds do you learn how others in the world think. For example, business schools and engineering schools often view things very differently. For a product, business students might first look at whether there is a target audience and whether marketing will work, while engineering students might first look at technical feasibility. You need to understand these fundamental differences in order to communicate with people from different backgrounds.

When I interned at a software company, I noticed that engineers and sales often have trouble communicating. For me, it was surprising: is it not easy to just explain clearly? In fact, even at school, when students from different colleges are grouped together, communication barriers often show up. My ability to work with people from different domains was built at a comprehensive university—through joining clubs, taking courses, and interning at multiple companies. That is why I recommend choosing a comprehensive university for undergrad: it is the first step into socialization. In graduate school, I feel it matters less, because what matters most for graduate students is building academic capability.

At NCTU, I also listened to talks from time to time. At NTU, I used to go to talks all the time, and now, in the CS building, there are plenty of talks to attend. Even though I personally know nothing about machine learning, I really like listening to ML-related talks to understand the latest trends. I admire how the CS department can consistently invite scholars, professors, and engineers from abroad to give talks. Hopefully one day I can give talks at NTU and NCTU too.

Fine Arts Club

Fine Arts Club
(Fine Arts Club)

In undergrad, the clubs I joined were all work-oriented—for example, the Global Initiatives Symposium in Taiwan and the Green Collar Agricultural Market. Basically, it was nonstop work. I learned a lot, but I was exhausted. Another downside of work-oriented clubs is that you rarely become friends—like colleagues at a company: once you leave the office, there is nothing to talk about. Starting last semester, I began learning to draw, but after I came to NCTU, Vivianne could no longer teach me, so I joined the Fine Arts Club. The club president is an outgoing and cheerful girl. She is a bit of a goofball, but she runs the club well. I think the club atmosphere is great. I am happy drawing here. This was also my first time trying oil painting. Sometimes we also collaborate on paintings. When a piece turns out well, it is very satisfying.

Clown

(Clown. Authors: 吳映築, 曹于容, and me)

Bo-Ai Dorm

One thing worth mentioning is that NCTU has two campuses in Hsinchu. The Guangfu campus is the teaching campus, and our department buildings are there. The Bo-Ai campus is basically all dormitories. Unfortunately, I was assigned a dorm on the Bo-Ai campus. Because I cannot ride a scooter, I commuted by shuttle bus every day—basically taking the bus to school at 9 a.m. and taking the bus back at 10:30 p.m. NCTU’s dorms are run-down. I sincerely think they should be rebuilt. The campus area is huge, yet the dorms are tiny. There are many international students here—such low-quality dorms are almost a joke. In short, commuting was annoying, and the dorm was not comfortable. Next semester, I decided to rent a place off campus.

Shuttle bus stop at Bo-Ai campus
(Shuttle bus stop at Bo-Ai campus)

However, from childhood all the way through attending NTU, I had always lived at home, so living outside for the first time was still quite new to me. I also always wanted to experience what it feels like to have roommates. I often heard friends who lived in dorms talk about their daily interactions, and I wanted to see it myself. This semester in the dorm, I finally got that experience. My roommates were all pretty nice: two electrical engineers and one civil engineer. Because our specializations were different, we could not really talk about academic topics much. We mostly talked about entertainment, politics, video games, and so on. Still, I think having roommates in the same specialty would be more convenient when you get stuck on homework. Luckily, as a grad student I have a lab and can ask labmates. Because I do not have a scooter, sometimes when we went out to eat, my roommates would give me a ride. I did build some friendship with them over the semester. Thinking about moving out next semester, I still felt a bit reluctant.

Overall Impressions

As I said earlier, it is always good to change environments—experiencing life in Hsinchu at NCTU and seeing what another university looks like are valuable experiences. In terms of equipment, resources, faculty, and peers, NCTU and NTU are broadly similar. NTU has a lot of resources, but when they are distributed across colleges—and with the medical school taking the biggest share—I suspect the CS departments of the two schools end up with similar practical resources. Also, NCTU is right next to the National Center for High-performance Computing, so we have the fastest academic network! I should emphasize that I am comparing with the mindset of a graduate student. In undergrad I studied BIME, and at NTU CS I only took a few courses and did a project with Professor 洪士灝, so my view may be biased.

In terms of average student quality (median), NTU is probably better. NTU students usually participate more actively in class, and the depth of their questions tends to be higher. Of course, Taiwanese students generally do not like asking questions, and classes are mostly one-way lectures anyway, so the difference between the two schools is not that huge. But I once took classes at NTNU and NTUST, and the difference felt very significant. That said, NCTU students seem less “weird.” At NTU, I met so many eccentrics—both “good weird” and “bad weird.” NTU students also tend to be more imaginative, while NCTU students feel more straightforward?

In short, for the top group of students, I do not think there is much difference. I have a friend who studied at NTU, felt the department was not a good fit, retook the college entrance exam to go to NCKU, and then could not stand how far NCKU felt from NTU. Eventually, he transferred back to NTU. I do not think NCTU has that kind of problem. You can come here with peace of mind—just stay cautious and humble. In the eyes of top-tier universities abroad, whether you are from NTU or NCTU, they probably do not care much.

A lot of people, hearing that I went from NTU to NCTU, act like: how bad do you have to be to “fall down” here? Or, some graduate students who came to NCTU from second-tier universities feel a “bloodline” inferiority complex. I think these ideas are unnecessary. I could not get into NTU CS in the first place. Once I am here, I will make the best of it. And if I had stayed at NTU, I would not have experienced these new things. Overall, NCTU feels great and comfortable. I hope I can do research smoothly and graduate early!