Course Review
About the 5 courses that I took.
14 January 2025
Business Technology Management (MGT371)
This course talks a lot about the many enterprise software that exists, the many technology that exists and its application in businesses. For example, ERP (Enterprise Resource Planning), SCM (Supply Chain Management), and CRM (Customer Relationship Management) software was a key topic of discussion in the course, the distinction in nature and benefits of the three even became one of the question in the course's midterm.
It's honestly a bird course. The materials aren't hard at all, especially as a computer science student. I have taken a course on information systems previously at ITB, and I would say that many of the materials in this course overlaps with that course that I've taken previously, especially considering that the reference textbook is the same (though both courses does not follow the book to the letter at all).
If you study the course purely from the slides, I think you'd fail to really get the essence of what the course is teaching you because you'll learn most about the course from listening to professor Peter Smit talk about his many experiences working as a corporate executives handling technology. I actually love the most this sort of course, where the instructor spends more time talking about their own anecdotal experience pertaining to the material. At one point, he talked about his experience in the 80s essentially trying to pitch what now would be called machine learning to solve a company issue before machine learning became hugely popular.
The assignments are not hard at all as well. There's only two assignments in total, on top of the readings that we have to read and comment on to get participation marks. In the first assignment, we had to write about a subcategory of enterprise software and make a business case for the adoption. This assignment can be done alone or together with one other person. The second assignment is a group assignment where we have to describe the history, challenges, and potential development of a category of corporate application. It's also very easy. Both assignments could be done in one sitting if you're locked in to be completely honest.
What I particularly love about this course is the professor. As I've said, he often talks about his experience during classes, but he's also very insightful during his office hours (which I attend relatively often). I came to his office hours twice asking about materials outside of the course. I was asking about the surprising lack of contract in business for IMI303 and consulting with him the idea that I had for the assignment in IMI400. In both cases, he still answer my questions like any other questions, giving me further insight into both subjects.
Outside of his capacity at teaching, he's also just great all around. He always responds to messages quickly, even at night on a holiday. He's also quite familiar with Indonesian cuisine (read here). I remember after I went to the front during the final exam to hand in my answer, he pulled me to the side to tell me that he had just recently made mie goreng in his family gathering the weekend before that.
Finally, shout out to Hanson, a friend from this course that I met during one of Peter's office hours that I attended (I think me and Hanson are the only two people in this course who actually come into his office hours honestly). We studied together for both the midterm and the final for this course and in both cases, she was practically teaching me about the subjects of this course and even sending me the entirety of her notes (which is especially important for the finals considering my priorities at the time, read here). I know I said that this is a bird course, but I definitely wouldn't have gotten the grade that I had gotten without her. Thanks Hanson!
Principle of Programming Languages (CSC324)
This is the few CS courses available at University of Toronto Mississauga that does not have any equivalent course at ITB, that's why I was so ecstatic when I finally got enrolled after spending a lot of time in the waiting list. And now I can say for sure that I do not regret taking this course one bit.
The first few weeks of this course was spent on functional programming concepts. The two programming language that is used in the course is Racket and Haskell. I've learned functional programming using Haskell in ITB on my second semester so I had a bit of a head start for the course. Afterwards, the course actually delved into the nitty gritty of programming languages such as how interpreters work, scoping, closures, type systems, macros, streams, logic programming, and many more. I've said it before that ITB does not provide a course like this and I was damn right they don't have a course that talks about all of the above.
I'd say that learning Racket is one of the most notable thing about this course because it's such an interesting and unique language. It's under the Lisp language family and homoiconic (yes that's an actual term).
There are four assignments throughout the course: desugaring one language to another with Racket, making an interpreter with Haskell, making an interpreter with continuation passing style with Haskell, and making a Racket program that can infer the type of an expression in the given programming language. I find that the Haskell assignments are infinitely more fun than Racket simply because you can use VSCode to code Haskell while for Racket you'd need to use the archaic and developer-unfriendly DrRacket. But all of the assignments are mentally stimulating and fun. They're also not that hard if you have a good teammate (the group for assignments consists of two people). I'd say if you're locked in in doing the assignment, each of them would take two days tops. I had the chance to do all of those four assignments with Hamzah, a classmate, and I did not regret working with him one bit. Thank you Hamzah!
The weekly labs for this course are also quite easy. For most of them, it should only take less than an hour, though the two labs at the tail end of the course could take a whole day to finish because they utilizes the challenging concepts that got introduced at the end of the course.
Professor Lisa Zhang did a great job teaching the course. She always fill her class with a lot of questions (substantive ones, not just fillers) lobbed at the students, keeping the class interactive. There's also a lot of actual demonstration in DrRacket or GHCI (the Haskell REPL) of the concept being taught in class.
What's even better than Lisa's classes are her office hours. I think I almost always come to this course's office hour every week. I remember in the first office hour that I came to for this course I mostly just talked about the differences in academic culture between ITB and UTM that I had felt and she was listening being genuinely interested. The weeks after that I usually come to the OH to ask legitimate questions about the materials that I didn't quite get during class. When students ask her that during OH, she'd have no hesitation to explain again from start to finish the material in question, be it using her monitor or her whiteboard. I remember coming down to the OH at one point asking for a complete repeat of the operation to capture continuation in Racket along with some complex expression involving said expressions that are more sophisticated than the one being explained in class, and she obliged by explaining step-by-step how to go evaluate those expressions on her whiteboard. When I don't have anything to ask about that week's material in the OH, I'd just come anyway to chat, hang, and listen to the questions that the other students have in the OH for Lisa.
Another cool thing about her office hours is that she usually gives out candies or chocolates for anyone who comes into the office hours. At one point, she had just bought a relatively big pack of chocolate candies that students are free to take during the OH. I didn't have much for lunch before the OH so I got carried away and ate a dozen of the chocolates throughout my time in that OH. I 'd just keep taking more chocolate as I was going back and forth on a concept that I had a problem with.
Introduction to Information Security (CSC347)
This course talks about a collection of disparate security topics in software, from buffer overflow to OWASP to cryptography to secure network topology.
What I love about this course is the fact that the weighting of the course grade is so in favor of the assignment. The first term test (midterm equivalent) and the final term test (final exam equivalent) only constitutes 5% and 15% of the grade, while the rest came from the weekly lab (4%) and the four assignments which made up 71% of the course grade (if you're doing the math and wonder where the remaining 5% comes from, it's practically a freebie). Such a weighting does not exist in the courses of my major back in ITB despite the assignments there being substantially harder than the assignments in this course (the courses at ITB still weighs midterm and final exam substantially, north of 50% combined).
The only reason that this course still had two term test is only because the dean does not allow the instructor to eliminate them. And so, the instructor diminished their importance in the component weighting as well as not taking them seriously. Both of them consist purely of multiple choice questions that you'd easily get at least 80% in if you pay the slightest of attention during classes. In the first term test, one out of the 15 questions asked for the proper spelling of the instructor's name, which I find hilarious. The second term test had a question where 20 or so names were listed as an option, and we had to choose just one that is the name of one of the teaching assistants.
And the assignments and labs are fun too. Since this is a course on information security, the assignments and the lab consist of breaking into programs (such as using buffer overflow or writing a script input that could break a web application), hardening systems (such as installing logger or putting in firewall rules), or even trying to trace what at an attacker did to a system after they infiltrated it. I remember locking myself in to do the second assignment (application security) where I'm tasked at infiltrating this simple PHP application with the 5 web vulnerabilities that they had given me.
I've learned about many disparate security topics in ITB from many different courses since they usually embed security into the topic of a given course (for example, a course on web-based development had a section that talks about XSS injection and other web vulnerabilities). This course is like a horizontal slice of those distributed security topics bundled into one course on its own, where I also got to try hands on the security topic in question through the assignments and the lab.
Technology Strategy (IMI303)
I don't know how the word 'technology' got into this course's name but it's a grave misnomer because this course doesn't touch on technology and doesn't really try to relate technology and strategy. Central to the course is strategy (duh) which I elaborated in depth in another journal entry.
If it's not obvious yet from the fact that I wrote a whole entry on how I relate to this course and how I actually read the assigned readings and case study (see here and here), I love this course so so much. The course really opened my eyes into how a business works on a high level through the weekly case study and assigned readings that we had to read.'
I learned about the theory of the firm (and whatever appropriable quasi-rent is), the surprising fact that businesses prefer not to deal in strict contracts, the inherent nature & conquerability of different two-sided markets (platforms such as Airbnb, Uber, etc.), the concept of willingness to pay, and many more.
Some of the readings are somewhat too academical and detailed (when what the instructor really wants us to learn is the high-level concept), but I think all of them are absolutely interesting and insightful to read. The case studies are even more interesting. We had to buy (or not) an HBR course pack as it's the case study that'll be used throughout the course. The case study (usually) placed us into the head space of a leader of a given company before he or she is about to make an important business decision, such as whether to buy another company to forward integrate to the buyer's industry, how to integrate the acquisition that they've made into their company, whether a type of reform is needed in a company, etc.. This course definitely made me realize that I'm both fascinated by those type of case studies and that I really enjoy reading them. The topic or the "conflict" in the case study usually would tie in into the topic that we're studying that week. For example, the case study on whether to acquire another company to forward integrate into buyer's industry were brought up when we had to learn about the theory of the firm.
The class on Friday is conducted with the assumption that students have already read that week's case studies and assigned readings. For better or for worse, most of the class will be spent talking about the case study, how to resolve them, and in particular Porter's 5 forces and SWOT analysis of the company in question. Often times, to do the SWOT analysis properly and accurately in class, we not only have to read the case study, but actually go to the nitty gritty, to dig through to the handful of exhibits in the case study and gain insights from the graphs and tables in there.
The topic of the week itself don't really get touched upon that much during class (with few exceptions near the end of the course). That is precisely why I decided to diligently read not just the case studies but also the readings every week, even to the point of making it a routine. Because I know that if I don't I won't be able to really grasp and learn about the many fascinating business concept that should've been taught in the course.
The instructor, Dan Giampuzzi, is also very interesting in his own right. He used to be an executive at a pharmaceutical company. And that is sometimes apparent from his teaching. He drew the example of pharmaceutical companies and compound library when he was teaching the theory of the firm where he used the theory to explain why the former tend to wholly acquire the latter instead of just buying chemicals from them contractually. He was also particularly excited on the week where the case study talked about GSK acquisition of Sirtris. On the class for that week, he divided the class into three groups to roleplay as the board of Sirtris, the board of GSK, and the management of GSK that wanted to buy Sirtirs. I had a lot of fun playing the board of GSK and lobbing questions to the company's management being critical of the acquisition. One particularly interesting story that Dan told the class was about a pharmaceutical companies that would fake sales number by parking up their truck filled with hundred of millions of drugs into their distributor or buyer or something close to the new year to count those as sales, only for all of the drugs to be registered as being returned on the day after (the next year).
I don't think this course is necessarily a bird course (since me and a handful of other class members got a pretty meh grade on the midterm), but it's definitely pretty light in term of academic load. You just need to read the assigned readings and case study weekly (and even this is kind of optional as I believe a lot of the other class members don't even bother to do this) and do a pretty light group assignment near the end.
Innovation and Entrepreneurship (IMI400)
I would say that I have a some kind of a love-hate relationship with this course that leans ever so slightly toward love. The materials in this course are definitely important and useful. The assignments are even more so. I think the hate stems from the simple fact that I just don't really fit as an entrepreneur. Indeed, this course convinced me that getting an MBA is not necessarily a good idea for me.
This course really put you into the headspace of a startup founder. It talks about a lot of things: the context from which a company is started (this is something that he keeps emphasizing and repeating throughout the course), the business model canvas and lean canvas as a tool to assess the quality of a startup idea (and to quickly throw out awful ones), the existence of a chasm in most markets between the early adopter and the majority (see this book), the 4P of marketing, budgeting (cue horror music), reading a term sheet, and others.
Unlike the other non-CS courses that I took, this course actually has a handful of assignments (maybe this is also why I have a love-hate relationship):
Entrepreneurial self-assessment
Incremental improvement to business
Business model canvas and lean canvas
OT case review
24-month operational budget
Pitch and report.
The first two assignments are done individually, while the other four are done in a group that we were randomly assigned to by the instructor. The third, fifth, and sixth assignment are related since the group are meant to assess two business idea using the BMC and LC respectively, pick one of the idea out of the two, and then expand it into a startup with a 24-month operation budget, a pitch (to be presented at the last class of the course to the instructor and two TAs), and a report based on the pitch (that has to be submitted the week after the pitch).
One particularly interesting part of the course was the week when we had to analyze the case study of Ockham Technology, a company that attempted to make a mixture of sales management and ERP software. This was the fourth assignment in the list above. Each of the groups in the class had to present their findings on different aspects of the case (from the context of the time to the nature of the situation within the company). Then, each groups had to present their course of actions as one of the company's founder to resolve the ongoing crisis that occurred during the time of the case study. It's interesting because of how the professor later reveal that the true answer lies in the founding document of the company, which enabled the founder we were "playing" as to kick out another one of the founder that was essentially acting out of line by demanding to be co-CEO. The company itself was insane though, the fact that it wants to sell software as their main product but decided to outsource it because none of the founder actually has a tech background.
As for the group assignments as a whole, I had the luck to be placed in a really great and cohesive group that isn't just capable of executing but also to just chat and have fun with (we once gossiped quite a bit about the other IMI courses and their professors). It would be fair to say that I got carried somewhat by them. I had a lot of fun doing the BMC and LC, discussing which of the two idea to proceed with, doing the OT case, putting together a pitch and a budget for a startup that is essentially Uber but for guided personal tour in Chicago, actually pitching the idea (as well as preparing the Chicago-style popcorn to be given out during our pitch to all members of the class), and finally writing the report. So shout out to Maria, Allison, and Aryan!
The highlight of the course though is Paul Chipperton, the course instructor. Paul is a GOAT full stop. He feels like the stereotypical old angry Englishman. And I don't mean that with disrespect because that's what makes him so cool (also because he probably agrees with the description). He's the raw, honest, and no BS type who has no problem swearing in class. He's very experienced in what he teaches us since he's been an entrepreneur his whole life. He once headed a pharmaceutical company who had become public and had two FDA clearances under his name. Now he's currently working on AllStent, a medtech company doing some digital twin of a heart (I don't really understand, you can go to their homepage if you're really curious). When we were working on the budgeting for our group's startup idea, he actually showed us that he's also doing the exact same thing for AllStent, putting together a budget to be presented to potential investors in the next few days. He showed us that to remark how what he teaches in the course is the stuff that he's also doing himself, that he has skin in the game. Among Paul's many great teachings, one that I will always remember is that the only people that human resources should fire is themselves.
But back to why this course convinced me against not taking an MBA. It's because I find that I didn't enjoy putting idea up against the canvas, putting together a budget, or putting together a pitch. I just don't, but those are the sort of thing that I'll be doing a lot of if I were to take an MBA.