My name is Saeid Naderiparizi, natively written as سعید نادری پاریزی .
I am a second year M.Sc. student in Computer Science at the University of British Columbia.

My resume is available here .

### Education

• M.Sc. in Computer Science, The Univerisity of British Columbia, Vancouver, Canada.
• B.Sc. in Computer Engineering, Sharif University of Technology, Tehran,Iran.
• Diploma in Physics and Mathematics Discipline, Allameh Helli High School, Tehran,Iran.

### Honors and Awards

• Ranked 3rd in Cumulative GPA among the students majoring in Hardware Engineering, class of 2016, Sharif University of Technology.
• Ranked 10th in Cumulative GPA among the students majoring in Computer Engineering, class of 2016, Sharif University of Technology.
• Awarded summer internship grant from Institute of Science and Technology (IST) Austria
Summer 2016.
• Won bronze medal in the 21th INOI (Iran National Olympiad in Informatics).
September 2011.

# Research

• Designing an efficient method for optimizing Latent Structural SVMs - Under supervision of Prof. Christoph H. Lampert.
In this project we designed and implemented an efficient method for training Latent Structural SVMs costly max-oracles using Frank-Wolfe algorithm on the dual objective. The method does not need specifying a learning rate and it gives a definite result. It was my summer internship project.
• Sequential Bound Optimization -- a method for optimizing non-convex objectives - Under supervision of Dr. Sobhan Naderi Parizi.
We propose an iterative procedure for optimizing non-convex objective functions that works by optimizing a sequence of convex bounds on the true objective. Our procedure retains a set of "valid" hypotheses (latent configurations) on each training example. A hypothesis is removed from the set only when it is no longer supported by the model. In contrast, existing methods such as CCCP consider only a single hypothesis per each training example. We show empirically that our method is less sensitive to initialization and converges to a better solution than existing methods.
• Finding clusters in Complex Networks - Under supervision of Prof. S. A. Motahari.
In this work, we studied different methods for finding clusters in complex networks and we tried some of them on biological networks.

# Projects

• RegNet: Regularizing Deep Networks - Final project of the Multimodal Learning with Vision, Language and Sound course at UBC. [Code]
• Learning to ride a bike - Final project of the Computer Animation course at UBC. [Code] [Report]
Implemented a simulator for bicycle motion and used Fitted Value Iteration algorithm for learning to keep the bike balanced. We implemented this in Python and used PyOpenGL for its graphics. The next goal is to add a target point which the bike should learn to get there and meanwhile, keep the bike balanced but it is not implemented yet.
• Learning Influence Probabilities under ICIDT model - As parts of the Social and Information Networks course at UBC. [Code] [Report]
Came up with a model for influence propagation in social networks which captures decay in adoption probabilities over time and implemented maximum likelihood estimation in C++ to learn the probabilities under this model. To my knowledge, the problem of learning probabilities in this time decaying model had not been studied before.
• Implementation of some Neural Networks - As parts of the Neural Networks and Fuzzy Systems course at Sharif University of Technology.
Implemented Multilayer Perceptron Networks, Auto-encoders, RBF Networks, etc. as homeworks of the course in $${\rm M{\small ATLAB}}$$.
• Implementation of a 3D reconstruction system - Final project of the Fundamentals of 3D Computer Vision course at Sharif University of Technology.
Implemented an algortithm to generate the point cloud of a 3D object using a few photos taken of it. It uses SURF features to find and match keypoints, find position of cameras and then aggregates them to generate the point cloud. This project is done in $${\rm M{\small ATLAB}}$$.
• Implemetation of Bitonic Sort in CUDA for NVIDIA GPUs - Final project of the Fundamentals of Multicore Computing course at Sharif University of Technology.
Implemented Bitonic Sort in CUDA and parallelized it according to the NVIDIA architecture to maximize performance. Bitonic Sort consists of $$\mathcal{O}(n \log^2(n))$$ comparators and time complexity in serial operations is $$\mathcal{O}(n \log^2(n))$$ (which is not good) but it can be parallelized well and in that case time complexity is $$\mathcal{O}(\log^2(n))$$.
• Implementation of the Simplex algorithm - Final project of the Numerical Analysis course at Sharif University of Technology.
Implemented Simplex algorithm which is used for solving Linear Programming optimization problems. This was done in $${\rm M{\small ATLAB}}$$ and with GUI
• Implementation of Sudoku and Reversi game in Prolog - Final project of the Artificial Intelligence course at Sharif University of Technology.
Implemented Reversi player using Alpha-beta pruning and Sudoku solver using Arc-consistency.
• Implementation of IRC, NOC simulator and MPLS network simulator - Projects of the Computer Networks course at Sharif University of Technology.
Implemented Internet Relay Chat using C++ socket and pthread. Also implemented Network on Chip routing simulator and Multilevel Packet Switching network using C++.
• Implementation of MLFQ scheduler in FreeBSD kernel - Final project of the Operating Systems course at Sharif University of Technology.
Implemented a Multilevel Feedback Queue (MLFQ) scheduler. MFLQ prioritizes processes based on their running time using multiple queues with different waiting times, where processes can move between the queues during the scheduling process.
• Design and implementation of CModel of a hardware - The project of the Hardware Training course at Sharif University of Technology.
As a member of a team of 10 engineers, I was responsible for designing and implementation of the simulator (in C++) for test and verification of the hardware.
• Design and implementation of an LL1 compiler - Final project of the Fundamentals of course at Sharif University of Technology.
Implemented an LL1 compiler in C++ for a custom language. An LL1 compiler features LL1 parser which is a top-down parser for specific unambiguous grammars. The key importance of using an LL1 grammar is that constructing the parse table becomes straightforward because of the unambiguity.
• Developing computer games in Qt - Final project of the Advanced Programming course at Sharif University of Technology.
Implemented an LL1 compiler in C++ for a custom language. An LL1 compiler features LL1 parser which is a top-down parser for specific unambiguous grammars. The key importance of using an LL1 grammar is that constructing the parse table becomes straightforward because of the unambiguity.
• Implementation of a face detection algorithm - Final project of the Introduction to Programming course at Sharif University of Technology.
Implemented a simple face detector that worked by classifying image pixels based on their RGB and HSL color values, followed by applying morphological filters on the resulting binary output, and then finding high scoring face-sized blobs.