Core Courses
These courses are required for all DataScience@Denver students, regardless of background or data science experience. Review our sample course schedule for an example of program progression and course sequence.
Designed to prepare students for success, foundational courses include:
-
This course presents the elements of calculus essential for work in data science. Students will study differentiation and integration in the context of probability density and of optimization.
-
This course presents the elements of linear algebra and discrete math essential for subsequent coursework in data science.
-
This accelerated course covers advanced Python programming for data scientists. Course objectives: name and demonstrate proficiency using advanced Python programming techniques for data science, analyze a programming task and create a development plan and high-level software design that accomplishes the task, relate common portions of the Python standard library to specific programming tasks, understand and apply aspects of the Python scientific programming ecosystem to achieve a data-science analysis goal, and collaborate with another data scientist to develop a software program that completes a given data-science task.
-
The course introduces fundamentals of probability for data science. Students will survey data visualization methods and summary statistics, develop models for data and apply statistical techniques to assess the validity of the models. The techniques will include parametric and non-parametric methods for parameter estimation and hypothesis testing for a single sample mean and two sample means, for proportions, and for simple linear regression. Students will acquire sound theoretical footing for the methods, where practical, and will apply them to real-world data, primarily using R.
-
This course introduces the design and analysis of algorithms within the context of data science. Topics include data structures, asymptotic complexity and algorithm design techniques such as incremental, divide and conquer, dynamic programming, randomization, greedy algorithms, and advanced sorting techniques. Examples to illustrate techniques are drawn from multi-dimensional clustering (k-means and probabilistic), regression, decision trees, order statistics, data mining using apriori algorithms, and algorithms for generating combinatorial objects.
-
An introductory class explaining what a database is and how to use one. Topics include database design, ER modeling, database normalization, relational algebra, SQL and B trees. Each student will design, load, query and update a nontrivial database using a relational database management system. An introduction to a NoSQL database will be included.
-
This course explores visualization techniques and theory. The course covers how to use visualization tools to effectively present data as part of quantitative statements within a publication/report and as an interactive system. Both design principles (color, layout, scale and psychology of vision) as well as technical visualization tools/languages will be covered.
-
This course builds on material in Probability and Statistics I. Students will carry out model fitting and diagnostics for multiple regression, ANOVA, ANCOVA and generalized linear models. Dimension reduction techniques such as PCA and Lasso are introduced, as are techniques for handling dependent data. The course introduces the principles of resampling and Bayesian Analysis. Students will acquire sound theoretical footing for the methods, where practical, and will apply them to real-world data, primarily using R.
-
This course addresses the foundational concepts and components of Artificial Neural Networks (ANN), highlighting their capabilities, strengths, and weaknesses as a machine learning algorithm. Students taking this course will develop ANN models from scratch in Python as a basis for understanding their design as well as the underlying mechanics and calculations that shape their behavior. Key topics such as forward-backward propagation, loss function characteristics and optimization will be considered in relation to model design and computational efficiency as well as to problems such as exploding and vanishing gradients. Training strategies (e.g., dropout, initialization, batch normalization) will further enable students to assess trade-offs in model bias & variance. Coupled with hands-on assignments, these building blocks provide the knowledge and skills required to effectively design and implement ANN models that are ethically and technically sound. As well as foreground important architectures such as Convolutional ANNs, Recurrent ANNs, LSTMS, and Transformers as well as their applicability to modern problems. Student learning and proficiency will be assessed based on a combination of quizzes, coding assignments, exams, and a culminating project. Prerequisite: COMP 4432.
-
This course will give an overview of machine learning techniques, their strengths and weaknesses, and the problems they are designed to solve. This will include the broad differences between supervised/unsupervised and reinforcement learning as well as associated learning problems such as classification and regression. Techniques covered, at the discretion of the instructor, may include approaches such as linear and logistic regression, neural networks, support vector machines, kNN, decision trees, random forests, Naive Bayes, EM, k-Means and PCA. After course completion, students will have a working knowledge of these approaches and experience applying them to learning problems.