The Fourth Semester Experience

Author's note: this post is not about an overview of the courses I took. It's more about my experience and how I felt about each course.

This semester I took a total of 5 courses with 18 credits total. In my faculty, the normal credit a student should take is 18 credits. However, because I had already finished a 4th-semester course during my 2nd semester, I had to take one additional course that was outside the normal 4th-semester experience. The courses that I took were (in order of least to most difficult):

  • Interaction Systems
  • Databases
  • Advanced Programming
  • Language Theory & Automata
  • Numerical Analysis

Let's cover each of these courses!

Interaction Systems

In this course, we are taught how to design a great user interface/experience. While this isn't my specialty or interest, I found the course quite effortless. Basically, we would finish an assignment every week in groups of two which takes about 2 hours maximum to do. I mean, the professor himself said that this course was easy.

For our final project, we had to be in groups of five and create a design of a hypothetical app. Our team created an e-learning certificate platform such as Udemy or Coursera. It was called "Indomy". We created the prototype of the app using Figma, and well, it's exactly how you imagine a group of five clueless folks designing an app. To be honest, I thought it was quite decent. But when I looked at other people's work, I was absolutely blown away.

Perhaps the most fun I had about this course was when we had to present our final project in front of the professor and the TAs. I only realized the day of the presentation that there was a presentation, and it's offline! So, I had to drive to campus in a rush and arrived about 5 minutes before it was our turn to present. During the presentation, we noticed that the slides were far from perfect. In fact, we still left out some of the lorem impsum from the template! But it's okay; the professor was nice, and we left the presentation giggling. It was definitely worth the trip.

Databases

In this course, we learn about well, databases. Specifically how we should design one and how to retrieve/modify data using SQL. I admit that I had some previous experience with SQL due to my interest in data. So, this course wasn't as difficult for me as perhaps other folks. I enjoyed the class, the professor was very kind, and the slides were pretty. It was honestly quite refreshing to see a CS course taught so elegantly.

However, the catch is that we had to create an app in groups of five. Since the group was randomized, I had no idea who I was with. And well, let's just say that I and one other gringo had to work a lot more than the rest of the group. It was fine; I enjoyed the work. I did flunk a bit on the finals due to not being able to finish on time. I still believe the test wasn't designed to be finished during the allocated time. Most of my peers would agree on this.

Advanced Programming

The first half of this course was not so challenging (or so I thought). We learned about design patterns in programming and why/when to use/not use them. The materials themselves were just that, but the midterm was crazy. The MCQs were rigorous. The questions were like "The design pattern A is used to do X," and the choices were "Answer is correct, but reason incorrect" or "Answer is incorrect but reason correct". So, it's like two sets of answers at the same time. It was nothing like I had seen before. And this type of question trips me up so much. Besides the confusing MCQs, there were essays too. We had to write code just using Notepad, and well, it went as you might expect.

In the second half, we had to create an app using Java SpringBoot in groups of five. Surprisingly, I got a really good group, and I enjoyed working with them. We finished the project, presented it, and got really good grades, in my opinion. It could be better, sure. But I was satisfied with the grade. If everything goes well, I think I might want to be a TA for this course in the future.

Language Theory & Automata

An interesting course, to say the least. Some say that it is discrete mathematics 3. I learned about how to design machines at the very bare-bones level. We're talking about the simplest of machines (automata) that can only do one thing at a time. I mean, do you know how many steps a machine has to take in order to reverse a string? In code, you could do it in one line. In this course, perhaps 10+ different states.

We used a tool called JFlap to design these automata. It's required to finish the homework. In fact, some of the homework themselves are auto-graded using some system designed by the professor.

This course became difficult during the midterm and final, where I had to design automata on paper. It's difficult since I can't really test it out. And not to mention the theoretical questions. While the professors were nice, this was not among my favorite courses. I'm just glad that it's over.

Numerical Analysis

This course is originally for fifth-semester students. But I took it anyways, so I have a total of 18 credits this semester. Everything about this course screams difficult. Previous students who took it say it's the most difficult course in the faculty. The professor is highly respected and rigorous. And, of course, the material itself is closely related to mathematics.

Regardless of its difficulty, I actually enjoyed the materials. It was interesting. I mean, did you know that you can approximate the integration of a function? We know that these operations are expensive, so we create a way to approximate the answers to our desired accuracy, which is less costly. It's crazy!

There's more about this course than just numerical approximations; there's optimization, interpolation, and all other neat tricks mathematicians use. But, of course, it's incredibly difficult. The group projects had to be written in Latex, and I worked in a group of four.

Don't even get me started on the midterm and final. The class average for the midterm was 43. I don't know the average for the final since it wasn't announced, but I imagine it to be around that number as well. I'm glad that I passed this course even though with a not-so-satisfactory grade.

Review

Looking back, I really enjoyed this semester. Remember that I had a 30+ hour internship going on at that time as well. It's difficult to balance academics and work sometimes, but I managed to pull through anyway. With a decent grade as well! :D