Posted by: idm04 | 2016/01/10

January 10th, 2016

Happy New Year!

I just finished my co-op term at a software company in downtown. Am definitely missing it there already… the people were great and a lot of ping pong was played ;)

Back to school now, which I feel somewhat miserable about. For the first few days of school, I was feeling extremely tired during all my classes, and I wasn’t sure why. On Thursday, I decided to take the bus to school instead of riding my bike (it’s only a 10 min bike ride for me) and all of a sudden I wasn’t that tired in class anymore… I guess my body wasn’t yet used to going back to cycling after months of not cycling.

This term, I will be taking CPSC 313 (hardware and operating systems), 320 (algorithms), 317 (internet), 314 (graphics), and 425 (computer vision). In addition, I am continuing a volunteer role from last year and have to apply for co-op jobs again       :(

Oh, and I’m selling textbooks for BIOL 234, CPSC 121, and MEDG 421:

Discrete Mathematics with Applications 4/E by Epp
Excellent condition

Introduction to Genetic Analysis 10/E by Griffiths (with solutions manual)
Very good condition

The Philadelphia Chromosome by Wapner
Very good condition



Posted by: idm04 | 2015/09/20

September 20th, 2015 – On co-op

It’s been a while… (do I say this every time I post?)

So, over the summer I finished a bunch of courses (CPSC 221, 213, 304) and secured a co-op placement for the fall, which I’m currently working at. I wish I’d worked on more personal projects before applying for co-op jobs, and done some technical questions practice — I think it would have helped me be more competitive when looking for jobs.

I also wish I’d done more stuff like badminton/basketball, online courses, personal projects… in second term of the summer, I only had school twice a week; I don’t even remember what I did in my abundant spare time. Feels like I have so little time now since I’ve switched from that to a 9 – 5 ish work schedule, five days a week.

Anyway, I started my co-op term in the first week of September, commuting to downtown. The company is doing really well, my supervisors are really nice, and I’m finding most of the work interesting so far. Unfortunately, there isn’t a lot of coding in this position… so I’ll have to work on stuff on my own time to practice coding ;_;

Is it just me or does it seem like UBC admitted way too many people this year? I heard CPSC 110 had over 300 people on the waiting list, and there are some first year CS students who aren’t gonna take any CS courses this entire year because they can’t get in, even through the waitlist. Similarly with GRSJ. Also heard a couple first year Engineering students got kicked out of their STTs because they didn’t have enough space in them and didn’t realize until later…

In other news, I’ve been playing badminton once a week in Richmond, and need to find more people around my skill level… anyone here play?


Courses I took this summer:

CPSC 221
CPSC 304
CPSC 213

List of all courses I’ve taken




CPSC 221: Basic Algorithms and Data Structures


One of the most important courses for CS interviews because data structures. You’ll also have to learn C++ on your own.

I have a feeling that the summer offering of the course is a lot easier — material might be left out, and there weren’t many assignments.

Grading scheme:

Labs 10%
Assignments 10%
Midterm 30%
Final 50%



– Linked lists, stacks, queues
– Big-O, Big-Omega, Big-Theta, time and space complexity, algorithm analysis
– Induction and recursion, loop invariants
– Sorting
– Trees, tree traversal, binary search trees (BST), tree rotation, B-trees
– Priority queues, heaps
– Hashing
– Graphs
– Counting (probability)

In other words, check out the course website.

In-class activities:

Nothing new here. Aside from actual lecturing, there were some worksheets given to us near the end of class sometimes that we would do in class. Unfortunately, since we worked on it at the end of class, we did not go over the questions as a class.


Lab was done alone or in partners, and was due the following lab. Some people just did the lab at home, went to lab, got it marked as soon as possible, then left. I found the first few labs were somewhat difficult, perhaps because I wasn’t used to C++.

For labs and assignments, I either used Visual Studio 2013 or I connected to the Linux servers. I should note that I run Windows. I recommend the latter for assignments, because that’s how the markers will test your code.


There were only four assignments — two theory assignments and two programming assignments. The theory assignments were straightforward. The programming assignments could be done as a pair, and were somewhat challenging.


Readings were assigned from two textbooks:

Objects, Abstraction, Data Structures and Design Using C++, Elliott B. Koffman and Paul A.T. Wolfgang, Wiley and Sons, 2006.

Discrete Mathematics with Applications (Fourth Edition), Susanna S. Epp, Brooks/Cole, 2011.

Some people found these textbooks online. According to our course website, we were expected to read Chapters P and 1 of the Koffman book before our first lab, but I doubt anyone did, because that encompassed 100 pages. After reading about 10 pages, I gave up and didn’t read any textbooks for the remainder of the course.


You have to learn C++ on your own, and there are a plethora of online guides to help you do that, just search online. Some resources I’ve found: – scroll down and you’ll see a link to an interactive C++ course. You’ll have to create an account. – ‘Moving from Java to C++’ – ‘C++ for Java Programmers’ – what a lot of people use

If you’re reading my post to get a head’s start, either read Chapters P and 1 of the Koffman book before your first lab, or start going through one of the above resources.

Don’t understand pointers? Binky Pointer Fun Video may help. Or just search for ‘pointer tutorial c++’.

Assignments — as usual, start early, for reasons that should be obvious by now. And please run your code regularly so you can debug it in small steps. I still see people write functions after functions and then run their program at the end, resulting in hundreds of error messages, many of which are dependent on another, and is essentially a huge mess and a pain to fix.


This class is notorious for being difficult, but it was quite easy in the summer with Kurt as our instructor. I have a feeling some details were taken out, and that the exams would have been more difficult if taken with a different instructor or during the Winter Session. Our class average was 84%…





CPSC 304: Introduction to Relational Databases

Summary: Relational databases + SQL. I heard this course was useful for co-op so I took it instead of the usual CPSC 310 that most BCS students take in the summer.

Grading scheme:

Clickers 2%
Tutorials 5%
Peerwise 3%
Project 20%
Midterm 1 15%
Midterm 2 20%
Final 35%



– Relational Model (Entity/Relationship diagrams)
– Functional Dependencies and Normal Forms
– Formal Relational Languages (Relational Algebra)
– Structured Query Language (SQL)
– Data Warehousing & OLAP
– Datalog & Deductive Databases
– Semi-structured data and XML

In other words, check out the course website.

In-class activities:

We had Hassan Khosravi as our instructor, who gave us a lot of in-class problems and clicker questions to work on.


In tutorial, we were given exercises to do either alone or in a pair. They were to be handed in for completion marks either at the end of the one-hour tutorial or by the end of the day if it was a longer exercise. The exercises were based on material we had covered in lecture.


In teams of four, we were required to choose an application that could use a database, and then build the database application, complete with GUI. We didn’t have to form a team with people in the same tutorial, but it was recommended. Unfortunately, all of my team members were in the other tutorial, which made communication a bit more difficult on my end.

There were several milestones or stages in the project at which we were to hand something in. For example, the first milestone was the project proposal, which was simply a description of what application we chose (e.g. bank, school, some kind of business), and was due a few weeks into the course.

As for working on the actual project, our team divided the work into GUI, populating the database (writing the SQL script), and doing backend to connect the database to the application and GUI. The SQL script is by far the easiest and would only take a couple of hours.

We probably started writing actual code for the project a little over a week before the project was due, which was stressful but ended up working out in the end. People could either do the project in Java (JDBC), PHP, or something else. We chose Java because we thought it’d be the easiest since we were most familiar with it.


The required textbook was Ramakrishnan and Gehrke. Database Management Systems, 3rd Edition, McGraw-Hill, 2003.

I did not find it necessary to read.


For the midterms, we had an individual exam and a group exam. The group exam consisted of the same questions from the individual one but we worked in groups of four and were given less time. The group exam immediately followed the individual exam.


For the exams, it was sufficient to simply redo the in-class problems/clicker questions we were given. The exam questions were analogous to these problems. In terms of lecture material, I found the material on Data warehousing and Datalog & deductive databases the most difficult. Unfortunately, I had co-op interviews when those sections were covered, and I found the lecture notes difficult to understand. The notes for the other lectures however, were fairly straightforward to understand, even for those that I missed for co-op interviews.

For the group project, I recommend choosing people in your tutorial, or at least people with whom you can easily meet schedule-wise. The Java/JDBC backend stuff (connecting to Oracle, connecting the database to the application) seemed pretty overwhelming to me at first (I had only done CPSC 210 previously), so I kept putting it off which was obviously a bad idea. Once I started following through the tutorials on the course webpage, it really wasn’t too bad.

Many previous students use Github to store their project, so if you were to search for CPSC 304 or CS 304 you’d probably find many projects if you’re looking for sample code.

We really only needed a few full days to start and finish the project, but as usual, my recommendation is to start early…





CPSC 213: Introduction to Computer Systems



I don’t remember what I learned because I’m writing this review a year later… looking back at my notes, it seems like we mostly learned things about translating C to assembly (machine instructions) and vice versa in order to get a better sense of how the computer executes a program. Also, we learned about multithreading and virtual memory.

Grading scheme:

In class exercises 5%
Labs/Assignments (6) 25%
Midterm 20%
Final 45%

In-class activities:

Sometimes we would do worksheets or Socrative (sort of like iClicker) questions. Otherwise it was just regular lectures.


There was a PDF called ‘Lecture Notes Companion’ written by Mike Feeley that was given to us.

Readings were assigned from both the companion as well as the following textbook:

Computer Systems: A Programmer’s Perspective. Randal E. Bryant and David R. O’Hallaron, Second Edition.

I did not do any readings during the course, but looking back maybe I should have to get a better understanding of some material that wasn’t explained well in class.


I thought (at the time) the assignments were of moderate difficulty and I had to ask the TAs for help for some of them. But for the most part it wasn’t too bad. Assignments were done in pairs. We could have done them alone but it wasn’t recommended.



Don’t understand pointers? Binky Pointer Fun Video may help. Or see A Tutorial on Pointers and Arrays in C.




Courses I took this term:

CPSC 210
STAT 302
MEDG 421
MICB 425

List of all courses I’ve taken




CPSC 210: Software Construction

One-line summary: This course was intense and immersive, but I’m glad I can say I now know some Java.

Grading scheme:

Updated information about the grading scheme is available on the CPSC 210 website. You can also read descriptions about each of these on the website.

Final Exam 40%
Labs 10%
Project 15%
Assignments 5%
Quiz 10%
Midterm 20%


This list probably won’t make sense unless you’ve already learned some of these things on your own or at another school…

Basically, we learned Java and object oriented programming. A lot of the things we covered were abstract.

Control and Data Models
Data Abstraction
Type Hierarchy, Polymorphism, Dispatching
Robust Classes
Implementing an Object-Oriented (OO) Design
Extracting an OO Design
Design Principles (Coupling and Cohesion)
Observer Pattern
Composite Pattern (think trees)
Iteration Abstraction

In-class activities:

Lectures generally involved the instructor going over code, or drawing diagrams on the projector. Unlike 110, we did not work on problems by ourselves most of the time. However, every few lectures, there was something called a “lecture/lab” in which we were given a problem to work on on our laptops and ask for help if necessary. Unfortunately, we were usually only given ~15 minutes to work on it, which was not enough time to complete the lecture/lab in class.

I found it difficult to take notes in this class because copying code by hand is difficult, and because explanation of diagrams/code was usually verbal rather than written. Fortunately, there are videotaped lectures posted online from 2013W, which I found very helpful for reviewing.


There were five labs to attend, once a week, during the first half of the term. It was not required to attend labs after that, aside from the project marking at the end of term. Each lab was due at the beginning of the next lab session. Labs were focused on practical aspects, like how to write tests for a Java program, and I found them much more interesting/engaging than lectures. We were allowed to leave the lab during the lab session after being marked, or if we weren’t being marked that lab.

Our lab mark was based on at least two randomly assigned labs (out of the five labs).


Like lab, we only had assignments for approximately the first half of the term. Assignments were generally straightforward. We had to hand in our code online for the assignments to be automatically graded by running the handed in code against a series of tests. We were immediately given the score and were allowed to change and re-submit our code as many times as we wanted before the deadline for the assignment.


The project started halfway through the term, after all the assignments and labs had finished.

Our project involved developing an Android app that would plot UBC student schedules on a map, and determine whether two students can meet at a given time (ie. if they have mutual breaks), and if so, where they could meet on campus. A lot of the “backbone” of the code was already given to us; we just had to add certain functionality.

The project was also broken down into two phases, and smaller, more manageable tasks for each phase. We were to work on the project on our own, although in previous versions of CPSC 210, the project was done in pairs. I found the project to be challenging, but very doable as long as I started early. The TAs and instructors were also available to answer questions on Piazza. I don’t think I would have completed the project without consulting Piazza.


There was no textbook, but readings were assigned online. Many of the readings didn’t make sense to me until I re-read them for the second or third time, but re-reading them was an important part of my review for the exams.

I have heard complaints from other students about the readings being difficult to understand and abstract. It may be worthwhile to consult other resources, such as Big Java, or Java Software Solutions, or something else (there are many resources).


Start the project early and work on it regularly. The project takes a lot of time, and it would generally be a terrible idea to start the same week that it’s due. Many students started very late and couldn’t get a score greater than zero from the automated grader by the deadline of the first phase of the project. Most people will need some help with the project, whether that be through TA/office hours or through Piazza. It may be increasingly difficult to get help closer to the deadline because others may also be in the same position as you. I also recommend handing in the project early, because the online repository to which you submit code is not completely reliable, and may have technical issues especially when everyone is trying to submit a few minutes before the deadline.

On that note, also make sure to commit your project to the online repository regularly so that you have your code backed up in case the program/computer crashes. One of my friends told me that his friend’s computer crashed while he was halfway through the first phase, resulting in all that work being lost (he hadn’t yet committed). I also overheard a student talking to an instructor about how his computer crashed the day before the project was due, resulting in all his work being lost (he hadn’t yet committed either). I hear it is bad practice not to commit every few minutes for team projects.

We had to learn a lot of things on our own in this class, which was kind of intimidating, but it was intended and it was a good experience. When you’re working on a project, you have to be able to look up some things on your own. That being said, the TAs and instructors were very helpful and dedicated a lot of time and effort in guiding students to the right places/solutions throughout the project and the course.

I felt it was important to pay attention in class in order to be prepared for the exams, because lecture notes aren’t posted (at least, ones that make sense without much context) and the other materials (e.g. online readings) do not adequately cover the material on their own. One can also review the videotaped lectures from 2013W online, which is what I did for the final.

I suggest using some lab time during the first half of the course, to ask the TAs questions about any lecture material that may be confusing. During this time, TAs aren’t doing much in labs, because the labs are fairly straightforward and so people don’t need much help with them.





STAT 302: Introduction to Probability

One-line summary: This was a fun course for me. Not sure when I’ll ever apply what I learned though. I took it in part so that I could take more stats, so we’ll see…

Note: Eugenia was the instructor for the offering of the course that I took. I looked on Piazza for the previous term’s offering and it seemed quite different, unexpectedly.

Grading scheme:

Written assignments (four total) 16%
WebWork online assignments (bi-weekly) 9%
Midterm 25%
Clicker 5%
Final (must pass to pass course) 45%


1. Principles of counting: premutations and combinations
2. Definitions and rules of probability, conditional probability, conditional independence
3. Discrete and continuous probability distributions
– random variables, expected values, functions of random variables
4. Bivariate and multivariate probability distributions
– joint, marginal, and conditional distributions, conditional expectations, moment generating functions
5. Limit theorems
– convergence in probability, convergence in distribution, Central Limit Theorem

In-class activities:

I should mention that I was initially in MATH 302 so that I didn’t have to have a three hour break on Tues/Thurs, but after one class of MATH 302 I quickly left and joined STAT 302, which was taught by Eugenia.

We usually went over the lecture notes posted online, which consisted of reviewing theory as well as stepping through example problems. There were usually a few clicker questions each class. Every few classes we would also have worksheets that we worked on in assigned groups.

Solutions to example problems were not posted online, but were available at office hours.


There were four written assignments. Some questions were pretty easy, but some were quite difficult and took me a frustratingly long time to complete. I spent anywhere from four to over ten hours on each assignment. I recommend starting them early so that you can ask the TAs for help. The TA office hours were very helpful for assignments.


The Webwork online assignments were more straightforward than the written assignments and took far less time. We got several tries for most questions.


I don’t think there were assigned readings, but there was an assigned textbook and suggested practice problems from the textbook. I did not purchase the textbook, and I know many people found a copy online. I think the textbook would be useful if you wanted extra practice with the material, but most of the time the practice given is sufficient (in-class examples, assignments, webwork).


As with most stat/math courses, practice is important to understanding the material and doing well. The midterm was only 60 minutes long but there were many questions and I did not have time to check it over. This means that reading over the notes is most likely insufficient to doing well. Practice is key.

Assignments can be more difficult than they look, so I recommend starting on them early so that you can get help early.

I found making a cheat sheet (which we were allowed to for the final) really helpful. Aside from that, I redid some of the Webwork questions, in-class examples, and a few of the assignment questions, to study for the exams.





MEDG 421: Genetics and Cell Biology of Cancer

Short summary: I found this course quite interesting and I learned a lot about the paradigms of cancer cell biology, particularly about how cancer develops and evolves, current and past efforts to treat cancer, and why treating cancer remains so difficult. I found the grading/assessment in this course to be in some ways, unorthodox. If you are interested in cancer biology and do not mind putting in some work/effort for a grade in the 80s, I would recommend this course.

Note: When I took this course, it was full before the course started, but there were several seats remaining by the course drop date.


When I took the course, the prerequisites were BIOL 335 and one of BIOL 234, BIOL 362, BIOC 302, BIOC 303. However, I did not have BIOL 335. In my opinion, the knowledge I would have gained from taking BIOL 335 or BIOC 302 would not have been necessary for this course. The course coordinator did not seem strict about the prerequisites.

Grading scheme:

Article summaries 20%
Cancer e-book contributions 20%
Book club report/participation 20%
Midterm 20%
Final 20%

Each of the graded components were weighted equally, which I find strange. It seems rational to me that components would be weighted depending on the extent to which they test the student’s knowledge, and depending on the effort expected. As such, it was unusual that the midterm and final were only weighted 20%.

Syllabus (topics below are for each lecture):

1. Transformation
2. Oncogenes
3. Tumour suppressor genes
4. Protein tyrosine phosphatases
5. Genome stability
6. Autophagy
7. Stem cells
8. Immunity and cancer
9. Genetic testing with next generation sequencing (NGS)
10. Moving to treatments
11. Cancer genomics
12. Pediatric cancer genomics
13. Pharmacogenomics
14. Lymphoma
15. Genetic counselling & cancer genes
16. Angiogenesis
17. Cancer immunotherapy
18. Ovarian cancer
19. Cancer epigenetics
20. Retroviruses and cancer
21. Prostate cancer
22. Lung cancer

In-class activities:

For the most part, each lecture was given by a different speaker who was a researcher in some area of cancer biology. One of the reasons I found this course valuable was because I heard from a wide variety of cancer researchers on their area of expertise.

The lectures were usually traditional lecture format = slides + lecturing. Slides are posted online sometime after class.

Article Summaries:

We were required to summarize five research papers chosen from specific areas throughout the term. Only one student per paper was allowed, which was enforced by having us sign up the pubmed id online. Fortunately, I never had the issue of signing up for a paper that was already chosen, even when I signed up relatively late. It is feasible to sign up for the five papers all at once, and they can be changed.

It was recommended to choose papers that relate to a particular pathway or cancer, because it makes summarizing the later papers easier because you can use your previous background knowledge from the earlier papers. Choose review articles or letters (short versions of papers) was discouraged.

The time I spent summarizing each paper depended on how difficult I found it to read the paper, so choose wisely. I spent many hours for the first paper summary, and the time I spent slowly decreased as the term went on.

I found the marking of the paper summaries very strict and subjective, and towards the later paper summaries, not constructive. The highest mark I received was 18.5/20, and it seemed like marks were taken off our summaries just so that no one (or very, very few) got higher than 19/20. Following the rubric is really important to doing as well as possible on the paper summaries. Other than trying to understand the jargon in the papers, I also found it difficult to summarize papers in only one page with 1.5 spacing. You may have parts in your paper summary that seem important, but need to be omitted in order to meet the page limit. For example, a paper usually has several key findings and possibly a few minor related findings. In such cases, I sometimes presented one or two of the more important findings and omitted the other ones to meet the page limit.

I will post my article summaries if I remember (remind me if I don’t). Article summaries had to be submitted to

Cancer e-book:

When I took the course, there was an e-book being developed for the course, and we were expected to contribute to it. Initially, we were required to submit a report on a specific topic as well as edit three reports from other people, but the editing part was removed. However, we still had to edit chapters of the e-book written in previous years, which consisted of adding new paragraphs, rewriting sentences, and inserting figures which could be original work or Creative Commons.

In my case, the report was on Nobel prize work that was relevant to cancer research and was 750 words in length. I received 14/15 on my first draft and chose not to revise. I’ll post it here if I remember.

As for editing the chapters, I mostly just made edits to grammar, formatting, and to the bibliography, which were relatively insignificant edits. However, I did save often, which probably resulted in there being many edits under my name. I received a mark of 7/10 for editing which I was pleased with, given my efforts.

The editing was worth 8 out of the 20% for the Cancer e-book mark, and the report was worth the remaining 12%.

For any reports where references are needed, I highly, highly recommend using a citation manager such as Zotero. I have used RefWorks before as it was recommended in MICB 421 and SCIE 300, but Zotero is far superior and is free for anyone to use. The integration with browsers including Chrome and Firefox, as well as integration with Microsoft Word is amazing and it is extremely convenient and easy to learn and use.

Book club report/participation:

We were required to choose one of three books to read and write a two page report on. I chose The Philadelphia Chromosome by Jessica Wapner, which I read over a couple days during Reading Break.

NOTE: I am selling The Philadelphia Chromosome for $20.

I’ll post my report here if I remember. I only received 85% or something like that which was disappointing because after the instructor talked about the book report, I was under the impression that it would be marked quite leniently, and no criteria were given. The only feedback I got on the report was a comment saying “Good job” so I’m not sure where I lost marks. As with the paper summaries, I felt that marks were taken off to control grades.

As with reading any book for any course, use sticky notes while reading to bookmark/highlight key passages. This makes it much easier to find them and refer to them when you are writing the report.

Aside from the summary, there was a group discussion of the book during one of the lectures.


No textbook was required for the course. If you want to read a textbook, the e-book is easy to read and gives a good intro to many topics in cancer biology.


The exams are open book, and there are previous exams available online. Do have a look through them because the questions on past exams are a good representation of what to expect, and the questions seem somewhat unorthodox and easy to misinterpret. One of the things I really liked about this course was that problem solving was valued over memorization, which is untrue in many other courses I have taken.

For the open book exam, I printed out the notes for each lecture and stapled each lecture together so that I could go through my stack of labeled lectures easily and pick out the relevant lecture for the question.

It was important to answer the exam questions both clearly and with as much detail as possible. Despite the questions being open ended, there was usually only one or two ‘right’ answers that got full marks, and they were generally pretty obvious.

The average and median for the midterm was approximately 68%. The highest mark for the midterm was a mere 84%, and I managed to get 83%. The instructors said they did not expect the grades to be so low, and it seemed that many people were disappointed with their marks. A lot of people simply completely missed what the question was asking for on at least one question (and therefore failed that question), and there were only five questions on the exam. The instructors hinted at substantial scaling for the midterm.

In my opinion, people found the exam difficult because it is unlike other exams in life science courses. There were only five questions on the exam, and they were all open-ended, but the marking was strict. This generally makes for low marks.

Another reason why I think the grades were so low was because of unfair marking. Despite my relatively high mark of 83%, there was many examples in my midterm and undoubtedly in others’ midterms where marks were docked unfairly. One example — there was a question that asked us to describe and explain an event that could occur in a patient with melanoma that would result in failure of the combination therapy Raf inhibitor + MEK inhibitor.

My answer: “A mutation occurs in the gene coding for the MEK protein such that the MEK inhibitor no longer binds to the MEK protein. MEK can have its ‘normal’ downstream effects resulting in activation of pathways in cell division, survival, and migration.”

Answer key:
-mutation in gene for MEK protein so that inhibitor doesn’t bind
-MEK no longer inhibited, can activate pathways in cell division etc

Despite my answer being identical in content to the answer key, I was docked several marks. When I approached the TA about it, she took several minutes to look at it, and then decided to tell me that she was looking for more detail.

Another example — one question described a clinical scenario and asked us to give one hypothesis of what could be going on. In the answer key, TWO hypotheses were needed for full marks.

(Summary of) Tips:

1. When given, follow the rubric.

2. Use Zotero for references.

3. Use sticky notes while reading the book for the book report.

4. For exam questions, read the question carefully and find out exactly what it is asking so you can frame your answer properly. For example, if it asks to propose a hypothesis for a phenomena and propose an experiment to test it, then make sure you do exactly that in your answer. It would also make sense to explain how to interpret the results.

Furthermore, despite the question being open-ended, it is sometimes obvious what answer they want, and each question is usually related to a specific lecture. For example, one question described chromosomes of abnormal structure and number, and asked us to “suggest” two mechanisms that might lead to this phenomena. In class, we talked about several mechanisms that resulted in chromosomal abnormalities. All we needed to do was to describe two of them in our answer.

Based on past exam answer keys, you can to some extent predict what key words and what details they’ll be looking for in your answer. If in doubt, just write as much as possible, which increases the probability that you’ll have key words or explanations that match part of the answer key.

5. Don’t worry too much about grades. See below.


I have probably made it seem like the marking style can be quite unfavourable in this course, which may discourage people from taking it. Whether I would recommend this course depends on your goals. The majority of people who take this class receive a grade in the 80s. If you are interested in cancer biology and do not mind putting in some work/effort for a grade in the 80s, I would recommend this course. If you intend to get a 90+ in this course, it will most likely be a lot of work, and in my opinion, not really worth it. If you wish to get as high a grade as possible in this course, you may not enjoy it. If you are interested in learning about cancer cell biology and genetics but don’t want to deal with doing paper summaries and writing a portion of someone’s textbook for free, you could consider just sitting in the lectures.

I did not find the workload to be that bad, but I also wasn’t trying very hard to get a high grade, especially after the midterm. I spent three hours a week on average on this course outside of lectures, spent a day studying for the final, and ended up with 83%, which I am quite satisfied with given my effort. The average for my year was 80%. The highest mark in my year was 93%.





MICB 425: Microbial Ecological Genomics

One-line summary: One of my favourite MICB courses. A lot of emphasis on critical thinking. Small assignments, group discussions, and no exams.

Grading scheme:

Five “Evidence Worksheets” 25%
Five problem sets 25%
Four writing assignments 25%
Participation 25%


Module 1 – Origins and earth systems
– How did life originate and evolve over geological timescales?
– What roles do microbes play in global geochemical cycles and how do they support other life forms?
– What is our current understanding of global microbial diversity and abundance and what gaps are there in our knowledge?
Module 2 – Remapping the body of the world
– What methods are used to study microbial community genomics and what limitations are there?
– What does the structure and metabolism of a microbial community look like, and how does it impact the Earth?
Module 3 – Agents of open source evolution, microbial species concepts
– How prevalent is horizontal gene transfer (HGT) and what role does it play in the evolution and diversity of microbes?
– What role does HGT play in the preservation of biogeochemical pathways?
– How diverse are microbial populations and microbial ‘species’?
– What are the models for microbial species concepts and what are their limitations?
Module 4 – Distributed metabolic networks/bioinformatics?
– Using MEGAN
– How does BLAST work?

In-class activities:

Class usually consisted of either short lectures by the instructor, group presentations from students, whole class discussions about the readings/material, or small group activities.

At the end of each module, we were given a writing prompt for the writing assignment. Most people chose to continue working on the writing assignments outside of class.

My least favourite module was the bioinformatics one. We had a different instructor for that module and the activities were much less engaging.


All of our written work went into a binder that we maintained and added to throughout the term. We were given a few opportunities to hand in our binder for marking and re-marking.

“Evidence worksheets” were only marked for completeness. The problem sets were marked for correctness. Both the evidence worksheets and the problem sets are based off readings which consisted of primary literature, review articles, and less formal news articles/scientific opinion.


There are readings to do in this course, but it was not as bad as I expected. I spent an average of two hours a week outside of lecture on this course, mostly on readings or the writing assignments.


Since work could be handed and re-handed in at several points throughout the term, I think it is possible to get 100% in the course. It is not difficult to get a grade in the 90s. The most difficult aspect of the assessment were the writing assignments. According to the instructor, perfect marks were given out for the writing assignments only if a new/creative idea was brought up.

Use Zotero for references for the writing assignments. I mentioned it for MEDG 421 above and it is amazing and much better than RefWorks.

For the writing assignments, make sure to have plenty of references for each one. Even better if you reference material outside the required readings.






Posted by: idm04 | 2015/03/19

March 16th, 2015

One thing I wish I did before entering the Bachelor of Computer Science (BCS) program was to take CPSC 110. I could have taken it in the summer, or I could have taken it during the last year of my first degree. The reason is that 110 is required for 210, and 210 is required for both 221 and 213. Therefore, I had to take 110 (and 121) in first term, 210 in second term, and now I have to wait until the summer to take 221/213! If I already had credit for 110 by September, I would be able to take 210 (and 121) immediately followed by one or both of 221 and 213 in second term. One of the major advantages to getting 221 & 213 done before the summer is that those in the co-op program will be applying for jobs in May. However, the ‘normal’ slower pace may be preferable to some BCS students who are getting used to the program.

An update of my term so far:

CPSC 110

TAing is going fine. Being a TA has made me realize how much I’ve forgotten since I took this course…

CPSC 210

There were a lot of people complaining about how incredibly long the midterm was — would you like some cheese with your whine? :P Anyway, I did think that the midterm was really long, and I only sort of finished and had absolutely no time to check over anything. However, I don’t think it was really unfair, but it did make me realize how unprepared I was, even though I thought I spent a lot of time preparing. The average ended up being 57%, standard deviation of 17%. I suspect there will be scaling of some sort later on… (edit: there was)

We just finished Phase One of the project (it was due Sunday night), and boy was it tougher than I imagined. Looking at Webcat (the online grader), a considerable amount of people did not get to submit the project, which seems really weird. I was silly enough to wait until the week was over before I really started diving into the project, and as a result I wasn’t able to get much help from the TAs by means of office hours/lab hours. And my Friday lab was really packed, with people waiting as long as 10 minutes for help.

Anyway, I knew I couldn’t keep leaving it until later in case I ran into some sort of roadblock. So I stayed up on Friday night working on the project, and ended up completing enough to get 20/30 on Webcat. I ended up sleeping at 6 AM, and then I woke up at 9:30 AM because I had regretfully booked a physio appointment at 10. After I got back home, I continued working on the project and finished! IT FELT AMAZING

Then I observed the chaos that was on Piazza with lots of people freaking out about how Webcat was only giving them 0/30 and how they couldn’t find out where their code bugs were and time was running out. Again, the whining was present. I did feel bad for a lot of these people, and I tried to post a few hints. One particularly sad post read: “Webcat wouldn’t take my last submission…”

MEDG 421

Midterm average was much lower than the instructors expected — average was 68% and median was 69%. Highest mark was 84%. The marking was…. interesting.

STAT 302

Average was 59%, median was 62%. It was longer than I expected, even though I did do the practice midterms. Turns out I should actually review integration by parts and by substitution… . .





Posted by: idm04 | 2015/01/12

January 12th, 2014


This term, I’m taking four courses again: CPSC 210, MICB 425, MEDG 421, and STAT 302.

I was originally in MATH 302 but switched out in order to balance my schedule, and because Eugenia is teaching STAT 302. I’m taking it because I hear it’s useful for CS… and it’s kind of interesting.

CPSC 210 is software construction, a mandatory course for CS students. Looking forward to learning how to program in Java, and class seems good so far. The noon section is really full though, and some people had to sit in the aisle last time lol. It seems kind of strange that a core CS course would have limited seats (limited relative to demand).

MICB 425 is ecological microbial genomics. I’m taking it as an elective, and so far it seems fine. I do think our physical classroom format is quite poor for group discussions and group work because as it is everyone is in really long rows facing one direction.

MEDG 421 is cancer genetics. There seems to be a lot of work in this class, but at least it isn’t really memorization based, according to the instructors. For example, the exams will be open book and will supposedly emphasize problem solving.

PHIL 432 is metaethics. I have some interest in taking this course, but it conflicts with STAT 302, plus I’m not fond of the three consecutive hours class format.


Unfortunately, my schedule has a lot of breaks: 10 hours of break/week, but I’m not minding it that much yet. I haven’t been able to go to the gym much due to injuries, but I eventually may during my breaks.

UBC REC Intramurals

Last term, our team was disqualified from the basketball league because my team showed up an hour late (I couldn’t attend myself, but my teammates did). Turns out the REC originally scheduled us for 11 AM, but at some point suddenly switched it to 10 AM without notifying us, and so when my team showed up at 11 AM, they were told that we had been disqualified lol. If I remember correctly, both our team and our opponent were disqualified! Alas, another reason for me to dislike the REC.


I’m selling the CS121 textbook: Discrete Mathematics with Applications 4/E.


Technically I have third year standing though, so when people ask what year I’m in, I say third XD

Read More…

Posted by: idm04 | 2014/10/28

October 28th, 2014

I know I said I would stop posting, but I guess I’ll be here a little longer…


This term, I am taking CPSC 110, CPSC 121, SCIE 300, and MATH 307 in the second-degree UBC Bachelor of Computer Science (BCS) program.

Overall, classes are going alright. I kind of wish we weren’t using Dr. Racket in CPSC 110, but I can’t say whether jumping into a ‘real’ language now would be good further down the road. CPSC 110 is also a lot of work. I am not finding CPSC 121 too interesting, because of my previous overlapping coursework (MATH 220: Mathematical Proofs, and PHIL 220A: Symbolic Logic). I probably should have asked if I could skip CPSC 121, but I think the answer would still be no. MATH 307 is pretty fun, but challenging.

I genuinely wish I didn’t have to take SCIE 300, which is a lot of work. If you’re in the BCS program, I personally highly recommend against taking SCIE 300 for the Communication requirement. Unless you have an interest in learning about scientific journalism and don’t mind a lot of work. I’ll post syllabus information after the course is over, but it’s basically way too much work for what you get out of the course.

Read More…

Posted by: idm04 | 2014/09/07

September 7th, 2014 – Back to school

Hello there!

It’s been quite a long time since my last post…

First of all, there’s a new UBC blog I’ve been asked to promote – Micro Inquiry – written by a third year UBC Microbiology & Immunology student! :D

As I’ve mentioned previously, I’m probably not going to update this blog very often anymore since I’m graduated. Furthermore, a lot of my posts are becoming quite outdated, so I’m considering slowly taking them down. If there are older password protected posts you want access to, just drop me a line. Aaaand if you want to follow other UBC blogs check my blogroll in the sidebar.

Read More…

Posted by: idm04 | 2014/05/12

Fifth-year courses in UBC Sciences!

Courses listed here were taken between September 2013 and April 2014. The more I think about it, the sillier my naming system for these posts seems…

Other posts of potential interest:

First-year Courses in UBC Sciences!
Second-year Courses in UBC Sciences!
Third-year Courses in UBC Sciences!
Fourth-year Courses in UBC Sciences!

List of all courses I’ve taken

Read More…

Older Posts »



Get every new post delivered to your Inbox.

Join 66 other followers

%d bloggers like this: