An introduction to the structure of computer systems and the relationship between software and hardware. Topics include computer organization and representation of information in a computer. Programming assignments will be used to illustrate the digital representation of data, the fundamental tasks associated with an operating system, network communications, etc.
An introduction to the foundations of discrete structures as they apply to data science, focusing on providing a solid theoretical foundation for further work. Topics include sets, ordered structures, graph and trees, functions, proof techniques, number systems, logic, Boolean algebra, etc.
This cloud computing course focuses on practical hands-on experience with modern cloud computing ecosystems. It features content based on active engagement with public cloud services and real-world experiences. Students will be introduced to contemporary coding paradigms designed for horizontally scalable computing environments.
Analysis of the use of appropriate data structures to hold and process large amounts of data. Application of the data structures using data science and machine learning algorithms and discussion of the algorithms' runtimes.
Current relational database design concepts for Data Science majors, including ER diagrams and normalization. Database access techniques such as SQL and JDBC. Database issues including performance and security. Web-database applications.
An introduction to the data analytics used in machine learning, including descriptive statistics, probability and counting theory, samples and probability distributions, inferential statistics, linear regression, principal component analysis, and non-parametric analysis. Ethics in data analytics are also discussed.
This course provides an introduction to the fundamental methods and theory of modern machine learning. Machine learning algorithms covered include: shallow, mid-level, and deep learning models and their applications as well as unsupervised learning and reinforce learning techniques.
Investigation of the various techniques for creating effective visualizations, incorporating principles of graphic design, cognitive and perceptual psychology, data analysis, and human factors evaluations. Using the growing toolbox for visual description and presentation, students apply visualization techniques and build novel visualization tools for solving complex problems.
Provides an overview of cybersecurity threats, vulnerabilities, and defensive mitigations. The course emphasizes both theoretical concepts and practical application with critical thinking. Example topics include: authentication, access control, malware, intrusion, firewalls, database and cloud security, auditing/monitoring, and risk management.
This course investigates how the data parallel paradigm can be extended to the distributed case, using modern big data tools. Parallel programming models will be investigated in detail. Key issues related to distribution, like latency and network communication will be considered and how they can be addressed effectively for improved performance.
A semester-long project course in which students will create a computing system. The project requires applying information technology according to established design management practices, including technical presentations (oral and written) by all students.
Study of advanced topics in data science.