Fall 2017 semester recap

The first semester at Georgia Tech has been over. It was a very impressive experience to a foreign old student like me. I know studying at high prestigious school such as Georgia Tech is an invaluable opportunity, and many students struggle to get such a chance every year. So I decided to note things that I learned from each semester in order to help those students who are interested in Ph.D program in computer science at Georgia Tech.

In overall, every systems including registration, course curriculum, teaching scheme, grading, etc. were new to me. (Note that, I got my B.S. almost 10 years ago in my home country, South Korea.) A half and a month was needed for me to adjust to the new system and environment. Of course, the school provided new comers many orientations to facilitate this adjustment though, they were not that helpful honestly. Necessary information used to be spread across the school’s website. I had to google the info whenever I needed. I think most of other students are not different. Basically, the settlement process is completely up to students so they should regularly check the school’s timeline and manage necessary jobs by themselves in timely manner. Personally, the student health care system is the most obscure. I don’t understand how to get a help for medical care with the given student insurance yet. :(

For the first semester, I participated in two graduate level courses, CS 6210 & CS 7001. Georgia Tech allows a graduate student to apply for 21 credits at maximum each semester but credits that I can earn from the two classes are just 3 and 5 respectively. It looks not sufficient for a single semester. Then what else for the empty slots? Ph.D students can fill the rest of credits with research and they used to spend more time on the research. Here is a point that you should keep in mind if you dream a Ph.D degree. The course work is not ph.d student’s main job! (But this does not mean you can ignore it. Let me explain it in another blog post later.)

CS 6210: Advanced Operating System

This course was very informative but pretty demanding. Even to me who have 8 years industry experience, workload of the class was huge. So I recommend you to carefully select the other classes in the semester in order to balance the workload if you plan to attend this class.

In CS 6210, you would learn many system papers from the ancient {micro,exo}kernel to recent network based distributed systems. The class deals with various topics related to operating system, e.g. OS flexibility, scalability, protection and so on. But it is not limited to just OS. It also covers various useful mechanisms that helps building an efficient & secure system. So I definitely believe you would gain more than pain.

The class was really well structured and the lecturer, Prof. Ramachandran was excellent at teaching this course. He has accumulated his lecture resources such as class recordings, slides and exams. They are invaluable assets for the class participants. His lectures have been served in Udacity and Youtube for free so you can try it for a sneak peek.

Regarding to homework and projects, you would be assigned one homework, one pre-lab and four projects. Not only that, you would submit two class and two paper summaries. You would be tested through the homework and pre-lab if you have necessary backgrounds to perform the advanced operating system class. Unless you are familiar to C/C++, be sure you are before applying for the class. For 4 projects, I implemented cpu/memory schedulers using libvirt, which mimic the hypervisor, barrier synchronization algorithms using open MP and MPI, a small shopping mall logic using grpc and the famous MapReduce using the grpc as well. But I heard these projects could be different class to class so that you might be assigned different ones.

Exams were very unique. Midterm and final exams were released in advance of the real test and it was allowed that students discussed problems together. You might think that exams were easy enough to get high score. To be honest, the exam itself was very difficult and puzzling. If students attending the class alone took the exam on the day, I think the average might go below 50. Surprisingly, however, the actual averages for midterm and final are very high, 76 and 81 respectively. I think this is because of the allowance of cooperation and the pre-release so making good mates in the class is an important factor for earning a good course grade. Apart from the scores, I felt this course was very competitive since students were pretty diligent and smart. Actually, what makes me feel this course hard was these smart students, not the course itself. It was really hard for me to make up the score once I made a mistake on the midterm.

I think this class is very helpful so that every CS students should take this class regardless of their detailed major. For your reference, the advanced operating system is mandatory to ph.d students who major in system and they must get ‘A’ from this course.

CS 7001: Graduate study in Computing

CS 7001 is an introductory class for every new ph.d student in computer science at Georgia Tech. In this class, students are taught responsible conduct of research (RCR) and a sort of wisdom in order to become a good researcher. Not only that, students should perform two mini projects with potential advisors. Of course, selecting what they research and advisors with whom they research are solely up to students. Oh, I should not miss the assignment of building up a personal homepage in academic fashion.

I think this class needs to be improved more. Depending on professors running the class, contents of class seem to be very different and its quality can fluctuate. I don’t still understand how this class grades students though, the class also gives you a letter grade. So you have to do your best on this class as well as other classes. I heard that every students used to get ‘A’ from this class but that is not true.

One interesting point that I learned from this class is students’ ratio in future research area. More than 50% among new 30 ph.d students said that they wanted to major in A.I. or machine learning. I felt how these areas were getting hot in person regardless how they are promising. (I am not an optimist toward A.I. nor Machine Learning technology.)

Misc.

Offline classes were not all for a freshman. Every admittee should complete a RCR online class apart from the offline one and a sexual harassment prevention online course called Heaven Plus during the first semester. The two online classes were not only boring but also too long. However, there is no way to avoid them for next semester registration. Sooner you complete them, more time you can have for research or course work.