Adjust Font Size: Normal Large X-Large

University of Minnesota Twin Cities Campus

Course Catalog by Subject

TwoStop Home


Select a Subject to display

Subject:


Computer Science (CSCI) Courses

Academic Unit: Computer Science & Eng

CSCI 1103 - Introduction to Computer Programming in Java
(4 cr; Student Option; offered Every Fall)
Fundamental programming concepts/software development using Java language. Problem solving skills. Algorithm development techniques. Use of abstractions/modularity. Data structures/abstract data types. Substantial programming projects. Weekly lab.
CSCI 1113 - Introduction to C/C++ Programming for Scientists and Engineers
(4 cr; Prereq-Math 1271 or Math 1371 or Math 1571H or instr consent.; Student Option; offered Every Fall, Spring & Summer)
Programming for scientists/engineers. C/C++ programming constructs, object-oriented programming, software development, fundamental numerical techniques. Exercises/examples from various scientific fields.
CSCI 1115 - Exploring Computer Science Exercises in C++
(1 cr; S-N only; offered Every Fall & Spring)
This course is designed as a complement to CSCI 1113 for students who elect to devote additional time to get a broader exposure to concepts and practice of computer science. Students will work in small groups to sharpen their problem solving and computational skills, and be exposed to a variety of applications of computing.
CSCI 1133 - Introduction to Computing and Programming Concepts
(4 cr; Prereq-none; Student Option; offered Every Fall, Spring & Summer)
Equivalent courses: CSCI 1133H
Fundamental programming concepts using Python language. Problem solving skills, recursion, object-oriented programming. Algorithm development techniques. Use of abstractions/modularity. Data structures/abstract data types. Develop programs to solve real-world problems.
CSCI 1133H - Honors Introduction to Computing and Programming Concepts
(4 cr; Prereq-[concurrent registration is required (or allowed) in MATH 1271 or concurrent registration is required (or allowed) in MATH 1371 or concurrent registration is required (or allowed) in MATH 1571H], CSci majors, pre-majors in CSE/CLA, honors student; A-F only; offered Every Fall)
Equivalent courses: CSCI 1133 (starting 03-SEP-13)
Programming concepts using Python language. Real world problem solving, recursion, object-oriented programming. Algorithm development techniques. Abstractions/modularity. Optional honors topics: programming robots, programming paradigms, artificial intelligence.
CSCI 1135 - Exploring Computer Science Exercises in Python
(1 cr; S-N only; offered Every Fall & Spring)
This course is designed as a complement to CSCI 1133 for students who elect to devote additional time to get a broader exposure to concepts and practice of computer science. Students will work in small groups to sharpen their problem solving and computational skills, and be exposed to a variety of applications of computing.
CSCI 1913 - Introduction to Algorithms, Data Structures, and Program Development
(4 cr; Prereq-(CSCI 1103 or CSCI 1113 or EE 1301 or instr consent) AND (concurrent registration in MATH 1271 or MATH 1371 or MATH 1571H or instr consent); Student Option; offered Every Fall, Spring & Summer)
Advanced Object-Oriented programming to implement abstract data types (stacks, queues, lists, key-value stores) using various implementation strategies (array-backed, linked data structures, hash tables, binary trees) using the Java language. Searching/sorting algorithms. Basic algorithmic analysis. The Python scripting language. Substantial programming projects and Weekly labs.
CSCI 1923 - Python as a Second Programming Language
(1 cr; Prereq-CSci 1103 or CSci 1113; Student Option; offered Every Fall & Spring)
Fundamental programming concepts and scripting using the Python language for students already familiar with programming concepts and syntax in C, C++, or Java. File IO and the use of libraries. Develop programs to solve real-world problems. This course is not intended for students who have taken CSCI 1133.
CSCI 1933 - Introduction to Algorithms and Data Structures
(4 cr; Prereq-1133 or instr consent; Student Option; offered Every Fall, Spring & Summer)
Equivalent courses: CSCI 1933H, CSCI 1902 (inactive, starting 02-SEP-08)
Advanced object oriented programming to implement abstract data types (stacks, queues, linked lists, hash tables, binary trees) using Java language. Inheritance. Searching/sorting algorithms. Basic algorithmic analysis. Use of software development tools. Weekly lab.
CSCI 1933H - Honors Introduction to Algorithms and Data Structures
(4 cr; A-F only; offered Every Spring)
Equivalent courses: CSCI 1933 (starting 03-SEP-13), CSCI 1902 (inactive, starting 02-SEP-08)
Advanced object oriented programming to implement abstract data types (stacks, queues, linked lists, hash tables, binary trees) using Java language. Inheritance. Searching/sorting algorithms. Basic algorithmic analysis. Use of software development tools. Weekly lab. Optional honors topics: Advanced Java topics, GUI programming, CS research examples. co-requisite: Calc I (Math 1271 or Math 1371 or Math 1571H) prerequisite: CSCI 1133 OR CSCI 1133H and honors student
CSCI 1935 - Exploring Algorithms and Data Structures
(1 cr; S-N only; offered Every Fall & Spring)
This course is designed as a complement to CSCI 1933 for students who elect to devote additional time to get a broader exposure to algorithms, data structures, concepts, and practice of computer science. Students will work in small groups to sharpen their problem solving and computational skills with a special focus on developing efficient and effective algorithms using fundamental data structures. Co-requisite of CSci 1933 OR CSci 1933H is required.
CSCI 2011 - Discrete Structures of Computer Science
(4 cr; Prereq-MATH 1271 or MATH 1371 or instr consent; Student Option; offered Every Fall & Spring)
Equivalent courses: CSCI 2011H
Foundations of discrete mathematics. Sets, sequences, functions, big-O, propositional/predicate logic, proof methods, counting methods, recursion/recurrences, relations, trees/graph fundamentals.
CSCI 2011H - Honors Discrete Structures of Computer Science
(4 cr; Prereq-[MATH 1271 or MATH 1371 or MATH 1571H], honors student.; A-F only; offered Every Spring)
Equivalent courses: CSCI 2011 (starting 02-SEP-08)
Foundations of discrete mathematics. Sets, sequences, functions, big-O, propositional/predicate logic, proof methods, counting methods, recursion/recurrences, relations, trees/graph fundamentals. Advanced topics in discrete structures as time permits.
CSCI 2021 - Machine Architecture and Organization
(4 cr; Prereq-1913 or 1933; Student Option; offered Every Fall & Spring)
Introduction to hardware/software components of computer system. Data representation, boolean algebra, machine-level programs, instruction set architecture, processor organization, memory hierarchy, virtual memory, compiling, linking. Programming in C.
CSCI 2033 - Elementary Computational Linear Algebra
(4 cr; Prereq-CSCI [1103 OR 1113 OR 1133] & MATH [1271 OR 1371 OR 1571H]; Student Option; offered Every Fall & Spring)
Matrices/linear transformations, basic theory. Linear vector spaces. Inner product spaces. Systems of linear equations, Eigenvalues, singular values. Algorithms/computational matrix methods using MATLAB. Use of matrix methods to solve variety of computer science problems.
CSCI 2041 - Advanced Programming Principles
(4 cr; Prereq-(CSci 1913 or CSci 1933) and CSci 2011; Student Option; offered Every Fall & Spring)
Principles/techniques for creating correct, robust, modular programs. Computing with symbolic data, recursion/induction, functional programming, impact of evaluation strategies, parallelism. Organizing data/computations around types. Search-based programming, concurrency, modularity.
CSCI 2081 - Introduction to Software Development
(4 cr; Prereq-CSCI 1133 or CSCI 1133H; Student Option; offered Every Fall & Spring)
echniques for design and development of software using Java. Introduction to object-oriented programming and design, integrated development environments, inheritance, and polymorphism. Software design principles, testing and debugging, and use of project management tools. Implementation of a software project using data structures, files, and I/O. This course is intended for non-CS Majors.
CSCI 2915 - Teaching Methods in Computer Science
(1 cr; S-N only; offered Every Spring)
This is a seminar on teaching and learning for undergraduate teaching assistants (TAs) of CSci classes. Enrollment is by instructor or department permission. The course's main goal is to help TAs improve their knowledge of teaching and learning in computer science so they can be effective TAs. Topics covered include educational issues in computer science, TA professionalism, best practices in giving effective feedback, inclusive teaching, online teaching and learning, and how to communicate well with students and other course staff. Its secondary goals are to help TAs improve their own communication skills, leadership skills, and knowledge of computer science as a field.
CSCI 2980 - Special Topics in Computer Science (Topics course)
(1 cr [max 4]; A-F or Audit; offered Periodic Fall & Spring; may be repeated for 8 credits; may be repeated 2 times)
Special topics. Lectures, informal discussions.
CSCI 2999 - Special Exam
(4 cr; Student Option)
CSCI 3003 - Introduction to Computing in Biology
(3 cr; Prereq-introductory biology course.; Student Option; offered Every Spring)
Equivalent courses: CSCI 5465
This course builds computational skills needed to carry out basic data analysis tasks common in modern biology. Students will learn computing concepts (algorithm development, data structures, complexity analysis) along with practical programming skills in Python and R. No previous programming knowledge assumed.
CSCI 3041 - Introduction to Discrete Structures and Algorithms
(4 cr; Student Option; offered Every Fall & Spring)
Overview of strategies and techniques for the design and analysis of algorithms. Logic and proof techniques, asymptotic notation, recurrences, graphs, and relations. Algorithm design strategies and examples from graph algorithms, greedy, divide-and-conquer, and dynamic programming. This course is intended for non-CS Majors. prerequisite: CSci 2081 OR (upper class standing AND CSci 2081 as a co-requisite)
CSCI 3061 - Introduction to Computer Systems
(4 cr; Prereq-CSci 2081; Student Option; offered Every Fall & Spring)
Overview of the organization and interfaces of computing systems. Basics of machine organization, data representation, memory hierarchy and assembly language/ISA. Systems programming in C/C++, including memory management, files, processes and interprocess communication. This course is intended for non-CS Majors.
CSCI 3081W - Program Design and Development [WI]
(4 cr; Prereq-CS upper div, CS grad, or dept. permission; Student Option; offered Every Fall & Spring)
Equivalent courses: CSCI 4089 (inactive, starting 07-SEP-99), CSCI 4081W (inactive, starting 05-SEP-00, was CSCI 4081 until 05-SEP-00)
Principles of programming design/analysis. Concepts in software development. Uses a programming project to illustrate key ideas in program design/development, data structures, debugging, files, I/O, testing, and coding standards.
CSCI 3901 - Introduction to Undergraduate Research in Computer Science
(1 cr; S-N only; offered Every Spring)
Equivalent courses: CSCI 3901H
This seminar will prepare students to engage in undergraduate research in computer science by introducing and exploring the cycle involved in academic research. Students will learn how to access, read and evaluate credible literature, develop a research problem and hypothesis, select an appropriate methodology, and how to write a short research proposal. Students will engage with departmental research faculty through research talks and will explore and apply for research programs that are available (e.g. URGO, McNair, DREU.) Students will know what research entails, how it is performed, and why it can enhance an undergraduate experience.
CSCI 3901H - Introduction to Undergraduate Research in Computer Science
(1 cr; A-F only; offered Every Spring)
Equivalent courses: CSCI 3901
This seminar will prepare students to engage in undergraduate research in computer science by introducing and exploring the cycle involved in academic research. Students will learn how to access, read and evaluate credible literature, develop a research problem and hypothesis, select an appropriate methodology, and how to write a short research proposal. Students will engage with departmental research faculty through research talks and will explore and apply for research programs that are available (e.g. URGO, McNair, DREU.) Students will know what research entails, how it is performed, and why it can enhance an undergraduate experience.
CSCI 3921W - Social, Legal, and Ethical Issues in Computing [WI CIV]
(3 cr; Prereq-At least soph or instr consent; Student Option; offered Every Fall)
Equivalent courses: was CSCI 2101W until 28-MAY-02, was CSCI 2101 until 05-SEP-00
Impact of computers on society. Computer science perspective of ethical, legal, social, philosophical, political, and economic aspects of computing.
CSCI 3923 - Ethics in Computing
(1 cr; Student Option; offered Every Fall & Spring)
An introduction to ethics and computing, including ethical principles and codes, professional conduct and responsibilities, basics of topics such as freedom of speech and intellectual property, computing and current societal issues, data collection and privacy issues, fairness and related issues, and benefits and harms of computing systems.
CSCI 3970 - Industrial Student Co-op Assignment
(2 cr; Prereq-CSci, in co-op program, instr consent; S-N or Audit; offered Every Fall & Spring; 13 academic progress units; 13 financial aid progress units; may be repeated for 4 credits; may be repeated 2 times)
Industrial work assignment in a co-op program involving advanced computer technology. Reviewed by a faculty member. Grade based on final written report.
CSCI 4011 - Formal Languages and Automata Theory
(4 cr; Prereq-2041 or instr consent; Student Option; offered Every Fall & Spring)
Logical/mathematical foundations of computer science. Formal languages, their correspondence to machine models. Lexical analysis, string matching, parsing. Decidability, undecidability, limits of computability. Computational complexity.
CSCI 4041 - Algorithms and Data Structures
(4 cr; Prereq-[(CSCI 1913 or CSCI 1933) and CSCI 2011] or instr consent or grad standing; Student Option; offered Every Fall & Spring)
Equivalent courses: CSCI 4041H (inactive)
Rigorous analysis of algorithms/implementation. Algorithm analysis, sorting algorithms, binary trees, heaps, priority queues, heapsort, balanced binary search trees, AVL trees, hash tables and hashing, graphs, graph traversal, single source shortest path, minimum cost spanning trees.
CSCI 4061 - Introduction to Operating Systems
(4 cr; Prereq-2021 or EE 2361; CS upper div, CompE upper div., EE upper div., EE grad, ITI upper div., or dept. permission; no cr for grads in CSci.; Student Option; offered Every Fall & Spring)
Equivalent courses: INET 4001
Processes/threads, process coordination, interprocess communication, asynchronous events, memory management/file systems. Systems programming projects using operating system interfaces and program development tools.
CSCI 4131 - Internet Programming
(3 cr; Prereq-[CSCI 1133 OR CSCI 1913] AND CSCI 4061. Cannot be taken for grad CSci cr.; Student Option; offered Every Fall & Spring)
Equivalent courses: CSCI 5131 (inactive, starting 07-SEP-99)
Issues in internet programming. Internet history, architecture/protocols, network programming, Web architecture. Client-server architectures and protocols. Client-side programming, server-side programming, dynamic HTML, Java programming, object-oriented architecture/design, distributed object computing, Web applications.
CSCI 4203 - Computer Architecture
(4 cr; Prereq-CSCI 2021 ; Student Option; offered Every Fall & Spring)
Equivalent courses: was CSCI 5201 until 02-SEP-03, was EE 5361 until 07-SEP-99, EE 5361 (inactive), EE 4363
Introduction to computer architecture. Aspects of computer systems, such as pipelining, memory hierarchy, and input/output systems. Performance metrics. Examins each component of a complicated computer system.
CSCI 4211 - Introduction to Computer Networks
(3 cr; Prereq-CSci 2021 or CSci 3061 or EE 2361; Student Option; offered Every Fall & Spring)
Equivalent courses: CSCI 5211 (starting 07-SEP-99), INET 4002
Concepts, principles, protocols, and applications of computer networks. Layered network architectures, data link protocols, local area networks, routing, transport, network programming interfaces, networked applications. Examples from Ethernet, Token Ring, TCP/IP, HTTP, WWW.
CSCI 4271W - Development of Secure Software Systems [WI]
(4 cr; Prereq-CSCI 3081W (CSCI 4061 recommended but not required); A-F or Audit; offered Every Spring)
Overview of threat modeling and security assessment in the design and development of software systems. Techniques to identify, exploit, detect, mitigate, and prevent software vulnerabilities at the design, coding, application, compiler, operating system, and networking layers. Methods for effectively communicating system designs and vulnerabilities.
CSCI 4511W - Introduction to Artificial Intelligence [WI]
(4 cr; Student Option; offered Every Fall & Spring)
Equivalent courses: CSCI 5511 (starting 02-SEP-08)
Agents. Problem-solving using search algorithms. Knowledge representation and inference using formal logic. Knowledge graphs. Planning. Introduction to machine learning. Cannot be taken for grad CSci credit. co-requisite: CSci 4041
CSCI 4521 - Applied Machine Learning for Computer and Data Scientists
(3 cr; Prereq-(CSCI 1133 and (CSCI 2033 or MATH 2243/2373/2471/2574H)) or (MATH 4242 and (CSCI 2011 or CSCI 3041 or MATH 2283/2283W)); Student Option; offered Every Fall & Spring)
An introduction to solving problems with machine learning. Applications of linear algebra, statistical models, non-parametric models (such as clustering, KNN), and non-linear/deep regression & classification. Emphasis is on hands-on experience using modern machine learning libraries to work with numerical data, text, and images.
CSCI 4611 - Programming Interactive Computer Graphics and Games
(3 cr; Prereq-coreq CSci 2033 and (CSci 2041 or CSci 2081 or CSci 3081W); Student Option; offered Every Spring)
Tools/techniques for programming games/interactive computer graphics. Event loops, rendering/animation, polygonal models, texturing, physical simulation. Modern graphics toolkits. History/future of computer games technology. Social impact of interactive computer graphics.
CSCI 4707 - Practice of Database Systems
(3 cr; Prereq-4041 or instr consent; Student Option; offered Every Fall & Spring)
Equivalent courses: CSCI 5707 (starting 07-SEP-99), INET 4707
Concepts, conceptual data models, case studies, common data manipulation languages, logical data models, database design, facilities for database security/integrity, applications.
CSCI 4921 - History of Computing [TS HIS]
(3 cr; Student Option; offered Fall Even Year)
Equivalent courses: HSCI 4321 (starting 07-SEP-99, was CSCI 4921 until 07-SEP-99)
Developments in last 150 years; evolution of hardware and software; growth of computer and semiconductor industries and their relation to other businesses; changing relationships resulting from new data-gathering and analysis techniques; automation; social and ethical issues.
CSCI 4950 - Senior Software Project (computer based)
(3 cr; Prereq-Upper div CSci, instr consent; A-F only; offered Every Fall & Spring; may be repeated for 6 credits; may be repeated 2 times)
Equivalent courses: was CSCI 4950W until 05-SEP-06
Student teams develop a software system, distribute system to users, and extend/maintain it in response to their needs. Software engineering techniques. Software development, team participation, leadership.
CSCI 4970W - Advanced Project Laboratory [WI]
(3 cr; Prereq-Upper div CSci, 4061, instr consent; cannot be taken for grad cr; Student Option; offered Every Fall & Spring; may be repeated for 9 credits; may be repeated 3 times)
Equivalent courses: was CSCI 4970 until 05-SEP-00
Formulate and solve open-ended project: design, implement, interface, document, test. Team work strongly encouraged. Arranged with CSci faculty.
CSCI 4980 - Special Topics in Computer Science for Undergraduates (Topics course)
(1 cr [max 3]; Prereq-Undergrad, instr consent; no cr for grads in [CSci or CompE]; A-F or Audit; offered Periodic Fall & Spring; may be repeated for 9 credits; may be repeated 9 times)
Lectures and informal discussions on current topics in computer science.
CSCI 4994H - Honors Thesis (independent study)
(1 cr [max 3]; Prereq-Honors student, instr consent; A-F only; offered Every Fall, Spring & Summer; may be repeated for 6 credits; may be repeated 2 times)
Research work for an honors thesis arranged with a CS faculty member who is the adviser or coadviser.
CSCI 5103 - Operating Systems
(3 cr; Prereq-CSCI 4061 or graduate standing; Student Option; offered Every Fall)
Conceptual foundation of operating system design and implementation. Operating system internals including OS structures and algorithms, and their relationship to machine architecture. Real-world OS implementation mechanisms as examples.
CSCI 5105 - Introduction to Distributed Systems
(3 cr; Prereq-4061 or 5103 or instr consent; Student Option; offered Periodic Spring)
Distributed system design and implementation. Distributed communication and synchronization, data replication and consistency, distributed file systems, fault tolerance, and distributed scheduling.
CSCI 5106 - Programming Languages
(3 cr; Prereq-4011 or instr consent; Student Option; offered Every Fall)
Design and implementation of high-level languages. Course has two parts: (1) language design principles, concepts, constructs; (2) language paradigms, applications. Note: course does not teach how to program in specific languages.
CSCI 5115 - User Interface Design, Prototyping, and Evaluation
(3 cr; Prereq-Graduate Status OR (Junior or Senior Status AND CSCI 3081) OR (Junior or Senior Status AND CSci 2081 AND CSci 3041) OR (Junior or Senior Status and User Experience (UX) Design Undergraduate Minor) OR Permission of Instructor; Student Option; offered Every Fall)
Theory, design, programming, and evaluation of interactive application interfaces. Human capabilities and limitations, interface design and engineering, prototyping and interface construction, interface evaluation, and topics such as data visualization and World Wide Web. Course is built around a group project.
CSCI 5117 - Developing the Interactive Web
(3 cr; Prereq-CSCI 4131 or Grad Standing; Student Option; offered Spring Even Year)
Hands-on design experience using modern web development tools. Students work in teams to develop software programs using each of four toolkits. Analyze developments in forum posts and classroom discussions.
CSCI 5123 - Recommender Systems
(3 cr; Student Option; offered Fall Odd Year)
An overview of recommender systems, including content-based and collaborative algorithms for recommendation, programming of recommender systems, and evaluation and metrics for recommender systems.Graduate Status OR CSCI 2033 AND (CSCI 3081W OR CSCI 3061) ORInstructor Permission
CSCI 5125 - Collaborative and Social Computing
(3 cr; Prereq-CSci 5115 OR grad status OR instructor permission; Student Option; offered Spring Even Year)
Introduction to computer-supported cooperative work, social computing. Technology, research methods, theory, case studies of group computing systems. Readings, hands-on experience.
CSCI 5127W - Embodied Computing: Design & Prototyping [WI]
(3 cr; Student Option; offered Fall Even Year)
In this course, you will learn and apply the principles of embodied computing to human-centered challenges. Through a semester-long team project, you will learn and demonstrate mastery of human-centered embodied computing through two phases: (1) investigating human needs and current embodied practices and (2) rapidly prototyping and iterating embodied computing solutions. One of the ways you will demonstrate this mastery is through the collaborative creation of a written document and project capstone video describing your process and prototype.
CSCI 5143 - Real-Time and Embedded Systems
(3 cr; Prereq-CSCI 4061 or Instructor Consent.; A-F only; offered Periodic Spring)
Description: Introduction to embedded software design and implementation. Microcontroller programming in C, digital and analog I/O, hardware communication protocols. Embedded scheduling, timers, and interrupts. Real-time issues and system design. Low-power wireless networking.
CSCI 5161 - Introduction to Compilers
(3 cr; Prereq-[2021, 5106] or instr consent; Student Option; offered Every Spring)
Techniques for translating modern programming languages to intermediate forms or machine-executable instructions/their organization into compiler. Lexical analysis, syntax analysis, semantic analysis, data flow analysis, code generation. Compiler project for prototypical language.
CSCI 5204 - Advanced Computer Architecture
(3 cr; Prereq-CSCI 4203 or EE 4363 or graduate standing; Student Option; offered Every Fall)
Equivalent courses: was CSCI 8203 until 02-SEP-03, was EE 8365 until 12-JUN-00, was CSCI 8203 until 12-JUN-00, was EE 8365 until 07-SEP-99, EE 5364
Instruction set architecture, processor microarchitecture, memory, I/O systems. Interactions between computer software and hardware. Methodologies of computer design.
CSCI 5211 - Data Communications and Computer Networks
(3 cr; Prereq-grad student; Student Option; offered Every Fall)
Equivalent courses: CSCI 4211, INET 4002
Concepts, principles, protocols, and applications of computer networks. Layered network architectures, data link protocols, local area networks, network layer/routing protocols, transport, congestion/flow control, emerging high-speed networks, network programming interfaces, networked applications. Case studies using Ethernet, Token Ring, FDDI, TCP/IP, ATM, Email, HTTP, and WWW.
CSCI 5221 - Foundations of Advanced Networking
(3 cr; Prereq-4211 or 5211 or equiv; intro course in computer networks recommended; Student Option; offered Spring Even Year)
Design principles, protocol mechanisms. Network algorithmics, implementation techniques. Advanced network architectures, state-of-art/emerging networking technologies/applications, network modeling. Simulation, experiments.
CSCI 5271 - Introduction to Computer Security
(3 cr; Prereq-CSci 4061 or CSci 5103 or Grad Standing; Student Option; offered Every Fall)
Concepts of computer, network, and information security.Risk analysis, authentication, access control, security evaluation, audit trails, cryptography, network/database/application security, viruses, firewalls.
CSCI 5302 - Analysis of Numerical Algorithms
(3 cr; Prereq-CSCI 2033 OR Math 2142 OR Math 2243 OR Math 2373 OR Math 4242 OR Grad Standing; Student Option; offered Every Spring)
Additional topics in numerical analysis. Interpolation, approximation, extrapolation, numerical integration/differentiation, numerical solutions of ordinary differential equations. Introduction to optimization techniques.
CSCI 5304 - Computational Aspects of Matrix Theory
(3 cr; Prereq-csci2033 or math2142 or math2243 or math2373 or math4242 ; Student Option; offered Every Fall)
Background in Linear Algebra: subspaces, ranks, vector, and matrix norms. Perturbation theory for linear systems and eigenvalue problems. Solution methods of linear systems and least-squares problems. Matrix factorizations. Computation of eigenvalues/eigenvectors. Singular value decomposition. Matlab and/or Python/numpy for demonstrating algorithms. Introduction to sparse matrix methods.
CSCI 5421 - Advanced Algorithms and Data Structures
(3 cr; Prereq-CSCI 4041 or Grad Standing; Student Option; offered Every Fall & Spring)
Fundamental paradigms of algorithm and data structure design. Divide-and-conquer, dynamic programming, greedy method, graph algorithms, amortization, priority queues and variants, search structures, disjoint-set structures. Theoretical underpinnings. Examples from various problem domains.
CSCI 5451 - Introduction to Parallel Computing: Architectures, Algorithms, and Programming
(3 cr; Student Option; offered Every Spring)
Parallel architectures design, embeddings, routing. Examples of parallel computers. Fundamental communication operations. Performance metrics. Parallel algorithms for sorting. Matrix problems, graph problems, dynamic load balancing, types of parallelisms. Parallel programming paradigms. Message passing programming in MPI. Shared-address space programming in openMP or threads.
CSCI 5461 - Functional Genomics, Systems Biology, and Bioinformatics
(3 cr; Prereq-(CSCI 3041, CSCI 4041, CSCI 3003, or CSCI 5465) or Grad Standing; Student Option; offered Every Spring)
Computational methods for analyzing, integrating, and deriving predictions from genomic/proteomic data. Analyzing gene expression, proteomic data, and protein-protein interaction networks. Protein/gene function prediction, integrating diverse data, visualizing genomic datasets.
CSCI 5465 - Introduction to Computing for Biologists
(3 cr; Prereq-BICB MS OR BICB PhD OR non-CSE student; Student Option; offered Fall Odd Year)
Equivalent courses: CSCI 3003 (starting 20-JAN-15)
This course is designed for graduate students in biology or other related sciences that wish to learn fundamental computing skills that will enable them to develop their own computational approaches for meaningful interpretation of scientific data. Students will complete programming assignments in Python and R. No previous programming knowledge assumed.
CSCI 5471 - Modern Cryptography
(3 cr; Prereq-CSci 4041 or Grad Standing; Student Option; offered Periodic Fall & Spring)
Introduction to cryptography. Theoretical foundations, practical applications. Threats, attacks, and countermeasures, including cryptosystems and cryptographic protocols. Secure systems/networks. History of cryptography, encryption (conventional, public key), digital signatures, hash functions, message authentication codes, identification, authentication, applications.
CSCI 5481 - Computational Techniques for Genomics
(3 cr; Prereq-CSCI 3003 OR CSCI 3041 OR CSCI 4041; Student Option; offered Every Fall)
Techniques to analyze biological data generated by genome sequencing, proteomics, cell-wide measurements of gene expression changes. Algorithms for single/multiple sequence alignments/assembly. Search algorithms for sequence databases, phylogenetic tree construction algorithms. Algorithms for gene/promoter and protein structure prediction. Data mining for micro array expression analysis. Reverse engineering of regulatory networks.
CSCI 5511 - Artificial Intelligence I
(3 cr; Prereq-graduate student standing; Student Option; offered Every Fall)
Equivalent courses: CSCI 4511W
Introduction to AI. Problem solving, search, inference techniques. Logic/theorem proving. Knowledge representation, rules, frames, semantic networks. Planning/scheduling.
CSCI 5512 - Artificial Intelligence II
(3 cr; Prereq-Stat 3021 and (CSci 3041 or 4041)) or graduate standing; Student Option; offered Every Spring)
Equivalent courses: was CSCI 5519 until 08-SEP-09, CSCI 5512W (inactive, starting 07-SEP-99)
Uncertainty in artificial intelligence. Probability as a model of uncertainty, methods for reasoning/learning under uncertainty, utility theory, decision-theoretic methods.
CSCI 5521 - Machine Learning Fundamentals
(3 cr; Prereq-STAT 3021, (CSci 2033 or Math 2142 or Math 4242); Student Option; offered Periodic Fall)
Problem formulations and concepts of generalization, overfitting/under-fitting and model selection. Statistical foundations: maximum likelihood, maximum a posteriori, Expectation Maximization (EM), Bayesian estimation, and non parametric methods. Mathematical foundations and optimization: gradient descent, back propagation, regularization, quadratic programming. Perceptrons, neural networks and deep learning methods. Kernel methods and Support Vector Machines (SVMs). Machine Learning ethics.
CSCI 5523 - Introduction to Data Mining
(3 cr; Prereq-4041 or equiv or instr consent; Student Option; offered Periodic Fall & Spring)
Data pre-processing techniques, data types, similarity measures, data visualization/exploration. Predictive models (e.g., decision trees, SVM, Bayes, K-nearest neighbors, bagging, boosting). Model evaluation techniques, Clustering (hierarchical, partitional, density-based), association analysis, anomaly detection. Case studies from areas such as earth science, the Web, network intrusion, and genomics. Hands-on projects.
CSCI 5525 - Machine Learning: Analysis and Methods
(3 cr; Prereq-CSci 5521 or equivalent; Student Option; offered Fall Even Year)
Models of learning. Supervised algorithms such as perceptrons, logistic regression, and large margin methods (SVMs, boosting). Hypothesis evaluation. Learning theory. Online algorithms such as winnow and weighted majority. Unsupervised algorithms, dimensionality reduction, spectral methods. Graphical models.
CSCI 5527 - Deep Learning: Models, Computation, and Applications
(3 cr; Prereq-CSCI 5521 Maturity in linear algebra, calculus, and basic probability is assumed. Familiarity with Python is necessary to complete the homework assignments and final project. ; Student Option; offered Every Fall)
This course introduces the basic ingredients of deep learning, describes effective models and computational principles, and samples important applications. Topics include universal approximation theorems, basics of numerical optimization, auto-differentiation, convolution neural networks, recurrent neural networks, generative neural networks, representation learning, and deep reinforcement learning.
CSCI 5541 - Natural Language Processing
(3 cr; Student Option; offered Periodic Spring)
The purpose of this course is to provide an overview of the computational techniques developed to enable computers to interpret and respond appropriately to ideas expressed using natural languages, rather than formal languages, such as C++ or Python. This course will cover text classification, distributional representation methods of language, large language models, and advanced techniques in chatGPT. The course will cover a wide range of topics related to NLP, including theories, computational models, and applications with their societal and ethical impacts.
CSCI 5551 - Introduction to Intelligent Robotic Systems
(3 cr; Prereq-2031 or 2033 or instr consent; Student Option; offered Periodic Fall)
Transformations, kinematics/inverse kinematics, dynamics, control. Sensing (robot vision, force control, tactile sensing), applications of sensor-based robot control, robot programming, mobile robotics, microrobotics.
CSCI 5552 - Sensing and Estimation in Robotics
(3 cr; Prereq-[5551, Stat 3021] or instr consent; Student Option; offered Periodic Spring)
Bayesian estimation, maximum likelihood estimation, Kalman filtering, particle filtering. Sensor modeling and fusion. Mobile robot motion estimation (odometry, inertial,laser scan matching, vision-based) and path planning. Map representations, landmark-based localization, Markov localization, simultaneous localization/mapping (SLAM), multi-robot localization/mapping.
CSCI 5561 - Computer Vision
(3 cr; Prereq-CSci 5521; Student Option; offered Every Spring)
Issues in perspective transformations, edge detection, image filtering, image segmentation, and feature tracking. Complex problems in shape recovery, stereo, active vision, autonomous navigation, shadows, and physics-based vision and applications.
CSCI 5563 - Multiview 3D Geometry in Computer Vision
(3 cr; Prereq-Students enrolling in this course must have completed CSCI 5561 or have instructor consent. ; A-F or Audit; offered Every Spring)
The 3D spatial relationship between cameras and scenes in computer vision. Application to tasks such as planning robots, reconstructing scenes from photos, and understanding human behaviors from body-worn cameras data. Multiview theory fundamentals, structure-from-motion, state-of-the-art approaches, and current research integration.
CSCI 5607 - Fundamentals of Computer Graphics 1
(3 cr; Prereq-concurrent registration is required (or allowed) in 2033, concurrent registration is required (or allowed) in 3081; Student Option; offered Every Fall)
Equivalent courses: was CSCI 5107 until 03-SEP-13
Fundamental algorithms in computer graphics. Emphasizes programming projects in C/C++. Scan conversion, hidden surface removal, geometrical transformations, projection, illumination/shading, parametric cubic curves, texture mapping, antialising, ray tracing. Developing graphics software, graphics research.
CSCI 5608 - Fundamentals of Computer Graphics II
(3 cr; Prereq-5607 or instr consent; Student Option; offered Periodic Spring)
Equivalent courses: was CSCI 5108 until 03-SEP-13
Advanced topics in image synthesis, modeling, rendering. Image processing, image warping, global illumination, non-photorealistic rendering, texture synthesis. Parametric cubic surfaces, subdivision surfaces, acceleration techniques, advanced texture mapping. Programming in C/C++.
CSCI 5609 - Visualization
(3 cr; Prereq-CSci 4611 or CSci 5607 or CSci 5115 or CSci 5117; Student Option; offered Fall Even Year)
Equivalent courses: was CSCI 5109 until 03-SEP-13
Fundamental theory/practice in data visualization. Programming applications. Perceptual issues in effective data representation, multivariate visualization, information visualization, vector field/volume visualization.
CSCI 5611 - Animation & Planning in Games
(3 cr; Prereq-CSCI 5511 (AI) or CSCI 5551 (Robotics) or CSCI 5607 (Comp Graphics 1) or grad standing; Student Option; offered Fall Odd Year)
Theory behind algorithms used to bring virtual worlds to life. Computer animation topics. Real-time, interactive techniques used in modern games. Physically-based animation, motion planning, character animation, simulation in virtual worlds.
CSCI 5619 - Virtual Reality and 3D Interaction
(3 cr; Prereq-4611 or 5607 or 5115 or equiv or instr consent; Student Option; offered Spring Odd Year)
Introduction to software, technology/applications in virtual/augmented reality, 3D user interaction. Overview of current research. Hands-on projects.
CSCI 5707 - Principles of Database Systems
(3 cr; Prereq-[4041 or instr consent], grad student; Student Option; offered Every Fall)
Equivalent courses: CSCI 4707, INET 4707
Concepts, database architecture, alternative conceptual data models, foundations of data manipulation/analysis, logical data models, database designs, models of database security/integrity, current trends.
CSCI 5708 - Architecture and Implementation of Database Management Systems
(3 cr; Prereq-4041 or 4707 or 5707 or instr. consent; Student Option; offered Every Spring)
Techniques in commercial/research-oriented database systems. Catalogs. Physical storage techniques. Query processing/optimization. Transaction management. Mechanisms for concurrency control, disaster recovery, distribution, security, integrity, extended data types, triggers, and rules.
CSCI 5715 - From GPS, Google Maps, and Uber to Spatial Data Science
(3 cr; Prereq-none; Student Option; offered Spring Even Year)
Spatial databases and querying, spatial big data mining, spatial data-structures and algorithms, positioning, earth observation, cartography, and geo-visulization. Trends such as spatio-temporal, and geospatial cloud analytics, etc.
CSCI 5801 - Software Engineering I
(3 cr; Prereq-(2081 and 3041) or (3081) or (Grad Status); Student Option; offered Every Fall)
Advanced introduction to software engineering. Software life cycle, development models, software requirements analysis, software design, coding, maintenance.
CSCI 5802 - Software Engineering II
(3 cr; Prereq-(CSCI 2081 and CSCI 3041) or (CSCI 3081) or (Grad Status); Student Option; offered Periodic Spring)
Introduction to software testing, software maturity models, cost specification models, bug estimation, software reliability models, software complexity, quality control, and experience report. Student groups specify, design, implement, and test partial software systems. Application of general software development methods and principles from 5801.
CSCI 5980 - Special Topics in Computer Science (Topics course)
(1 cr [max 3]; Prereq-instr consent; may be repeated for cr; Student Option; offered Periodic Fall & Spring; may be repeated for 27 credits; may be repeated 9 times)
Lectures and informal discussions on current topics in computer science.
CSCI 5991 - Independent Study
(1 cr [max 3]; Prereq-instr consent; may be repeated for cr; Student Option; offered Every Fall, Spring & Summer; may be repeated for 9 credits; may be repeated 9 times)
Independent study arranged with CS faculty member.
CSCI 5994 - Directed Research
(1 cr [max 3]; Prereq-instr consent; may be repeated for cr; Student Option; offered Every Fall, Spring & Summer; may be repeated for 9 credits; may be repeated 9 times)
Directed research arranged with faculty member.
CSCI 5996 - Curricular Practical Training
(1 cr; Prereq-[CSci or CompE] major, instr consent; S-N or Audit; offered Every Fall, Spring & Summer; may be repeated for 3 credits; may be repeated 3 times)
Industrial work assignment involving advanced computer technology. Reviewed by faculty member. Grade based on final report covering work assignment.
CSCI 8001 - Introduction to Research in Computer Science I
(1 cr; Prereq-1st yr CS PhD student; A-F only; offered Every Fall)
First of two-part sequence course. Students must take both parts to complete course and receive grade. Conducting literature review. Identifying research questions. Writing a research proposal. Research areas in CS. Practical research skills. Research ethics. Resources.
CSCI 8002 - Introduction to Research in Computer Science, II
(2 cr; Prereq-8001, 1st yr CS PhD student; A-F only; offered Every Spring)
Second of two-part sequence course. Students must take both parts to complete course and receive grade. Conducting literature review. Identifying research questions. Writing a research proposal. Research areas in CS. Practical research skills. Research ethics. Resources.
CSCI 8101 - Advanced Operating Systems
(3 cr; Prereq-5103 or instr consent; Student Option; offered Periodic Fall)
Successful research systems and existing theory of systems design. Goal is not merely to catalog systems or learn mathematics, but to develop a sense of elegance of design that leads to successful systems.
CSCI 8102 - Foundations of Distributed Computing
(3 cr; Prereq-8101 or instr consent; Student Option; offered Periodic Spring)
Fundamental principles underlying design of distributed and multiprocessor operating systems. Foundations of distributed computing systems; shared multiprocessor systems.
CSCI 8115 - Human-Computer Interaction and User Interface Technology
(3 cr; Prereq-5115 or instr consent; Student Option; offered Periodic Fall & Spring)
Current research issues in human-computer interaction, user interface toolkits and frameworks, and related areas. Research techniques, model-based development, gesture-based interfaces, constraint-based programming, event processing models, innovative systems, HCI in multimedia systems.
CSCI 8117 - Understanding the Social Web
(3 cr; Prereq-CS grad or instr consent; Student Option; offered Periodic Fall & Spring)
Research on the social web. Read, present, and discuss papers, do homework using social web research techniques such as data analysis and simulation. Semester research project.
CSCI 8161 - Advanced Compiler Techniques
(3 cr; Prereq-4061 or instr consent; Student Option; offered Periodic Fall & Spring)
Techniques for uniprocessors and parallel computers. Fundamental program analysis instruments such as data flow analysis and data dependence analysis. Variety of code generation and transformation techniques.
CSCI 8205 - Parallel Computer Organization
(3 cr; Prereq-5204 or EE 5364 or instr consent; Student Option; offered Every Spring)
Equivalent courses: was EE 8367 until 12-JUN-00, was EE 8367 until 07-SEP-99, EE 8367
Design/implementation of multiprocessor systems. Parallel machine organization, system design. Differences between parallel, uniprocessor machines. Programming models. Synchronization/communication. Topologies, message routing strategies. Performance optimization techniques. Compiler, system software issues.
CSCI 8207 - Introduction to Quantum Computing
(3 cr; A-F only; offered Every Fall)
The announcement of quantum supremacy marks the beginning of an era of quantum machines solving a problem that classical computers are unable to solve in a realistic amount of time. The NSF has since established three new institutes to address critical challenges in quantum information science. Major tech companies have also launched quantum computing cloud platforms to facilitate research and utilization of quantum computing. In this class, we will cover basic topics of quantum computing, including: - Qubit - Quantum gates and circuits - Quantum entanglement - Quantum teleportation - Quantum algorithms - Various topics in quantum computing research
CSCI 8211 - Advanced Computer Networks and Their Applications
(3 cr; Prereq-5211 or instr consent; Student Option; offered Periodic Fall & Spring)
Current research issues in traffic and resource management, quality-of-service provisioning for integrated services networks (such as next-generation Internet and ATM networks) and multimedia networking.
CSCI 8271 - Security and Privacy in Computing
(3 cr; Prereq-[5211, 5103] or instr consent; 5471 or EE 5248 or Math 5248 or equiv recommended; A-F or Audit; offered Periodic Fall)
Recent security/privacy issues in computer systems/networks. Threats, attacks, countermeasures. Security research, authentication, network security, wireless security, computer system security, anonymous system, pseudonym, access control, intrusion detection system, cryptographic protocols. How to pursue research in security and design secure systems.
CSCI 8314 - Sparse Matrix Computations
(3 cr; Prereq-5304 or numerical linear algebra course or instr consent; Student Option; offered Periodic Spring)
Sparsity and sparse matrices. Data structures for sparse matrices. Direct methods for sparse linear systems. Reordering techniques to reduce fill-in such as minimal degree ordering and nested dissection ordering. Iterative methods. Preconditioning algorithms. Algorithms for sparse eigenvalue problems and sparse least-squares.
CSCI 8333 - FTE: Master's
(1 cr; Prereq-Master's student, adviser and DGS consent; No Grade Associated; offered Every Fall, Spring & Summer; 6 academic progress units; 6 financial aid progress units)
(No description)
CSCI 8363 - Numerical Linear Algebra in Data Exploration
(3 cr; Prereq-5304 or instr consent; Student Option; offered Periodic Spring)
Computational methods in linear algebra, matrix decompositions for linear equations, least squares, eigenvalue problems, singular value decomposition, conditioning, stability in method for machine learning, large data collections. Principal directions, unsupervised clustering, latent semantic indexing, linear least squares fit. Markov chain models on hyperlink structure.
CSCI 8442 - Computational Geometry and Applications
(3 cr; Prereq-5421 or instr consent; Student Option; offered Periodic Spring)
Equivalent courses: was CSCI 5442 until 04-SEP-01
Designing efficient algorithms and data structures for geometric problems. Models of computation, convex hulls, geometric duality, multidimensional search, Voronoi diagrams and Delauney triangulations, linear programming in fixed dimensions, lower bound techniques. Applications, advanced topics.
CSCI 8444 - FTE: Doctoral
(1 cr; Prereq-Doctoral student, adviser and DGS consent; No Grade Associated; offered Every Fall, Spring & Summer; 6 academic progress units; 6 financial aid progress units)
(No description)
CSCI 8523 - AI for Earth: Monitoring Changes in the Environment via Deep Learning
(3 cr; Student Option; offered Spring Even Year)
Advances in machine learning in conjunction with massive amounts of data from Earth observing satellites offer huge potential for improving our understanding of how the Earth's environment and ecosystems have been changing and how they are being impacted by humans actions and changing climate. Deep learning approaches, that have had phenomenal success in the domain of computer vision and language/speech translation, hold promise in dealing with environmental problems. However, due to challenges that are unique to environmental applications, off-the-shelf deep learning techniques developed for related applications such as computer vision often have limited utility. This class will introduce to the students the promise and challenges in using deep learning techniques to analyze complex, multi-scale, spatio-temporal data for monitoring changes in the Earth and its environment on a global scale. Prerequisites: CSci 5523, CSci 5521, or equivalent
CSCI 8551 - Intelligent Agents
(3 cr; Prereq-5511 or instr consent; Student Option; offered Periodic Fall)
Theories of intelligent agents. Agent architectures; knowledge representation, communication, cooperation, and negotiation among multiple agents; planning and learning; issues in designing agents with a physical body; dealing with sensors and actuators; world modeling.
CSCI 8581 - Big Data in Astrophysics
(4 cr; A-F only; offered Every Spring)
Equivalent courses: AST 8581, PHYS 8581, STAT 8581
This course will introduce key concepts and techniques used to work with large datasets, in the context of the field of astrophysics. Prerequisites: MATH 2263 and MATH 2243, or equivalent; or instructor consent. Suggested: familiarity with astrophysics topics such as star formation and evolution, galaxies and clusters, composition and expansion of the universe, gravitational wave sources and waveforms, and high-energy astrophysics.
CSCI 8666 - Doctoral Pre-Thesis Credits
(1 cr [max 6]; Prereq-Doctoral student who has not passed prelim oral; no required consent for 1st/2nd registrations, up to 12 combined cr; dept consent for 3rd/4th registrations, up to 24 combined cr; doctoral student admitted before summer 2007 may register up to four times, up to 60 combined cr; No Grade Associated; offered Every Fall, Spring & Summer; may be repeated for 12 credits; may be repeated 2 times)
tbd
CSCI 8701 - Overview of Database Research
(3 cr; Prereq-5708 or instr consent; Student Option; offered Periodic Fall & Spring)
Research papers from journals and conferences on current topics in databases, such as database research methodologies, relational implementation techniques, active databases, storage systems, benchmarking, distributed and parallel databases, new data models, prototype systems, data mining, and future directions.
CSCI 8715 - Spatial Data Science Research
(3 cr; Prereq-4707 or 5707 or 5715 or GIS 5571 or GIS 5573; Student Option; offered Periodic Fall & Spring)
Motivation, models of spatial information, querying spatial data, processing strategies for spatial queries, multi-dimensional storage/access methods, spatial graph datasets, spatial data mining, trends (e.g., spatio-temporal databases, mobile objects, raster databases), research literature, how to pursue research.
CSCI 8725 - Databases for Bioinformatics
(3 cr; Prereq-4707 or 5707 or instr consent; Student Option; offered Periodic Spring)
DBMS support for biological databases, data models. Searching integrated public domain databases. Queries/analyses, DBMS extensions, emerging applications.
CSCI 8735 - Advanced Database Systems
(3 cr; Prereq-4707 or 5707 or 5708; A-F or Audit; offered Periodic Fall)
Database systems for emerging applications, nontraditional query processors, multi-dimensional data indexing. Current research trends.
CSCI 8760 - Plan B Project
(3 cr; Prereq-CSci MS student, instr consent; S-N or Audit; offered Every Fall & Spring)
Project arranged between student and faculty.
CSCI 8777 - Thesis Credits: Master's
(1 cr [max 18]; Prereq-Max 18 cr per semester or summer; 10 cr total required [Plan A only]; No Grade Associated; offered Every Fall, Spring & Summer; may be repeated for 50 credits; may be repeated 10 times)
(No description)
CSCI 8801 - Advanced Software Engineering
(3 cr; Prereq-5801 or instr consent; Student Option; offered Periodic Fall & Spring)
Software reusability, internet/intranet programming, software reengineering, and software safety.
CSCI 8888 - Thesis Credit: Doctoral
(1 cr [max 24]; Prereq-Max 18 cr per semester or summer; 24 cr required; No Grade Associated; offered Every Fall, Spring & Summer; may be repeated for 100 credits; may be repeated 10 times)
(No description)
CSCI 8970 - Computer Science Colloquium
(1 cr; S-N or Audit; offered Every Fall & Spring)
Recent developments in computer science and related disciplines. Students must attend 13 of the 15 lectures.
CSCI 8980 - Special Advanced Topics in Computer Science (Topics course)
(1 cr [max 3]; Prereq-instr consent; Student Option; offered Every Fall & Spring; may be repeated for 27 credits; may be repeated 9 times)
Lectures and informal discussions.
CSCI 8991 - Independent Study
(1 cr [max 3]; Prereq-instr consent; Student Option; offered Every Fall & Spring; may be repeated for 9 credits; may be repeated 9 times)
Independent study with professor.
CSCI 8994 - Directed Research in Computer Science
(1 cr [max 3]; Prereq-instr consent; Student Option; offered Every Fall & Spring; may be repeated for 9 credits; may be repeated 9 times)
Directed research with professor.

Please report problems with this form to the webmaster.


This software is free and available under the GNU GPL.
© 2000 and later T. W. Shield