Computer Science (CS)
CS 1030. Problem Solving with Computers. 3 Hours.
For any student interested in how computers are used to solve problems. This course will introduce the use of computers in problem solving including problem decomposition and algorithm construction. Students will be required to complete simple programming projects. Offered based upon sufficient student need. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Read and write small computer programs and a simple web page. 2. Communicate through discussion and writing about data and its effect on daily life. 3. Work with peers in creating, writing, and evaluating computer programs. Course fee required.
CS 1400. Fundamentals of Programming. 3 Hours.
Required of all students pursuing Computer and Information Technology degrees. Open to all students with a general interest in computer programming. Covers structured programming techniques and the syntax of a high level programming language through completion of programming projects of increasing difficulty. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Read and write small computer programs. 2. Use language components such as variables, conditionals, and lists. 3. Decompose small problems. Course fee required. Prerequisites: CS 1030 (Grade C or higher) or MATH 1010 or higher MATH course (Grade C or higher) or a placement score qualifying for enrollment in MATH 1050, taken within two years of enrollment in this course. FA, SP, SU.
CS 1410. Object Oriented Programming. 3 Hours.
Required of all students pursuing Computer and Information Technology degrees, open to all students with a general interest in computer programming. Introduces object oriented programming techniques through completion of programming projects of increasing difficulty. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Construct computer programs in a modern development environment using standard tools. 2. Develop solutions using a range of programming constructs, including control structures, functions, input/output, classes and objects, and data collections. 3. Design and implement programs from English descriptions. 4. Demonstrate the use of correct syntax and semantics in a high-level programming language. Course fee required. Prerequisites: CS 1400 (Grade C or higher). FA, SP.
CS 1500. History of Video Games. 3 Hours.
This course explores the history, culture, and design of video games from their earliest digital experiments to todays immersive, networked worlds. Students will examine key milestones in hardware, software, and genre evolution, while analyzing games as cultural, political, and artistic artifacts. Alongside lectures and readings, students will engage directly with games (playing, reviewing, and critiquing them) to develop a deeper understanding of how mechanics, story, technology, and society intertwine. Class activities include discussions, critical reviews, short papers, and creative exercises in game asset design. The course culminates in a final project where students design and build a simple playable game using a no-code, Python-based RPG editor. **COURSE LEARNING OUTCOMES (CLOs) By the end of the course, students will be able to: 1. Identify major technological and cultural milestones in video game history. 2. Analyze games as reflections of cultural and social dynamics. 3.Evaluate the evolution of game genres and mechanics. 4.Apply fundamentals of game design in critique and creation. 5. Design and present a basic game prototype. FA.
CS 2100. Discrete Structures. 3 Hours.
Required of students pursuing degrees in Computer Science, Software Engineering, and others within the Computing department. Open to any student with an interest in counting theory and applications. Covers mathematical reasoning, combinatorial analysis, sets, permutations, relations, computational complexity, and Boolean logic through homework and programming assignments. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Apply the principles of logic and set theory to solve computational and combinatorial problems. [CS/SE PLO #2]2. Enumerate discrete structures of a given kind and size via the use of combinations, permutations, and other combinatorial constructs. [CS/SE PLO #2]3. Solve complex problems by reducing them into simpler sub-problems and finding patterns. [CS/SE PLO #5]4. Implement software related to discrete math topics, including a modern cryptography system such as RSA. [CS/SE PLO #1, #2, #3] Prerequisites: CS 1410 (Grade C or higher). FA, SP.
CS 2320. Introduction to Machine Learning. 3 Hours.
This course offers a beginner-friendly introduction to the fundamental concepts and applications of machine learning using public libraries. Designed for students with no prior experience in the topic. Open to all students with a general interest in machine learning and artificial intelligence. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Grasp the foundational concepts of machine learning. 2. Explore real-world applications of machine learning using public libraries. 3. Gain hands-on experience by applying foundational machine learning concepts to practical scenarios. 4. Develop the ability to communicate machine learning concepts and results. Prerequisites: CS 1400 (Grade C or higher). SP.
CS 2420. Introduction to Algorithms and Data Structures. 3 Hours.
Required of students pursuing a Computer Science, Software Engineering, and others within the Computing department. Open to any student with a strong interest in computer programming. Covers the design and use of common data structures, lists, stacks, queues, trees, hash tables, and graphs through completion of several challenging programming projects. Introduces computational complexity, algorithm analysis, and NP-Complete using the context of several algorithms including sorting, searching, SAT, Traveling Salesperson, factoring, etc. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Discuss the basic principles of many software data structures, including efficiencies and tradeoffs. 2. Implement and use several data structures, including Binary Search Trees, Hash Tables, Graphs, and more. 3. Demonstrate a working knowledge of Big-O complexity and Algorithm Analysis. 4. Implement several recursive algorithms. 5. Implement and analyze several sorting algorithms. Course fee required. Prerequisites: CS 1410 (Grade C or higher). FA, SP.
CS 2450. Software Engineering. 3 Hours.
Required of students pursuing a Computer Science degree or emphasis, open to any student with a strong interest in computer programming. Covers current software engineering theory and practice through completion of a challenging team project. Dual listed with SE 2450 (students may take only one course for credit). **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Explain the software engineering knowledge, skills, and professional standards necessary to begin practice as a software engineer. 2. Apply and compare appropriate theories, models, and techniques that provide a basis for the software development lifecycle. 3. Construct reliable software artifacts, both individually and as part of a team. 4. Evaluate trade-offs in software engineering practices and determine appropriate balances in project decision making. 5. Employ new models, techniques, and technologies as they emerge and appreciate the necessity of such continuing professional development. Course fee required. Prerequisites: CS 1410 (Grade C or higher). FA, SP.
CS 2500. Data Wrangling. 3 Hours.
This course provides an introduction to Data Science by first giving a high-level overview of the general process and then providing depth in the first phase of the process, including acquiring and preparing large and complex datasets for analysis. Students will apply these concepts to real datasets using state-of-the-art development tools. The course will include class discussions and readings covering case studies relevant to data ethics. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Describe the common phases of data science. 2. Prepare solutions to acquire, clean, and transform raw datasets in preparation for analysis. 3. Experiment with advanced data science topics, such as mining and visualization. 4. Practice learned concepts using professional-grade development tools and libraries. 5. Evaluate case studies related to ethical, bias, and privacy issues in data science. Prerequisites: CS 1410 (Grade C or higher). FA.
CS 2810. Computer Organization and Architecture. 3 Hours.
Required of students pursuing a Computer Science degree or emphasis, open to any student with a strong interest in computer programming. Covers digital hardware design and systems programming, including numeric representations, digital logic, processor architecture, instruction sets, assembly language, and other low-level programming topics. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Analyze the Instruction Set Architecture as the contract between hardware and software, showing how high-level constructs reduce to low-level operations. 2. Evaluate how architectural features such as memory hierarchy and instruction-level parallelism affect program behavior and performance. 3. Combine hardware principles and programming concepts to reason about how programs execute at multiple levels of a system. 4. Create architecturally-aware software by applying principles of data layout, memory organization, and instruction behavior. Course fee required. Prerequisites: CS 1410 (Grade C or higher) and can be concurrently enrolled. FA, SP.
CS 3005. Programming in C++. 3 Hours.
For student pursuing degrees in Computer Science and Computer and Information Technologies, or any student with a strong interest in computer programming. Covers syntax and semantics of C++ programming language through completion of hands-on projects. The student must already be fluent in some other programming language. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Construct computer programs in C++, using functions, classes and STL elements. 2. Construct computer programs using stack, heap and static memory. 3. Construct computer programs in a statically typed language. 4. Construct and use unit tests. 5. Use version control to manage code. 6. Use memory checking and debugging tools. 7. Create larger programs than in previous course work. Course fee required. Prerequisites: CS 1410 (Grade C or higher). FA, SP.
CS 3150. Computer Networks. 3 Hours.
A comprehensive introduction to the principles of computer networks from a developer's perspective, with emphasis on the design and implementation of the Internet, its protocols, and applications. Topics include network applications, network programming interfaces, layered network architectures, transport and congestion control protocols, routing and data link protocols, local area networks, and a selection of special topics. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Identify, interpret, and analyze the basic principles of computer networks, including switching, layering and abstraction, routing, and the various protocols that drive network behavior. 2. Explain and implement how applications use networks and the Internet to communicate using network programming interfaces. 3. Assemble limited components of common Internet applications such as email, video streaming, and peer-to-peer applications. 4. Construct portions of the Internet, including transport protocols and routing algorithms, and justify their design. Course fee required. Prerequisites: CS 2420 (Grade C or higher) AND CS 2810 (Grade C or higher). FA, SP.
CS 3400. Operating Systems. 3 Hours.
Can be used to fulfill a requirement for students pursuing a degree or emphasis in Computer Science, and open to other students. Covers operating systems design and implementation, including processes and threads, synchronization, virtual memory, and file systems. Course taught by arrangement. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Design the major components of an operating system. 2. Analyze the trade-offs between competing goals in system software projects, including safety, performance, convenience, and ease of future maintenance. 3. Build and modify complex software projects in teams. 4. Assess and criticize the design of modern and historical operating systems. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher). FA.
CS 3410. Distributed Systems. 3 Hours.
Can be used to fulfill a requirement for students pursuing a degree or emphasis in Computer Science, and open to other students. Covers design and implementation of network applications, including message passing, concurrency, synchronization, scalability, and partial failure. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Design and implement software solutions that span multiple computers across a network. 2. Analyze the tradeoffs between competing goals in system software projects, including safety, performance, convenience, and ease of future maintenance. 3. Build and modify complex software projects in teams. 4. Debate and differentiate the approaches and solutions to distributed systems problems taken by modern internet organizations. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher). SP.
CS 3500. Game Development. 3 Hours.
For students pursuing degrees in Computer Science, Software Engineering, and others within the Computing department. Open to any student with an interest in computer 3D Game Design and Development. Covers rapid game development using a modern 3D game development engine. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Construct a game design document. 2. Rapidly implement a new game using a modern 3D game development engine. 3. Find readily available resources to use as game models, environments, animations, sounds, etc. Prerequisites: CS 3005 (Grade C or higher). FA.
Required of students pursuing a Computer Science degree or emphasis. Covers the analysis and design of algorithms and data structures, including graphs, greedy algorithms, divide and conquer algorithms, and dynamic programming. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Analyze and classify algorithms of various types, including divide-and-conquer algorithms, graph algorithms, dynamic programming, and linear programming. 2. Assess the run-time complexity of algorithms through analysis and measurement. 3. Evaluate and select suitable algorithms for programming problems. 4. Construct algorithmic solutions to complex problems using the full range of algorithmic approaches. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); AND CS 2100 (Grade C or higher) OR CS 3310 (Grade C or higher). SP.
CS 3520. Programming Languages. 3 Hours.
Required of students pursuing a Computer Science degree or emphasis. Covers the principles and concepts that characterize high-level computer programming languages, including function and data abstraction, and imperative, functional, logic and object-oriented programming techniques. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Compare major programming paradigms and appraising the impact each has on how programming problems are solved. 2. Differentiate between syntax and the underlying semantics that make up modern and historical languages. 3. Compose and construct software solutions from a wide range of fundamental language constructs. 4. Assess new languages as they emerge and determine their suitability for practical programming projects. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher). FA.
CS 3530. Computational Theory. 3 Hours.
Required of students pursuing a Computer Science degree or emphasis. Covers the theory of computation, including finite-state automata, pushdown automata, Turing machines, and equivalent formalisms. Also introduces complexity theory. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Compare the capabilities of various computational models and formulating new models as needed to research new classes of problems. 2. Analyze formal systems with mathematical rigor and the appropriate formal notation. 3. Investigate computational problems and categorizing their algorithmic complexity. 4. Appraise and justify the limits of computational models and the real-world systems that rely on them. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); and CS 2100 (Grade C or higher) or CS 3310 (Grade C or higher) (can be concurrently enrolled). FA.
CS 3600. Graphics Programming. 3 Hours.
Recommended for students pursuing a Computer Science related degree or emphasis, and open to other interested students. Covers GPU shader programming, model creation, matrix transformations, and rendering techniques through the completion of several programming assignments. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Program 2D and 3D graphics applications using a modern API such as WebGL or WebGPU. Apply modeling, rendering and animation techniques to a variety of problems. 3. Design lighting systems that use the 3D Phong shading model. 4. Render high quality images using texture mapping, ray tracing, and shadows. 5. Program Curves and Surfaces for use in CAD. 6. Program automated systems using Physically Based Modeling. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 3005 (Grade C or higher). SP.
CS 4300. Artificial Intelligence. 3 Hours.
Required of students pursuing a Computer Science degree or emphasis. Introduces the broad field of artificial intelligence in computer software followed by specific applications in computer gaming strategies. Students will complete programming assignments. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Construct solutions for a range of problems using search algorithms. 2. Infer problems that can be solved using propositional logic and build appropriate solutions. 3. Design and implement Bayesian networks. 4. Integrate third-party libraries into solutions for large software projects. 5. Collaborate to solve large and complex problems. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); AND CS 3005 (Grade C or higher). FA.
CS 4307. Database Systems. 3 Hours.
An introduction to database systems. Topics include the design and implementation of relational databases (B-trees, indexing, query planning and execution, transactions, ACID semantics) as well as data modeling and querying for applications using databases. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Design and implement the major components of a database management system. 2. Analyze the storage needs of a software project and create a data schema and query strategy to address those needs. 3. Construct substantial software that balances requirements of data safety, performance, and complexity. 4. Debate and criticize modern approaches to data management. Course fee required. Prerequisites: CS 2420 (Grade C or higher) AND CS 2810 (Grade C or higher). SP.
CS 4320. Machine Learning. 3 Hours.
For students pursuing degrees in Computer Science or related fields, with an interest in the theory and practice of machine learning. Covers an introduction to supervised and unsupervised learning, including decision trees, neural networks, naive Bayes classifiers and support vector machines. Students will be required to implement machine learning systems. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Use supervised and unsupervised learning techniques. 2. Implement software learning systems. 3. Evaluate quality of learned systems. 4. Implement software utilizing the results of learning systems. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); AND CS 3005 (Grade C or higher). SP.
CS 4400. Data Mining. 3 Hours.
This course explores the fundamental algorithms and statistics commonly used to extract patterns from large datasets. Students will practice discovering, cleaning, transforming, and exploring real datasets, actively applying the concepts discussed in the course using common programming tools. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Construct automated solutions to discover and extract patterns from large datasets. 2. Describe common data mining algorithms such as clustering and regression. 3. Apply strategies for large datasets such as streaming and sampling. Prerequisites: CS 2420 AND CS 2810 (Grade C or higher). SP.
CS 4410. Data Visualization. 3 Hours.
This course covers the fundamentals of data visualization, including the types of visualizations and techniques to accommodate different types of data. Students will use state-of-the-art programming tools to practice communicating the meaning of patterns, anomalies, and insights found in real datasets. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Compare and contrast common types and approaches of data visualization. 2. Justify the use of appropriate visualization approaches for different types of datasets. 3. Create visualizations that effectively communicate insights from large datasets. Prerequisites: CS 2420 AND CS 2810 (Grade C or higher). FA.
CS 4420. Data Privacy, Security, and Ethics. 3 Hours.
This course explores the critical intersection of data privacy, security, and ethics in the context of data science. Students will learn about the principles of data protection, common security vulnerabilities, and ethical frameworks for data handling. The course combines theoretical foundations with hands-on programming projects to implement secure data practices, privacy-preserving techniques, and algorithmic fairness. Topics include data anonymization, differential privacy, secure multi-party computation, and the legal and social implications of data-driven technologies. COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Analyze and apply principles of data privacy and security to real-world data science projects. 2. Implement privacy-preserving techniques, such as anonymization and differential privacy, in software. 3. Identify and mitigate security risks and vulnerabilities in data pipelines and storage systems. 4. Evaluate the ethical, legal, and regulatory implications of data collection, analysis, and model deployment, including issues of bias and fairness. 5. Communicate complex technical and ethical concepts to diverse stakeholders. Prerequisites: CS 2420 (Grade C or higher) AND CS 2810 (Grade C or higher). FA.
CS 4480R. Data Science Practicum. 1 Hour.
This course provides students with hands-on, real-world project experience through a multi-semester practicum based on the Vertically Integrated Project (VIP) model. Students will work in teams on contracted projects for third-party organizations, such as local government, other university departments, and non-profits. The course structure allows students at different stages of their academic careers to collaborate, with newer students performing foundational data tasks, intermediate students tackling core project challenges, and experienced students taking on leadership and mentoring roles under faculty supervision. COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Collaborate effectively in a team environment to solve complex data science problems for real-world clients. 2. Apply project management principles to define project scope, set timelines, and deliver results to stakeholders. 3. Integrate and apply technical skills by contributing to a substantial, long-term project at a level appropriate to their experience. 4. Develop professional communication and presentation skills by interacting with clients and team members. 5. Mentor junior peers and provide constructive feedback on technical work (for advanced students). Prerequisites: CS 2500 (Grade C or higher) AND CS 2420 (Grade C or higher) AND CS 2810 (Grade C or higher). FA, SP.
CS 4490R. Data Science Capstone. 3 Hours.
This senior capstone course serves as the culminating experience for data science majors. Acting as an extension of the Data Science Practicum, students will undertake a significant, independent project in collaboration with a third-party organization, simulating a professional internship experience. Students will be responsible for the entire data science project lifecycle, from problem formulation and data acquisition to model development, evaluation, and deployment. The course emphasizes project management, professional communication, and the ethical considerations of data science work. Students will present their findings to a diverse audience, including faculty and external stakeholders. COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Define, scope, and manage a long-term, real-world data science project independently, demonstrating initiative, professional conduct, and effective communication with stakeholders. 2. Execute all stages of the data science pipeline, including data acquisition, cleaning, and storage, while addressing challenges of data quality and provenance. 3. Select, apply, and evaluate appropriate advanced analytical and computational methods to model complex datasets and derive meaningful insights. 4. Communicate project findings effectively to diverse audiences through written reports, oral presentations, and data visualizations, tailoring the message to both technical and non-technical stakeholders. 5. Identify and address the ethical, social, and professional implications of a data science project, ensuring privacy, fairness, and accountability. Prerequisites: CS 2500 (Grade C or higher) AND CS 4400 (Grade C or higher) AND CS 4410 (Grade C or higher). SP.
Required of students pursuing a Computer Science degree or emphasis. Covers compiler design and implementation, including lexical analysis, parsing, symbol table management, and generating code through challenging programming assignments. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Create Grammars and Finite Automata corresponding to Regular Languages. 2. Scan a text file (of programming code) using a Finite Automata to identify the Tokens. 3. Parse a sequence of Tokens using Context Free Grammar to build a Parse Tree. 4. Interpret a Parse Tree to run the original programming code. 5. Write and execute machine code corresponding to a Parse Tree. 6. Build and maintain a Symbol Table to keep track of all variables in programming code. Course fee required. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); AND CS 3005 (Grade C or higher). SP.
CS 4600. Senior Project. 3 Hours.
Required of students pursuing a Computer Science degree or emphasis. Students will complete an aggressive programming project of software engineering. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Have practical experience in project specification. 2. Have practical experience in project design. 3. Have practical experience in project implementation. 4. Have practical experience in project testing. Course fee required. Prerequisite: Advanced standing and Students will now be required to propose their project and be approved before receiving instructor permission to enroll. SP.
CS 4800R. Undergraduate Research. 1-6 Hours.
For Computer Science students who wish to engage in an undergraduate research project. Students will meet weekly with their faculty mentor to discuss progress on their project and receive feedback. At the end of the semester, the student will submit a written defense of their work. Students who expect to apply to graduate school should strongly consider taking this course. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Survey state-of-the-art research. 2. Identify relevant research problems. 3. Articulate research goals by formulating a research problem and developing a research plan. 4. Demonstrate proficiency in Executing a research plan and defending the resulting contributions. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher). FA, SP.
CS 4920R. Internship. 1-3 Hours.
Internship course in Computer Science and Software Development. Variable credit 1.0 - 3.0. Repeatable up to 3 credits subject to graduation restrictions. Offered by arrangement. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Design and implement programming solutions to meet user needs. 2. Use current software development tools and techniques. 3. Develop software in a team environment. 4. Work with an employer. Prerequisites: CS 2420 (Grade C or higher); AND CS 2810 (Grade C or higher); AND CS 3005 (Grade C of higher); AND instructor permission.
CS 4990. Special Topics in Computer Science. 0.5-3 Hours.
For students wishing instruction that is not available through other regularly scheduled courses in this discipline. Occasionally, either students need some type of non-traditional instruction, or an unanticipated opportunity for instruction presents itself. This course may include standard lectures, travel and field trips, guest speakers, laboratory exercises, or other nontraditional instruction methods. Repeatable for credit as topics vary, up to 6 credits. Offered by arrangement. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Develop and build systems using a specific software framework or methodology. 2. Extrapolate the specialized insights and practices of a specific computational system to a wider field of practice. 3. Apply general purpose algorithmic and problem solving skills to a specific problem domain. Course fee required. Prerequisites: Instructor permission.
CS 4991R. Competitive Programming. 0.5 Hours.
For students interested in competing in programming contests. Covers problem analysis and classification, and efficient implementation of solutions. Repeatable up to 6 times for 3 credits. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Network with students interested in competing in programming contests. 2. Compare and contrast different problem types. 3. Survey possible solutions to common problem types. 4. Implement solutions to various contest problems. 5. Transfer the aforementioned skills to real competitions. Prerequisites: CS 1400 (Grade C or higher). FA, SP.
CS 4992R. Computer Science Seminar. 1 Hour.
For students interested in exploring computer science research topics, the Computer Science Seminar will discuss the problems and contributions outlined in a variety of research papers. Participants will read from a selection of assigned research papers and participate in the seminar discussions. Students considering graduate school or who are desirous to participate in undergraduate research are highly encouraged to attend. Repeatable up to 4 times for 4 credits. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Recall common topics in computer science research. 2. Survey impactful research papers and identify the top computer science conferences. 3. Outline and analyze the contributions of a research paper. 4. Classify and discuss research problems along with known solutions to those problems. Prerequisites: CS 2420 (Grade C or higher) OR CS 2810 (Grade C or higher). FA, SP.
CS 4995. Immersive Game Development I. 3 Hours.
Course for students choosing the Game Development Track of Software Engineering, seeking the Game Development Certificate, pursuing other Computer Science related degrees, or just interested in Virtual Reality programming and/or Game Development programming. Students may work collaboratively with Design and Art students on VR/AR/XR projects. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to: 1. Construct elements of working VR/XR/AR applications in a collaborative environment. 2. Produce coded assets using industry-standard software and practices. 3. Integrate assets from other disciplines into a single usable VR/XR/AR application. Course Fee Required. Prerequisites: CS 2420 AND CS 3005 (Grade C or higher). FA.
CS 4996. Immersive Game Development II. 3 Hours.
Follow-on course from CS 4995. This is the second of two courses in which students will work on Virtual Reality or Augmented Reality projects. Students may work collaboratively with Design and Art students to complete a significant project of their choice. It could be an immersive game, a virtual reality teaching tool, something from our industry wish list, or anything else the student desires, as long as it is instructor approved. **COURSE LEARNING OUTCOMES (CLOs) At the successful conclusion of this course, students will be able to, on a large-scale project conceived by the student and approved by the instructor: 1. Construct elements of working VR/XR/AR applications in a collaborative environment. 2. Produce coded assets using industry-standard software and practices. 3. Integrate assets from other disciplines into a single usable VR/XR/AR application. Course fee required. Prerequisites: CS 4995 (Grade C or higher).
CS 6300. Principles of Artificial Intelligence. 3 Hours.
This course provides an understanding of Artificial Intelligence principles. Through lectures, hands-on projects, and real-world case studies, participants will gain practical knowledge of how AI systems are developed and applied across various industries. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Analyze problems using the agent-environment model to select appropriate artificial intelligence solution strategies.2. Create artificial intelligence solutions to problems with the artificial intelligence pipeline, using algorithms and data structures of the field, including search, logic, probabilistic reasoning, and machine learning.3. Apply unsupervised learning techniques, including dimensionality reduction and clustering, to identify patterns and refine features in data. 4. Perform statistical analysis of machine learning algorithms including linear and logistic regression.5. Utilize statistical and probabilistic learning models such as Naive Bayes, Linear Discriminant Analysis, and Quadratic Discriminant Analysis for classification and regression. Prerequisites: Acceptance to the Graduate Certificate in Applied Artificial Intelligence and Machine Learning. FA.
CS 6310. Foundations of Machine Learning. 3 Hours.
This course discusses best practices in end-to-end machine learning, including data processing, model selection, validation, and production. This course also discusses various machine learning models including linear regression, ensemble methods, and neural networks. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Apply the core mathematics concepts required for machine learning, including multidimensional calculus, linear algebra, and probability, to analyze a machine learning algorithm. 2. Formulate a data driven question and implement an end-to-end machine learning pipeline to address that question. 3. Apply supervised learning models, including linear and logistic regression, decision trees, and support vector machines, to address regression and classification problems. 4. Utilize ensemble methods to improve model quality in machine learning pipelines. 5. Construct and utilize neural network models to address regression and classification problems, involving architecture selection, model optimization, visualization, and evaluation. Prerequisites: Acceptance to the Graduate Certificate in Applied Artificial Intelligence and Machine Learning. FA.
CS 6320. Foundations of Deep Learning. 3 Hours.
This course introduces foundational methods for computer vision and natural language processing. Students will understand the primary problems in both fields, such as segmentation, and apply deep learning frameworks to address these challenges. *COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Construct convolutional neural network models for image classification. 2. Apply deep learning models for complex image tasks, including image segmentation. 3. Convert text to vectors, utilizing both word embedding and tokenizer frameworks. 4. Construct neural network models for natural language processing tasks such as semantic summarization, utilizing foundational models such as RNNs and LSTMs. 5. Fine tune and apply transformer models to advanced natural language processing tasks such as machine translation. Prerequisites: CS 6300 (Grade B- or higher); AND CS 6310 (Grade B- or higher). SP.
CS 6321. Natural Language Processing. 3 Hours.
This course covers core methods in natural language processing, including text preprocessing and representation, machine learning methods for language data, and pretrained language models (transformer-based). Students build, fine-tune, and evaluate models for tasks such as text classification, token-level labeling, summarization, and question answering. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Compare and justify appropriate text representation methods, including tokenization, embeddings, and contextual representations for specific NLP tasks. 2. Prepare and curate text datasets using normalization, segmentation, annotation, and data splitting strategies. 3. Implement and fine-tune neural NLP models, including recurrent and transformer-based approaches, for common NLP tasks. 4. Evaluate and interpret NLP systems using task-appropriate metrics and error analysis. 5. Analyze and address ethical issues in NLP application, including bias, privacy, and responsible deployment. Prerequisites: CS 6320 (Grade B- or higher) and admission to the MS in Artificial Intelligence program. FA.
CS 6322. Computer Vision. 3 Hours.
This course focuses on modern computer vision with deep learning, including visual data representation and preprocessing, deep learning methods for visual tasks, and vision architectures such as convolutional and transformer-based models. Students implement and evaluate models for tasks such as image classification, object detection, image segmentation, and visual representation learning. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Prepare image datasets with appropriate preprocessing, augmentation, and labeling strategies. 2. Construct convolutional neural network models for image classification and representation learning. 3. Implement and compare methods for object detection and image segmentation. 4. Evaluate and interpret computer vision systems using task-appropriate metrics and error analysis. 5. Apply responsible AI practices related to bias, privacy, and model robustness in computer vision. Prerequisites: CS 6320 (Grade B- or higher) and admission to the MS in Artificial Intelligence program. SP.
CS 6323. Advanced Deep Learning. 3 Hours.
This course examines advanced deep learning techniques, including modern architectures, optimization strategies, self-supervised learning, and generative modeling. Students implement, fine-tune, and evaluate state-of-the-art models across domains while considering scalability, robustness, and responsible use. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Compare advanced architectures such as transformers, diffusion models, and graph neural networks for appropriate tasks. 2. Apply optimization and regularization techniques to improve training stability and generalization. 3. Implement self-supervised or transfer learning workflows for data-scarce scenarios. 4. Evaluate model performance using rigorous experimental design and ablation studies. 5. Assess risks and limitations of advanced models, including bias, security, and compute constraints. Prerequisites: CS 6320 (Grade B- or higher) and admission to the MS in Artificial Intelligence program. SU.
CS 6330. Programming for Machine Learning in Life Sciences. 3 Hours.
Foundational course to computer programming for the life sciences, including data processing, visualization, and basic statistical analysis utilizing high level programming languages. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Create and modify modest computer programs using loops, conditionals, functions, and object oriented techniques. 2. Load, visualize, and preprocess data sets. 3. Construct programs for processing life science data using optimized data structures. 4. Model and analyze data using computational libraries. 5. Select an appropriate combination of programming modules to solve computing problems in the life sciences. Prerequisites: Acceptance to Graduate Certificate in Machine Learning for Life Sciences. FA.
CS 6331. Machine Learning for Life Sciences. 3 Hours.
Foundational course in end-to-end machine learning and frequently used machine learning models in the life sciences. Students will apply this knowledge in working with curated biological datasets. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Create machine learning solutions to problems in life sciences, using the machine learning pipeline, including data processing, model selection, model fine-tuning, and model validation. 2. Create and train various machine learning models, including: neural networks, regression models, and tree-based methods. 3. Select and justify use of a machine learning model for a specific problem. 4. Transform high dimensional datasets into lower dimensions for data analysis and exploration. 5. Test scientific hypotheses using statistical modeling. Corequisite: CS 6330. Prerequisites: Acceptance to the Graduate Certificate in Machine Learning for Life Sciences. FA.
CS 6341. Machine Learning for Drug Discovery. 3 Hours.
This course provides an in-depth exploration of the computational techniques and methodologies used in modern drug discovery. Students will learn practical applications of machine learning to drug discovery, focusing on drug development and design. ***COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Describe the development and current-day applications of machine learning to drug discovery. 2. Apply standard chemistry, drug design and visualization libraries for molecular analysis. 3. Utilize machine learning models for problems in drug design, potentially including drug synergistic interactions, target identification, and ligand-receptor activation. 4. Create or repurpose potential drugs for treatment of specific diseases using machine learning models. Prerequisites: CS 6330 (B- or higher); AND CS 6331 (B- or higher). SP.
CS 6342. Machine Learning for Medical Imaging. 3 Hours.
This course explores the principles and techniques used in the processing and analysis of medical images. This course presents machine learning models for analysis of medical imaging data, including image processing, cell segmentation, image registration, and disease classification. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Perform basic medical imaging processing, including loading, saving, and transforming images. 2. Construct and apply convolutional neural network architectures and related techniques for classification of images. 3. Create machine learning architectures for image segmentation and registration of medical images. 4. Construct machine learning models for identification and diagnosis of disease from medical images. Prerequisites: CS 6330 (B- or higher); AND CS 6331 (B- or higher). SP.
CS 6343. Machine Learning for Genomics, Transcriptomics and Proteomics. 3 Hours.
This course will assess the relationships among sequence, structure, and function in complex biological systems and networks. This course covers the application of computational algorithms in genomic, transcriptomic, and proteomic data analysis. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Employ specialized software and libraries to load, process, and analyze genomic, transcriptomic and proteomic data. 2. Understand and implement genome annotation algorithms to predict genes, regulatory elements, or other functional regions in genomic sequences. 3. Create and apply machine learning models for precision medicine focusing on identification of potential disease-associated biomarkers. 4. Implement computational algorithms for protein structure, function, and interaction prediction. Prerequisites: CS 6330 (B- or higher); AND CS 6331 (B- or higher). SP.
CS 6349R. Special Topics in Machine Learning for Life Sciences. 1-3 Hours.
This course allows the student to explore the application of machine learning principles and techniques to life science problems not addressed in existing courses. The student will collect and process data, select and train learning models, and validate the results. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Perform data collection and preprocessing on data appropriate to the project. 2. Construct and apply appropriate machine learning models for the project.3. Extract results from the data appropriate to the project.
CS 6350. Artificial Intelligence and Machine Learning Project 1. 1-3 Hours.
This course will guide students through an introductory machine learning project, enabling them to learn and practice required skills for problem formulation, data analysis, presentation of results, and model deployment. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Formulate a clear and actionable research question that can be addressed using machine learning techniques. 2. Collect relevant datasets and perform necessary preprocessing and feature engineering to prepare data for analysis. 3. Conduct exploratory data analysis and utilize data visualization to inform model selection and development. 4. Validate and fine-tune machine learning models using tools such as hyperparameter tuning and standard tools for performance evaluation. 5. Communicate findings effectively through reports and presentations and understand the basics of model deployment in real-world applications. Prerequisites: Acceptance to the Graduate Certificate in Applied Artificial Intelligence and Machine Learning and/or the Masters in Artificial Intelligence program. FA, SP.
CS 6351. Artificial Intelligence and Machine Learning Project 2. 1-3 Hours.
This course will guide students through a deep learning project, focusing particularly on either computer vision or natural language processing, enabling them to learn and practice required skills for problem formulation, data analysis, presentation of results, and model deployment. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Formulate a clear and actionable research question that can be addressed using deep learning techniques. 2. Collect relevant datasets and perform necessary preprocessing and feature engineering to prepare data for analysis. 3. Conduct exploratory data analysis and utilize data visualization to inform model selection and development. 4. Validate and fine-tune deep learning models using tools such as hyperparameter tuning and architecture search, as well as standard tools for performance evaluation. 5. Communicate findings effectively through reports and presentations and understand model deployment in real-world applications. Prerequisites: CS 6350 (Grade B- or higher). SP.
CS 6352. Artificial Intelligence and Machine Learning Project 3. 1-3 Hours.
This project-based course advances students through an applied AI project with increasing scope and technical depth, including machine learning or agentic AI systems. Students develop a proposal, implement baseline and advanced approaches, evaluate results, and document outcomes in professional technical reports following program guidelines. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Define a feasible AI project (machine learning or agentic) with clear inputs, outputs, and evaluation metrics. 2. Implement baseline and advanced approaches and justify model or agent design choices. 3. Evaluate systems with appropriate quantitative metrics and error analysis. 4. Produce professional project documentation that communicates methods, results, and limitations. 5. Apply reproducible workflows, including data management, experiment tracking, and version control. Prerequisites: CS 6351 (Grade B- or higher) and admission to the MS in Artificial Intelligence Program. FA, SP.
CS 6353. Artificial Intelligence and Machine Learning Project 4 (Capstone). 1-3 Hours.
This capstone project course completes the AI project sequence. Students design, implement, and evaluate a substantial applied AI project, including machine learning or agentic AI systems, culminating in a professional report and presentation that demonstrate technical depth, rigor, and reproducibility. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Formulate and execute a capstone-level AI project (machine learning or agentic) with a clear scope and measurable success criteria. 2. Implement and refine models or agents through systematic experimentation and evaluation. 3. Synthesize results into a cohesive technical report and presentation for a professional audience. 4. Critically assess limitations, ethical considerations, and future work. 5. Deliver a reproducible project artifact including code, data documentation, and evaluation evidence. Prerequisites: CS 6352 (Grade B- or higher) and admission to the MS in Artificial Intelligence program. SP, SU.
CS 6359R. Artificial Intelligence and Machine Learning Independent Project. 1-3 Hours.
In this course students will design and complete a project using AI and ML techniques. The project will address a real-world problem. Students will improve their skills in problem formulation, data analysis, presentation of results, and model deployment. **COURSE LEARNING OUTCOMES (CLOs)** At the successful conclusion of this course students will: 1. Formulate a clear and actionable research question that can be addressed using machine learning or artificial intelligence techniques. 2. Collect relevant datasets and perform necessary preprocessing and feature engineering to prepare data for analysis. 3. Conduct exploratory data analysis and utilize data visualization to inform model selection and development. 4. Validate and fine-tune learning models using tools such as hyperparameter tuning and architecture search, and standard tools for performance evaluation. 5. Communicate findings effectively through reports and presentations and understand model deployment in real-world applications. Prerequisites: CS 6350(B- or higher).