This course provides an introduction to fundamental operating systems concepts. Topics include the process model of computation and concurrent processes, inter-process communication and synchronization, process scheduling, deadlock, memory management, paging and segmentation, and file systems.
Every Spring
This course will expand upon the skills learned in Introduction to Data Science to conduct the entire machine learning process, from start to finish, to create and characterize models from data. Students will learn a collection of the most commonly used machine learning algorithms and how to apply them for a particular problem. In addition, students will evaluate the performance of a model and diagnose potential problems with a prediction. All of this will be conducted using a high-level programming language along with the most recognized and current machine learning libraries used in industry.
Every Spring
In a data-rich, data-driven society, it is increasingly important to be able to tell a story with data. This course introduces the student to the fundamentals of advanced data visualization techniques, using both interactive computer visualizations and publication ready charts to display data and communicate model results. Whether your interests are related to business or science, effective, accurate, and ethical communication is essential in today’s data-centric world.
Every Spring
This course provides a deeper look into algorithms and data structures from an object-oriented programming perspective. Data structures discussed will include linked lists, stacks, queues, trees, binary search trees, hash tables, heaps and graphs. Concepts such as generic types, iterators, and dynamic programming are also addressed.
Every Spring
This course offers an introduction to the foundations of computing. Topics include different models of computation such as finite automata, push-down automata, Turing Machines, and regular expressions; grammars and parsing techniques; solvable and unsolvable problems; and P and NP complexity classes.
Every Spring
This course introduces software engineering basics including systems engineering, system life cycles, requirements analysis and software design, software design principles, types of systems, implementation, quality assurance, software testing, software maintenance, and software project management.
Every Fall
The objective of this course is to teach the student the basic principles involved in the design and operation of computer networks. Topics include computer network architectures and models, physical media and signaling, data link protocols, medium access control, routing and IP, transport services including TCP/UDP, network applications, local-area and wide-area networks. The course will consist of both a lecture portion and a hands-on laboratory.
Every other Interim, odd years
Bioinformatics is the application of computer science to biology and medicine but it is also a driver of how questions are generated and answered in modern biology. The magnitude of biological data - from environmental to genomic - is growing exponentially. This course will introduce students to a varied sampling of publicly available biological data and the basic scripting skills to organize, manage, and analyze that data. They will learn about algorithm design for genome and sequence analysis, genetic variation, phylogenetics, structural, and systems biology. Students will conduct independent projects and be introduced to the highly used programming language and statistical environment R and Python.
Every other Spring, odd years
This course introduces the student to various aspects of artificial intelligence (AI), whose goals are the creation of more useful machines by making them more "intelligent." The course focuses on the fundamentals of machine learning and uses supervised, unsupervised, and reinforcement learning algorithms for classification and prediction tasks. The student will learn to build models from data using regression, logistic regression, classification and regression trees, random forests, ensemble and boosted methods, neural network techniques, and deep learning using convolutional neural networks. These algorithms are then applied to the areas of machine vision, image feature recognition, natural language processing, and general predictive techniques used in the field of Data Science.
COSC
212
and
210
or
COSC
260
Every Fall
Special Topics in Computer Science