Here are my reviews for all the ISTD electives I’ve taken. I’ve actually Anki-fied all of these courses (i.e. I still maintain a good memory of these courses). So for juniors that have specific questions… do PM me or drop me an email (or drop the respective instructors an email, they are very friendly!).

Last update: 07/09/19

50.012 Networks

Overview/workload:

Moderate workload. The course is “balanced” in the sense that it teaches basic stuffs (to save your grades but may be boring) with advanced topics (to keep the course interesting but may be challenging). Networks would be appreciated by any budding software developer.

Teaching style/curriculum:

2x1.5hr instructor time and 2hr lab time every week. Dr.Jit (I think he left school) is fine (although my friend commented he would be well suited to teach a HASS mod on Computer History. I didn’t disagree). First half of the term we learnt a new layer every week (Application, Transport, Network, Link). Second half of the term we learnt various standalone topics (SDN Software Defined Networks, QoS, cloud computing…). Several theoretical concepts may seem useless (e.g. header format of each packet of each layer) but it makes up for this with several hands-on projects (wireshark, mininet, basic command line usage…).

Notes/textbook:

Do yourself a favour and read Kurose & Ross. I used the 6th edition more often and 7th edition for SDN topics. The textbook is written very clearly and it is quite standard in many universities. Mid-terms and finals occasionally use questions from the textbook.

Grading:

  1. In-class activities and homework (10%) — These are eDimension submissions and may involve MCQ or short answers.
  2. Project (12%) — Group of 4. Open topic… But Dr.Jit wants originality so he disapproves the common topics like messaging apps or simple application layer python scripts. I gotta admit, it’s thanks to his nagging that made me appreciate more interesting topics like SDN on mininet.
  3. Labs (7x4%) — I think I took at least 1 afternoon to do each lab. The labs involves coding but starter code is given. We are allowed to pair with another classmate for most labs.
  4. Mid-term (22%) — A review session would be provided a week before the paper. Questions are mostly applied so it will be less about “what” and more about “how” and “why”. Past Year Papers were given. No cheat sheet.
  5. Finals (28%) — Same as above. Just take note that the finals may ask things that never appeared on the slides (e.g. “data diode”)

Conclusion/thoughts:

I read this HackerNews comment and can empathize a little. Fortunately, I think Networks at ISTD was taught well because we get to use mininet and wireshark. I think any budding developer will appreciate this course (eventually?).

Grade:

Expected grade: “High” C. Actual grade: B

50.020 Security

CTF 2019

Overview/workload:

Workload is close to networks but some labs are considerably harder. Before the revamp, it was the only module that teaches computer security therefore, the module covers topics in breadth. Take note that there may be timetable clashes depending on your subject combination!

Teaching style/curriculum:

2x1.5hrs instructor time and 2hrs lab every week. Dr.Tang is fairly new to SUTD so she may seem flustered at times (e.g. lecture pace was slow at the start and rushed at the end). That said, she cares about us students. No homework. Workload is overall manageable. Topics covered largely include cryptography alongside web attacks, OS attacks, blockchain.

Notes/textbook:

There’s no textbook. However, as modular arithmetic was taught, I encouraged my friends to watch parts of this video series or read the complement Understanding Cryptography textbook.

Grading:

  1. Participation (10%)
  2. Lab (7x4%) — Each lab takes about 1.5 afternoons to complete.
  3. CTF (12%) — We were given 2 weeks to craft our own CTF (Capture the Flag) challenges followed by another 1 week where we attack each other’s challenges. Book prizes were also given for originality and skill.
  4. Mid-term (20%) — It was fun. We had to decode a few ciphers. Do note that there was a “count-the-byte” type of question that was not directly taught in class. Past Year Papers were given.
  5. Finals (30%) — Cheat sheet allowed. One of the weird things that came out was asking the SHA-1 brute force collision computation needed. (The answer was 2^69)

Conclusion/thoughts:

The course has revamped/expanded into 3 courses so I won’t comment much. I think it’s noteworthy that the previous Prof whom crafted this course seems enthusiastic of a dedicated undergraduate program on cybersecurity.

Grade:

Expected grade: “Mid” B. Actual grade: B

50.038 Computational Data Science

Overview/workload:

This course is basically TowardsDataScience blog packed into 14 weeks. It covers the applied side of data science as a whole. Although the workload and math is light, the grading (under the old system) is very strict.

Teaching style/curriculum:

2x1.5hrs instructor time and 2hrs lab time every week. A typical lesson would be a lecture mixed with short questions. Prof Dorien and Prof Lim are fine and explains the concepts clearly. No homework. Topics covered include data processing (scraping, preprocessing, visualisations…) and prediction (Neural Networks, CNN, NLP…).

Notes/textbook:

Textbooks are not needed. The content is self-contained. I did read the textbook a little and it wasn’t helpful.

Grading:

  1. Lab (20%) — The lab can be completed during the 2hrs period. Checkoffs from TA required us to explain why the code works to show that we understand.
  2. Project (40%) — Group of 3. Throughout the term. The default project topic is on Stock Market prediction but we are allowed to pursue our own projects as long as they follow the rubrics. The problem most teams faced is getting the data. I think it’s very interesting to read all sorts of data science blog posts and understand them!
  3. Finals (40%) — The finals tested everything from week 1-13. It’s mostly MCQ with a few short questions. Be warned; they can test you on the major ML papers, pseudocode, and MCQ is extremely sneaky. No cheat sheet.

Conclusion/thoughts:

I think this course is underrated in 2 ways; that CDS is “less practical” or “less prestigious” than 01.112 Machine Learning (ML).

This course is very practical and complements with other data science skills. There’s a so-called rule that 80% of a data scientist’s time is spent data processing and 20% spent on analysis. It helps to be a full-fledged data science engineer.

This course is kind of less presitgious but I think prestige and buzzwords often obfuscate reality… I came up with an analogy:

CDS and ML have overlaps. CDS is like a first aid course that is versatile in day-to-day work. ML is like an Introduction to Human Physiology course in a medicine degree. Learning a semester of ML is not a sufficient condition to call oneself a data scientist just as taking a human physiology course is not a sufficient condition to call oneself a medical doctor.

The corollary of this statement is that ML can become all-academic-no-practical… especially if one doesn’t pursue the full career package.

Prof Dorien also commented that:

“We try to offer concrete tools and methodologies for solving data science problems without necessarily going into the math on how they work.”

Grade:

Expected grade: “Mid” B. Actual grade: B

It is noteworthy that my team mates scored C despite feeling confident about the paper. Long story short; I used Anki and they didn’t :sweat_smile:.

Blockchain Technology

Overview/workload:

I learnt to be paranoid in this course.

Teaching style/curriculum:

2hr+3hr instructor time. Prof Pawel is friendly and clear albeit certain topics can be complicated. The 3hr block is usually in-class exercise-cum-project. For example, we had to implement a Merkle Tree in Week 2 exercise. This Merkle Tree is used as part of the SUTD-coin.

Notes/textbook:

Grading:

  1. Project 1: SUTD-coin (30%) — The project is hard.
  2. Project 2: Decentralised App (30%) —

  3. Finals (40%) — 7 short questions. No cheat sheet. Topics from week 1-13.

Conclusion/thoughts:

Grade: