ABCDEFGHIJKLM
1
UA Computer Science and Artificial Intelligence Major Courses
2
Not all courses are offered every semester.
3
Contact your Computer Science major advisor if you have questions.
4
See "Class Search" on UAccess for current offerings.CS BS students also need 1 from each category:
Paradigms, Systems, and
Theory & Writing
5
6
CS BA need 2, CS BS need 1CS BA and CS BS need 2AI BS need 2 (see cross-list options below)AI BS need 4 (also see cross-list options below)
7
Course NumberUnitsCourse DescriptionPrereqsCS FoundationalCS Major CoreAI FoundationalAI Major Core300+ level400+ level(BS degree category)AI 300+ Major ElectivesAdvanced AI Electives
8
CSC 101 Introduction to Computer Science
NOTE: Does not count in the CS major. Can be a prerequisite to CSC 110.
3This course introduces students to some of the big ideas in computer science. It will excite students about the application of computer science to various disciplines, and show the social impact possible through the use of technology in developing regions, politics, medicine, and other fields.none
9
CSC 110 Introduction to Computer Programming I4An introduction to programming with an emphasis on solving problems drawn from a variety of domains. Topics include basic control and data structures, problem solving strategies, and software development tools and techniques.PPL 60+ or SAT I MSS 640+ or ACT MATH 26+ or (C or higher in CSC 101 or MATH 112 or MATH 108) or one course from MATH 113, 116, 120R, 122A, 122B, or 125. Test scores expire after 2 years.xx
10
CSC 120 Introduction to Computer Programming II4Provides a continuing introduction to programming with an emphasis on problem solving. It considers problems drawn from a variety of domains (including Computer Science) and emphasizes both the broader applicability of the relevant data structures and programming concepts, as well as the implementation of those structures and concepts in software. Topics include arrays, lists, stacks, queues, trees, searching and sorting, and exceptions.C or higher in (CSC 110 or ISTA 130 or ECE 175) or appropriate score on department CSC 110 bypass exam. Contact CS advisor for bypass exam information.xx
11
CSC 144 Discrete Mathematics for Computer Science I3The first of a two-course sequence introducing mathematical concepts for Computer Science. Topics include: sets, functions, and relations; propositional and predicate logic; foundational combinatorics; discrete probability; modular arithmetic; and proofs.C or higher in(CSC 110 or ISTA 130 or ECE 175) or prior prog. lang. experience w/dept. approval] AND [PPL 60+ or SAT I MSS 640+ or ACT MATH 26+ or(C or higher in MATH 108 or 112) or 1 from MATH 113,116,120R,122A,122B,or125. Test scores exp. after 2 yrsx x
12
CSC 196 Special Topics in Computer Science Seminar: Analyzing Data (Spring 2026)3This course provides a rigorous yet accessible introduction to the fundamental concepts of probability and statistics, equipping students with the tools to analyze and interpret data and to reason about uncertainty. Topics include probability rules and counting methods, discrete and continuous random variables, expectation and variance, sampling distributions, and the Central Limit Theorem. Statistical topics cover descriptive statistics, estimation, confidence intervals, correlation, and hypothesis testing. Throughout the course, students will apply theory to real-world problems using analytical methods and computational tools. By the end of the term, students will be able to design basic experiments, interpret data responsibly, and make informed decisions based on probabilistic reasoning.CSC 110. Strongly recommend prior completion of Calculus 1 (MATH 122B or MATH 125)xx
13
CSC 210 Software Development4An introduction to the development of large­scale software. Topics include modularization, design patterns, documentation, unit testing, source code control, build systems, debuggers, and performance tuning; all of the tools necessary for developing software as opposed to writing small programs.CS or AI Major or Minor; C or higher in CSC 120.xx
14
CSC 244 Discrete Mathematics for Computer Science II3A second course in mathematical concepts for computer science. Topics include: recurrence relations; proofs in propositional and first-order predicate logic; mathematical induction; graphs and trees; regular expressions and finite state machines.CS or AI Major; C or higher in CSC 120 and [C or higher in CSC 144 or MATH 243 or MATH 323].x x
15
CSC 252 Computer Organization3Basic machine organization; elementary hardware concepts; CPU internals. Machine operations and instructions; assembly language concepts and programming.CS Advanced Standing; CSC 210; open to COSC minors after advanced standing declaration the week before each semester begins (if seats are available)x
16
CSC 296 Special Topics in Computer Science Seminar: Introduction to Artificial Intelligence (Fall 2025)
NOTE: Contact your Academic Advisor to determine if it will count toward your CS major or minor.
3This course introduces the very broad topic of intelligent technology. It will cover scientific questions regarding what it means to be intelligent and why we can build such systems, mathematical and computational approaches for doing so, factors that make them appealing for humans to interact with, and societal benefits and risks of the increasingly rapid deployment of AI. The course will lay the foundations for students wishing to pursue AI as a major, as well as serve students who want to learn the basics of AI.CSC 120. Strongly recommend prior completion or concurrent enrollment in MATH 163 x
17
CSC 296B Seminar in Bioinformatics
NOTE: Does not count in the CS major.
1This seminar course provides an overview of and introduction to the field of bioinformatics. Talks by faculty who do research in bioinformatics and computational biology, as well as by scientists from the biotechnology industry, give a sense of the current directions in the field.none
18
CSC 317 Mobile Application Programming3Students will learn how to develop applications for mobile devices. The course will cover the necessary programming language(s), development environment, and a number of platform-specific APIs commonly used in mobile applications such as maps, location services, notifications, camera, and local storage. Other mobile-specific software development topics will be considered such as programming with limited computational and battery resources, client/server architecture, and cloud synchronization.CSC 210. Students may not have completed or be enrolled in CSCV 381.x
19
CSC 335 Object-Oriented Programming and Design 3Fundamentals of object-oriented software development. Includes design principles, inheritance, polymorphism, Unified Modeling Language (UML), testing, event-driven programming with graphical user interfaces, applications of design patterns, and use of existing frameworks. Weekly laboratory.CS Advanced Standing; CSC 210; open to COSC minors after advanced standing declaration the week before each semester begins (if seats are available)x
20
CSC 337 Web Programming3Introduction to the techniques and technologies for developing dynamic web sites. Topics include a web server, PHP as the server-side scripting language, the MySQL database, JavaScript and AJAX for enriching web services, and page layout with HTML and CSS. Security concerns will be considered with details for prevention of such vulnerabilities in web applications. This course includes a team project to deploy a dynamic website. Weekly laboratory.CS Major or Minor; CSC 110 or ISTA 130 or ECE 175.x
21
CSC 343 Human Computer Interaction3The course is an implementation-based introduction to basic concepts of human-computer interaction. Students will learn principles and skills for designing, programming, and evaluating interactive systems and demonstrate these skills through coursework. Topics include: system architecture, algorithms, data structures, verification, and software engineering techniques for implementing and managing interactive interfaces; methods of design and evaluation; and capabilities and limits of both computing devices and humans and their effect on design and implementation.CS or AI Advanced Standing; CSC 210 and CSC 244; open to COSC minors after advanced standing declaration the week before each semester begins (if seats are available)xxParadigms
22
CSC 345 Analysis of Discrete Structures 3Introduction to and analysis of algorithms and characteristics of discrete structures. Course topics include algorithm analysis techniques, recurrence relations, structural induction, hierarchical structures, graphs, hashing, and sorting.CS or AI Advanced Standing; CSC 210 and CSC 244; open to COSC minors after advanced standing declaration the week before each semester begins (if seats are available)xx
23
CSC 346 Cloud Computing3This course focuses on cloud programming, with an emphasis on using the cloud to solve Big Data problems. The course will not only look at how distributed systems, databases, networks, etc. are used to implement cloud computing platforms and cloud applications, but also the impact of the infinite scalability and pay-as-you-go on the platforms and applications.CSC 120x
24
CSC 352 Systems Programming and Unix 3Programming in C, including single and multi-dimensional arrays, lists, stacks, queues, trees, and bit manipulation. Unix topics, including debuggers, makefiles, shell programming, and other topics that support systems programming.CS Advanced Standing; CSC 210, 252; open to COSC minors after advanced standing declaration the week before each semester begins (if seats are available)x
25
CSC 355 Discrete Structures and Basic Algorithms
NOTE: Does NOT count in the CS major. Does count in CS Minor.
3Introduction to and analysis of algorithms and characteristics of discrete structures. Course topics include algorithm analysis, discrete data structures, sorting, hashing, search structures, basic design techniques (divide-and-conquer, dynamic programming, and greed) and graph algorithms.Advanced Standing: Engineering. ECE 275 and MATH 243. Students may not have completed or be enrolled in CSC 345Does NOT count in the CS major. Does count in CS Minor.
26
CSC 372 Comparative Programming Languages3Introduction to several major high-level programming languages and their characteristics. Programming projects are required in at least three languages.CS or AI Advanced Standing; CSC 210; open to COSC minors after advanced standing declaration the week before each semester begins (if seats are available)xxParadigms
27
CSC 380 Principles of Data Science3The course introduces students to principles of data science that are necessary for computer scientists to make effective decisions in their professional careers. A number of computer science sub-disciplines now rely on data collection and analysis. For example, computer systems are now complicated enough that comparing the execution performance of two different programs becomes a statistical estimation problem rather than a deterministic computation. This course teaches students the basic principles of how to properly collect and process data sources in order to derive appropriate conclusions from them. The course has three main components: data analysis, machine learning, and a project where students apply the concepts discussed in class to a substantial open-ended problem.CS or AI Advanced Standing; CSC 210, 244, and Calculus I or higher; open to COSC minors after advanced standing declaration the week before each semester begins (if seats are available)x
(CS BS only)
xcan count as 300/400 level elective (if not required in the major core)can count as 400 level elective (if not required in the major core)
28
CSC 382 Software Development in C++3This course will build upon students' knowledge of C to become proficient at programming in C++. Topics include testing, classes, templates, inheritance, operator overloading, object-oriented design, the Standard Template Library (STL), and event-driven programming with graphical user interfaces. This course also examines features of the newer versions of C++.­ The course includes a large team project at the end of the semester. CS or AI Advanced Standing; CSC 352 or ECE 275; open to COSC minors after advanced standing declaration the week before each semester begins (if seats are available)x
29
CSC 396 Special Topics in Computer Science Seminar: Introduction to Deep Learning with Applications to Natural Language Processing (Fall 2025)Identifying instances of deep learning applications in the real world, e.g., classification of online reviews, question answering, chat bots, and examine deep learning techniques, e.g., feed-forward networks, sequence models, language models, which apply to the problem at hand. 2. Designing and implementation of deep learning systems that solve the above problems using known deep learning libraries such as PyTorch. 3. Analysis of the behavior of their implemented systems on the task addressed, and appraisal of the performance on real-world data.CSC 120 and Calc I (Math 125 or 122B)x
30
CSC 422 Intro to Parallel and Distributed Programming3Concepts and applications of parallel and distributed programs. Process interaction using shared variables and message passing; parallel computing; development of correct programs; general problem solving techniques; scientific computing; distributed systems. Programming assignments on multiple processor machines.CS or AI Advanced Standing; CSC 252, 345, 352xxParadigmsx
31
CSC 425 Computer Networking3Theory and practice of computer networks, emphasizing the principles underlying the design of network software and the role of the communications system in distributed computing. Topics include routing, flow and congestion control, end-to-end protocols, and multicast.CS or AI Advanced Standing; CSC 252, 352xx
32
CSC 433 Computer Graphics3Theory and practice of computer graphics: basic graphics programming, 2D and 3D transformations, clipping, 2D and 3D viewing, hierarchical modeling, hidden surface removal, lighting and shading, color, ray-tracing, radiosity, curve and surface modeling, and animation.CS or AI Advanced Standing; CSC 252, 335, 345, 352, and (MATH 215 or 313)xx
33
CSC 436 Software Engineering3Introduces fundamental software engineering techniques for developing correct, efficient, reliable, maintainable, and evolvable software for large software projects. The class project gives an experience in using evolutionary software development processes for developing a high-quality, evolvable software product that addresses emerging customer requirements.CS or AI Advanced Standing; CSC 252, 335, 345, 352xxx
34
CSC 437 Geometric Algorithms3The study of algorithms for geometric objects, using a computational geometry approach, with an emphasis on applications for graphics, VLSI, GIS, robotics, and sensor networks. Topics may include the representation and overlaying of maps, finding nearest neighbors, solving linear programming problems, and searching geometric databases. Writing Emphasis Course.CS or AI Advanced Standing; CSC 345xxTheory & Writingx
35
CSC 444 Data Visualization3This course will present the fundamentals of data visualization, the art and science of using a computer to generate visual depictions of data. The course will present the foundations of graphic design, perceptual psychology and cognitive science, as well as the algorithmic basis for many for the visualization techniques. While statistical techniques may determine correlations among the data, visualization helps us frame what questions to ask. The course is targeted at students looking for effective ways of understanding data from their own fields, as well as students interested in learning the fundamentals that will enable them to build and improve the state of the art. The successful student will learn to design, critique and improve data visualizations.CS or AI Advanced Standing; CSC 335, 345xxx
36
CSC 445 Algorithms3Introduction to the design and analysis of algorithms: basic analysis techniques (asymptotics, sums, recurrences); basic design techniques (divide and conquer, dynamic programming, greedy, amortization); acquiring an algorithm repertoire (sorting, median finding, strong components, spanning trees, shortest paths, maximum flow, string matching); and handling intractability (approximation algorithms, branch and bound). Writing Emphasis Course.CS or AI Advanced Standing; CSC 345xxTheory & Writingx
37
CSC 447 Green Computing3This course covers fundamental principles of energy management faced by designers of hardware, operating systems, and data centers. We will explore basic energy management option in individual components such as CPUs, network interfaces, hard drives, memory. We will further present the energy management policies at the operating system level that consider performance vs. energy saving tradeoffs. Finally, we will consider large scale data centers where energy management is done at multiple layers from individual components in the system to shutting down entries subset of machines. We will also discuss energy generation and delivery and well as cooling issues in large data centers. CS or AI Advanced Standing; CSC 252, 352xxx
38
CSC 450 Algorithms in Bioinformatics3This course introduces fundamental results in discrete algorithms for combinatorial problems in bioinformatics and computational biology. The emphasis is on realistic models of computational problems that arise in the analysis of biological data, and practical algorithms for their solution. The content has depth in the area of biological sequence analysis, and breadth in areas such as phylogeny construction, protein structure prediction, and genome rearrangement analysis. Grades are based on homeworks, exams, programming projects, and a class presentation.CS or AI Advanced Standing; CSC 345xxTheory & Writingx
39
CSC 452 Principles of Operating Systems3Concepts of modern operating systems; concurrent processes; process synchronization and communication; resource allocation; kernels; deadlock; memory management; file systems.CS or AI Advanced Standing; CSC 252, 345, 352xxSystems
40
CSC 453 Compilers and Systems Software3Basic concepts of compilation and related systems software. Topics include lexical analysis, parsing, semantic analysis, code generation; assemblers, loaders, linkers; debuggers.CS or AI Advanced Standing; CSC 252, 345, 352. CSC 372 recommendedxxSystemsx
41
CSC 460 Database Design3Functions of a database system. Data modeling and logical database design. Query languages and query optimization. Efficient data storage and access. Database access through standalone and web applications.CS or AI Advanced Standing; CSC 335, 345xxParadigmsx
42
CSC 465 Reverse Engineering vs. Software Protection3This course teaches tools and techniques for dissecting and understanding an unknown piece of (potentially malicious) low-level code. In particular, the course covers fundamental program analysis techniques, reverse engineering algorithms and tools, and algorithms for protecting software (such as computer games, mobile code, critical infrastructure, malware, and media) against reverse engineering attacks. Additionally, the course provides a strong foundation for the understanding of low-level programming, including assembly code, binary code, and executable file formats.CS or AI Advanced Standing; CSC 252, CSC 352xx
43
CSC 466 Computer Security3This is an introductory course covering the fundamentals of computer security. In particular, the course will cover basic concepts of computer security such as threat models and security policies, and will show how these concepts apply to specific areas such as communication security, software security, operating systems security, network security, web security, and hardware-based security.CS or AI Advanced Standing; CSC 252, 352xxx
44
CSC 473 Automata, Grammars and Languages3Introduction to models of computation (finite automata, pushdown automata, Turing machines), representations of languages (regular expressions, context-free grammars), and the basic hierarchy of languages (regular, context-free, decidable, and undecidable languages). Writing Emphasis Course.CS or AI Advanced Standing; CSC 345xxTheory & Writingx
45
CSC 477 Introduction to Computer Vision3Overview of algorithms for analyzing image data. Topics include image formation, physics-based vision, linear filtering, edge detection, multiple view geometry, segmentation, tracking, and recognition.CS or AI Advanced Standing; CSC 252, 335, 345, 352, and (MATH 215 or 313). Knowledge of probability and CSC 433 (or computer graphics) helpful.xxxx
46
CSC 480 Principles of Machine Learning3Students will learn why machine learning is a fundamentally different way of writing computer programs from traditional programming, and why this is often an attractive way of solving practical problems. Machine learning is all about automatic ways for computers to collect and/or adapt to data to make better predictions and decisions or gain insight; students will learn both advantages and unique risks that this approach offers. They will learn the fundamental frameworks, computational methods, and algorithms that underlie current machine learning practice, and how to derive and implement many of them.CS or AI Advanced Standing; (CSC 380 or DATA/MATH 363) and MATH 313.xxx
47
CSC 483 Text Retrieval and Web Search 3Most of the web data today consists of unstructured text. Of course, the fact that this data exists is irrelevant, unless it is made available such that users can quickly find information that is relevant for their needs. This course will cover the fundamental knowledge necessary to build these systems, such as web crawling, index construction and compression, Boolean, vector-based, and probabilistic retrieval models, text classification and clustering, link analysis algorithms such as PageRank, and computational advertising. The students will also complete one programming project, in which they will construct one complex application that combines multiple algorithms into a system that solves real-world problems.CS or AI Advanced Standing; CSC 345xxxx
48
CSC 496 Special Topics in Computer Science Seminar: Reinforcement Learning (Fall 2025)3In the course, you’ll learn foundational RL algorithms such as Q-learning and explore more advanced topics like deep reinforcement learning. The course includes practical exercises using Python, allowing you to apply what you learn in real-world scenarios. By the end of the course, you will have a solid understanding of RL principles and hands-on experience with tools that are used in academia and industry. CSC 210 and CSC 380 or DATA/MATH 363xxxx
49
CSC 498 AI Capstone Project3AI solutions to problems in a domain of interest. We expect many capstone projects will be in a field of Science, but Literature or History, among others, are also possible. Examples include processing massive datasets in the Astronomy domain to pinpoint the most relevant samples, build predictive models to answer questions in a specific domain (e.G., Literature, History), revealing personality and other traits from language samples and behavior, analyzinig decision processes and other topics relevant to cognitive science with AI techniques, building assistive robots for the elderly and other populations, intelligent tutoring systems, and finding evidence of possible diseases in medical images among others. AI Advanced Standing
50
51
cross listed classes are listed on other tabs below
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79