Intro

Term Review is an every-4-month journal to share all my thoughts and experiences during the finished term. It acts as both my journal and course review (for those who are planning to take similar courses). Experience is given out on a scale of 5 and it is not reflective of the marks that I got, rather it is more about how I felt whether the course was useful for my learning. Pros and Cons, however, are directed to how the course is managed and how I personally think it can be taught better.

Courses

CMPT 295 - Computer Systems (Arrvindh Shriraman)

Course Experience: 3/5
Pros: Assignments auto-grading, pass for marks quizzes, and recorded Lectures
Cons: Exam questions sometimes confusing and needed to be explained during the exam Self-feedback: No need to focus on taking notes during videos, focus on the lectures, and write notes after if needed.

The hardest course of the term. It involves diving deep into the memory layout of the a program and learning a very ‘useful’ language called Assembly. It is refreshing to see what memory looks like behind the scene.

However, the instructor that term was not particularly helpful in testing the knowledge of the students. The midterm average was 50 (scaled from 30~ish). While I don’t feel the instructor was the best, I really liked other things including the assignments auto-testing with Github and the quizzes that can be taken up to 5 times. Lectures were also recorded and I liked it better because I can just 1.8x it and rewind if some parts are still not well understood. One thing I learned about this course is that not every lecture needs to be attended. It is far better to spend that time focusing on the recorded videos in-depth.

CMPT 276 - Introduction to Software Engineering (Bobby Chan)

Experience: 4/5
Pros: Very applicable project, hands-on instructor
Cons: Exam contains knowledge that needs to be memorized and carries too much weight, lecture feels very business-y and does not cover the project enough Self-feedback: Try to take ownership and be responsible. Sometimes, no one will not want to do the hard task. Also, assign strict deadlines and be communicative with your teammate.

CMPT 276 is the course that I was looking forward to prior to transferring. We built a full-stack website for the group project which was the main focus of this course. The main problem is mostly about working with your teammate. Since this is usually the first time for students to learn website development, we end up trying to fix the problem a lot of quick-fix that may end up causing other bugs in the long term. The experience will definitely vary from team to team, but that is mainly how I felt.

That being said, This course has given me a lot of knowledge about building websites both front-to-back. The main thing I dislike about the course is that it tests certain knowledge that not everyone would have known (ex. asking about requesting data from API which not everyone would have known).

Group project: Amusement Park Website

CMPT 213 - Object Oriented Design in Java (Victor Cheung)

Experience: 3.5/5
Pros: Object Oriented Design concepts are useful for designing software
Cons: Lectures sometimes too theoretical and not have enough examples and looking things in a bigger picture Self-feedback: Make time to revise the topics and understand what it’s use cases on the broader scope

I have mixed feelings about CMPT213. While it definitely carries many strong concepts, I don’t think I personally gained much as I have taken an equivalent course at Langara. Especially since this course particularly involves making a tracker in a Java Swing GUI. However, the design patterns (Creational, Behavioral, and Structural) are something very useful to know.

Project is useful but not as interesting as other project-based course (See Package Deliveries Tracker). It’s understandable since it’s a 200-level course to understand more about OOP and design decision.

EDUC 100W - Selected Questions and Issues in Education (Cary Campbell)

Experience: 3/5
Pros: Understand Critical theory and issues about education, races, etc.
Cons: -
Self-feedback: Depends on people, but try to find the course that you can somehow enjoy more (and maybe the one that’s more beneficial).

EDUC 100W is an online course. I initially planned to take only 3 courses given that I had to teach 2 sections at Langara. Learning content in this course feels somehow relaxing as I was taking 3 other complexes CS courses. I had to still give the experience a 3/5 mainly because taking an elective online will not really push me further and I just learn and finish tasks as fast as possible without truly revising the content.

But credits still need to be given when it’s due. The course delivery itself feels like it is already a 5/5 by the instructor. The reading is also something I would never read if I had never taken this and it contains interesting topics about how society is often very unequal (even though it looks equal on the surface). There are also a lot of topics talking about the hidden imbalance of power and the complexity of privileges based on our gender and race.

What went well

  • Time was managed pretty well and most assignments were finished smoothly before the due date
  • Set clear expectations of what your team is capable of (in group work) and act accordingly also for yourselves

What could have been better

  • Need extra planning on the days that have many deadlines
  • Always assess whether it is truly important to attend the lecture (or use that extra commute time to get things done at home)

Conclusion

As the first term at SFU, I really enjoyed how it ended. I always thought studying at university would be drastically harder than college. Well, it technically is, but there is certain goodness of it such as lesser lecture time and somehow the lectures are more skippable. I’m looking forward to maintaining term review for future terms :))

Moving forward, I was thinking and theorized that there are two routes to take for the electives. The first is to choose the one with the least amount of workload/ GPA booster course. The latter is to choose a course that might be useful for your learning (ex. Upper Div CMPT). I don’t think there is a clear answer since every individual is different Realistically, I would like to try as many upper-level CMPT courses as I can but that might mean I need to spend that extra time learning instead of other fun stuff like touching the grass. However, taking easy courses can also mean you can take more of that and potentially graduate a term earlier (or maybe just enjoy the extra time and still graduate with the same amount of time).

These choices are definitely hard to make and I will need to assess this choice on a term-by-term basis depending on the time and course availability. If you are reading up until this point, yeah I realized I might think too much on this course planning thing, but this is honestly what I enjoyed. So, thank you for reading up until now :D.