This repository contains programming assignments from the various computer science courses I've completed during my time at Washington University in St. Louis. Its purpose is three-fold. First, it provides me an opportunity to keep my code under source code control for future reference. Second, it gives a demonstrable overview of my technical skills. Finally, it allows for a perspective on how my skills have progressed over time.
-
Computer Science I (CSE 131) (Code not available)
-
Computer Science II (CSE 132) (Code not available)
-
Algorithms and Data Structures (CSE 241)
-
Creative Programming and Rapid Prototype Development (CSE 330S) (Code not available)
-
Object Oriented Software Development Laboratory (CSE 332S)
-
Independent Study in Parallel Data Structues (CSE 400) (See Resume)
-
Independent Study: Gaussian Processes for Prediction Sorghum Biomass Yield (CSE 400) (See Resume)
-
Introduction to Machine Learning (CSE 417A)
-
Cloud Computing with Big Data Applications (CSE 427S) (Code not available)
-
Advanced Algorithms (CSE 441T)
-
Introduction to Artifical Intelligence (CSE 511A) (Code not available)
-
Data Mining (CSE 514A) (Audited)
-
Bayesian Methods in Machine Learning (CSE 515T)
-
Machine Learning (CSE 517A)
I will be posting code from additional classes at the end of each semester.
Course description: Introductory course in computer science. Covered basic programming techniques, loops, recursion, basic data structures, polymorphism, and object-oriented programming.
Professor: [Dr. Yixin Chen] (http://www.cse.wustl.edu/~ychen/)
Language Used: Java
Final Course Grade: A
Taken Fall 2012
Course description: Explored concepts, techniques, and design approaches for dealing with persistence, concurrency, and network computing. Algorithms and data structures presented as needed to support discussion of these topics, including Havender's algorithm and BlockingQueues. Concepts and skills mastered through the design and implementation of software projects while collaboration skills developed as work was performed in small teams.
Professor: [Dr. Roger Chamberlain] (http://www.ccrc.wustl.edu/~roger/)
Language Used: Java
Final Course Grade: A
Taken Spring 2014
Course description: Study of fundamental algorithms, data structures, and their effective use in a variety of applications. Emphasizes importance of data structure choice and implementation for obtaining the most efficient algorithm for solving a given problem. A key component of this course is worst-case asymptotic analysis, which provides a quick and simple method for determining the scalability and effectiveness of an algorithm. Other topics covered generally include: divide-and-conquer algorithms, sorting algorithms, decision tree lower bound technique, hashing, binary heaps, skip lists, B-trees, basic graph algorithms.
Professor: Dr. Kunal Agrawal
Course Site: http://www.classes.cec.wustl.edu/~cse241/web/
Language(s) Used: Java
Final Course Grade: A
Taken Fall 2013
Course description: This course uses web development as a vehicle for developing skills in rapid prototyping. We acquire the skills to build a Linux web server in Apache, to write a web site from scratch in PHP, to run an SQL database, to perform scripting in Python, to employ the Django web framework, and to develop modern web applications in client-side and server-side JavaScript. The course culminates with a creative project in which students are able to synthesize the course material into a project of their own interest. The course implements an interactive studio format: after a formal presentation of a topic, students develop a related project under the supervision of the instructor.
Professors: Dr. Todd Sproull
Course Site: http://research.engineering.wustl.edu/~todd/cse330/
Language(s) Used: HTML, PHP, Mysql, JavaScript, Python
Final Course Grade: A-
Taken Fall 2014
Course description: Intensive focus on practical aspects of designing, implementing and debugging object-oriented software. Special focus on design and implementation based on frameworks, as they are central themes enabling the construction of reusable, extensible, efficient, and maintainable software.
Professors: Dr. Christoper Gill, Dr. Ruth Miller
Course Site: http://classes.cec.wustl.edu/~cse332/
Language(s) Used: C++
Final Course Grade: A
Taken Spring 2014
Course description: See resume for details.
Professor: Dr. Kunal Agrawal (see above)
Language(s) Used: C, Cilk
Final Course Grade: A
Taken Fall 2014
Course description: This course is a broad introduction to machine learning, covering supervised learning, unsupervised learning, decision-making under uncertainty, and reinforcement learning. Topics that will be covered include generative and discriminative techniques for classification (including regression, Naive Bayes, decision trees, neural networks, nearest-neighbor methods, support vector machines, and boosting), clustering and dimensionality reduction, dynamic programming, and temporal difference methods.
Professors: Dr. Sanmay Das
Course Site: http://www.cse.wustl.edu/~sanmay/teaching/cse417/
Language(s) Used: Matlab
Final Course Grade: B
Taken Fall 2014
Course description: Audited a course surveying high-level approaches to common data mining problems, such as classification, dimensionality reduction, clustering, etc. Read a lot of academic papers to gain experience learning emerging techniques and approaches.
Professors: Dr. Weixiong Zhang
Course Site: http://www.cse.wustl.edu/~zhang/
Language(s) Used: Matlab
Final Course Grade: N/A
Taken Spring 2015
Course description: Overview of Bayesian Statistics from a Machine Learning point of view. Topics included Bayesian Inference, Bayesian Linear Regression, Bayesian Model Selection, Bayesian Logistic Regression, Gaussian Process Regression, Kernels and Gaussians, Bayesian Quadrature, Bayesian Optimization, Expectation Propogation, Rejection Sampling, MCMC.
Professors: Dr. Roman Garnett
Course Site: http://www.cse.wustl.edu/~garnett/cse515t/
Language(s) Used: Matlab, Python
Final Course Grade: A-
Taken Spring 2015
Course description: An advanced course on the topic of Machine Learning. The majority of the course is a thorough overview of Supervised Learning, including popular algorithms like decision trees and variants, nearest neighbors, ANNs, etc, but also theoretical implications of supervised learning approaches such as the bias-variance decomposition and the bias-variance tradeoff, cross-validation, etc. The end of the course was a survey of dimensionality reduction methods, comparison of machine learning approaches (e.g. frequentist vs. bayesian, etc), gaussian processes and bayesian optimization, and generative mixture models and applications, like clustering.
Professors: Dr. Killian Weinberger
Course Site: http://www.cse.wustl.edu/~cse517a/
Language(s) Used: Matlab
Final Course Grade: B+
Taken Spring 2015