Statistical Computing (Graduate level). In this class, my students learn how to
develop correct, well-structured, and readable code;
design useful unit tests at all stages of development;
effectively use development tools such as editors/IDEs, debuggers, profilers, testing frameworks, and a version control system;
build a small-to-medium scale software system that is well-designed and that facilitates code reuse and generalization;
select algorithms and data structures to solve common statistical and computing problems;
write small programs in R and Python; and
learn how to form agile software teams.
apply basic concepts that are related to programming on the cloud.
Statistical Computing II (Graduate level). In this class, my students learn how to
conduct data management of large unorganized datasets efficiently by designing, building and querying relational databases using Postgres;
generate insights from large complex datasets by leveraging big-data analytics frameworks to build medium-to-large scale software systems using Apache Spark;
use generated insights from large datasets to improve decision making by building recommendation systems that uses machine learning concepts using Tensorflow & Spark MLlib; and
simplify the deployment and portability of large complex applications to promote continuous integration and continuous delivery concepts using Docker.
Statistical Computing (Undergraduate level). In this class, my students learn how to
define and manipulate vectors, data frames, and lists;
process strings and learn how to apply regular expressions;
input and pre-process data (i.e., how to ``wrangle data");
write functions (with proper coding style);
simulate univariate and multivariate data via random sampling;
apply methods for, e.g., integration, approximation, optimization, and dimension reduction;
work with date-and-time-based data; and
apply debugging tools and unit testing.
Introduction to Cloud Computing (Undergraduate level). In this class, my students learn how to:
define cloud computing concepts;
identify computing service categories and differentiate public/private clouds;
build portable applications that can be deployed on the cloud easily;
use common big data processing framework; and
implement few big data algorithms;
Special Topics Course (Undergraduate level)
FreeBSD Summer Course (Undergraduate level)
Parallel Programming (Graduate level)
Software Testing (Graduate level)