Education

Following is a brief overview of the courses I have completed or currently taking at the University of Alberta:

    Computing Science
  1. Compiler design Parsing techniques, Abstract-syntax trees, symbol table construction, type checking, tree grammars, string templates, error handling, intermediate representations.
  2. Introductory Machine Learning Bayesian estimation, Optimizing functions, Polynomial regression, Logistic regression, Bayesian regression, Regularization.
  3. File and Database Management Database design, Query languages, Files and indexes.
  4. GPU Programming CUDA programming, Functionality and maintainability of GPU, Scalability and portability.
  5. Tangible Computing Key concepts of procedural programming, basic algorithm design and analysis. Programming on the Arduino platform in C/C++ and an introduction to the UNIX environment. Algorithm design paradigms Programming in Python
  6. Computer Organization and Architecture General introduction to number representation, Architecture and organization concepts of Von Neumann machines, Assembly programming in MIPS on the SPIM simulator, Floating point representations, Memory management, Pipelining in the processor, Cache memory.
  7. Advanced algorithm design and analysis Greedy algorithms and matroid theory, Dynamic Programming, Network Flow, Linear Programming, Computational complexity and NP-Completeness, Approximation algorithms.
  8. Operating Systems Process and thread management, CPU Scheduling, Memory management, File System implementation and file I/O, Disk management.
  9. Formal Language, Automata and Computability Regular languages and finite state machines, Context-free languages and push-down automata, Turing machines, Decidability and Reducibility, Basic complexity theory.
  10. Reinforcement learning Bandit problem, Markov Decision Processes and Dynamic Programming, Monte-Carlo and Temporal Difference methods, Model-based learning, Function approximation and gradient-based learning.
  11. Functional programming in Lisp and logic Programming in Prolog Recursion, Lambda Calculus, Constraint programming.
  12. Mathematics
  13. Analysis Single-variable and multivariable calculus, Complex Analysis, Introductory differential equations.
  14. Algebra Linear Algebra, Rings and modules, Group theory, Representation theory, Lie theory, Graph theory, Coding theory, Combinatorics.
  15. Statistics Discrete random variables and distributions, Continuous random variables and distributions, Multivariate distributions.

Contests

Here is a list of programming contests I have participated in, starting from the most recent:

Contest Result
Alberta Collegiate Programming Contest 2019
Ranked 9th out of 41 official teams
Communitech's Code to Win Challenge 2019 Top 75 out of 1000 across Canada
38th out of 75 in the final round
Rocky Mountain Regional Contest 2019 Ranked 3rd out of 75 teams
Silver medalist on the University of Alberta site
2019 North American Regionals Practice Contest 4 Ranked 9th out of 26 teams
2019 North American Regionals Practice Contest 3 Ranked 7th out of 32 teams
2019 North American Regionals Practice Contest 2 Ranked 6th out of 30 teams
2019 North American Regionals Practice Contest 1 Ranked 10th out of 45 teams
UBC Practice Contest 2019 Ranked 10th out of 83 teams
University of Alberta Programming Contest 2019 Ranked 3rd out of about 30 teams
Rocky Mountain Regional Contest 2018 Ranked 23rd out of 65 teams
Alberta Collegiate Programming Contest 2018 Ranked 15th out of 44 teams