Select a category to the left.



Light or dark? Choose how the site looks to you by clicking an image below.

Light Dark


Preferred Language

All content on is originally in UK English. However, if content exists in your preferred language, it will display as that instead. Feel free to choose that below. This will require a page refresh to take effect.


"" details

Domain Name:
Site Version: 3.0.1
Last Updated: 2019/08/18
Welcome to CS302! This class is named "Data Structures and Algorithms II". This course is a continuation of CS140, where we cover concepts of various data structures and algorithms (Hence the course name). CS302 generally starts to introduce the idea of graphs, as well as algorithms and applications that use them. You'll learn the applicative and theoretical concepts of them. Take good notes!

This time around, I'm the head TA of the course. Each of you are assigned to one of three lab sections. Each lab section is around three hours long. I host two of the three lab sections. Depending on which one you attend, I will be aided by another TA.
  • Section 1 (8:00 - 11:00): I'm hosting. No assistants. Yeah, no one wants to be here at 8 am.
  • Section 2 (11:15 - 14:15): I'm hosting. The graduate TA helping is Ben Ramsey.
  • Section 3 (14:30 - 17:30): The undergraduate TA hosting this section is Ankush Patel. I will occasionally attend to give announcements or hand back exams.

Office Hours:
Min H. Kao Building
Room 217

Wednesday: 11:00 - 13:00
This section will have links to guides or documentation that I write and find valuable for this course. Typically it's for common issues I notice among students. Check frequently!
Lab Sections
In lab, I may write various example programs on a projector or write concepts on the board. I archive every file from every lab session, and may put them up online (depending on the material). I do not post lab solutions.

Each module below will have tags that will let you to tell what content is in them. Here are the possible tags you may find:
Mini-guides on concepts that you will use in each lab.
Template code that is for the assignment is given.
There is a simulator to compare your code results to.
There are lab instructions, procedures, suggested development order, or hints.
There are files on for that module. These are "SIDE" files, which may be miscellaneous programs, notes, or board drawings. As such they may help you on the lab assignment, but they may not.
No guide available.
Just a heads up: Do not rely on me writing guides. I may write them... And I may not. I recommend taking notes just in case. There may not even be a lab guide. In that case, the module will be greyed out and unclickable.