The basics of computational statistics to prepare students for machine learning and data science.

- Teacher: Cailyn Craven
Study fundamental concepts on which programming of languages are based, and execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency and modularity. Learn how to select a language and to adapt to a new language.

- Teacher: Eric Reckwerdt
Surveys data management, including file systems, database management systems design, physical data organizations, data models, query languages, concurrency, and database protection. Requisites: Requires prerequisite course of CSCI 3104 (minimum grade C-).

- Teacher: Supriya Manikonda Keshavaiah Naidu
This course covers tools and practices for software development with a strong focus on best practices used in industry and professional development, such as agile methodologies, pair-programming and test-driven design. Students develop web services and applications while learning these methods and tools.

- Teacher: David Knox
- Teacher: Sreesha Nath

- Teacher: Cailyn Craven
- Teacher: Elisabeth Stade
Introduces students to tools, methods, and theory to construct predictive and inferential models that learn from data. Focuses on supervised machine learning technique including practical and theoretical understanding of the most widely used algorithms (decision trees, support vector machines, ensemble methods, and neural networks). Emphasizes both efficient implementation of algorithms and understanding of mathematical foundations.
- Teacher: Hoang Truong