Computer Science

General Computer Science +

CSCI 1000-1. Computer Science as a Field of Work and Study. Introduces curriculum, learning techniques, time management and career opportunities in Computer Science. Includes presentations from alumni and others with relevant educational and professional experience.

CSCI 1200-4. Introduction to Computing. Presents an introduction to various uses of computers, including text processing, communication, spreadsheets, and database systems as well as an introduction to computer programming.

CSCI 1220-4. Virtual Worlds: An Introduction to Computer Science. Introduces the fundamental principles of computer science using an on-line virtual world called Second Life as the “laboratory” for the course. Students will learn how to program by creating objects of interest in Second Life. In-class and in-world discussions and readings will introduce the student to important ideas and concepts that shape the field of computer science. Same as ATLS 1220.

CSCI 1240-3. The Computational World. Introduces and explores the “computational style of thinking” and its influence in science, mathematics, engineering and the arts. The course does not focus on the nuts and bolts of any particular programming language, but rather on the way in which computing has affected human culture and thought in the past half century. Same as ATLS 1240.

CSCI 1300-4. Computer Science 1: Programming. Teaches techniques for writing computer programs in higher level programming languages to solve problems of interest in a range of application domains.

CSCI 2270-4. Computer Science 2: Data Structures. Studies data abstractions (e.g., stacks, queues, lists, trees) and their representation techniques (e.g., linking, arrays). Introduces concepts used in algorithm design and analysis including criteria for selecting data structures to fit their applications. Prereqs., CSCI 1300, and one of APPM 1350 or Math 1300.

CSCI 2400-4. Computer Systems. Covers how programs are represented and executed by modern computers, including low-level machine representations of programs and data, an understanding of how computer components influence performance and memory hierarchy. Prereq., CSCI 2270.

CSCI 2830 (1-3). Special Topics in Computer Science. Covers topics of interest in computer science at the sophomore level. Content varies from semester to semester.

CSCI 2900 (1-3). Lower Division, Undergraduate Level Independent Study. Offers selected topics at the elementary level for students with little or no previous computing experience.

CSCI 4000-3. Entrepreneurship in Computing. Examines the development of new venture creation from the entrepreneur’s perspective. Provides an understanding of the entire process including opportunity identification, feasibility study, fundraising, organization, team creation, and exit strategies through case studies, oral and written presentations, and outside speakers. Taught by an experienced entrepreneur. Prereq., CSCI 2270. Restricted to juniors/seniors.

CSCI 4810-1. Seminar in Computational Biology and Health Informatics. Provides an overview of current research topics in computational biology and health informatics, with a focus on research conducted on campus. Each week students will attend an on-campus seminar or a presentation by an on-campus research group. Prepares students to participate in a research project. Prereqs., CSCI 4312 or 4314 or 4317.

CSCI 4830-3. Special Topics in Computer Science. Covers topics of interest in computer science at the senior undergraduate level. Content varies from semester to semester.

CSCI 4900 (1-6). Upper Division, Undergraduate Level Independent Study. Provides opportunities for independent study at the upper-division undergraduate level. Students work on a small research problem or tutor lower-division computer science students. Prereq., CSCI 1200 or 1300.

CSCI 4950 (2-4). Senior Thesis. Provides an opportunity for senior computer science majors to conduct exploratory research in computer science. Prereqs., successful completion of a minimum of 36 credit hours of CSCI Foundation, Track Foundation, Track Core, and CSCI electives, and WRTG 3030. Restricted to seniors. May be repeated up to 8 total credit hours.

CSCI 5900 (1-6). Master’s Level Independent Study. Provides opportunities for independent study at the master’s level.

CSCI 6000-1. Introduction to the Computer Science PhD Program. Instructs new PhD students in Computer Science how to obtain a PhD and how to become an effective member of the computer science research community. Makes students aware of formal requirements, educational objectives, and research themes. Provides evaluative criteria and guidelines for all objectives to be achieved. Restricted to new PhD students in Computer Science.

CSCI 6800-3. Master of Engineering Project. Students seeking the master of engineering degree must complete a creative investigation project, including a written report, supervised by a member of the graduate faculty. Prereq., completion of 21 hours towards the ME degree.

CSCI 6940 (1-3). Master’s Degree Candidacy. For students who need to be registered for the purpose of taking the master’s comprehensive exam and who are not otherwise registered. Credit does not count toward degree requirements. Graded on a pass/fail basis.

CSCI 6950 (4-6). Master’s Thesis.

CSCI 7000 (1-4). Current Topics in Computer Science. Covers research topics of current interest in computer science that do not fall into a standard subarea. May be repeated up to 8 total credit hours. Prereq., instructor consent.

CSCI 7900 (1-6). Doctoral Level Independent Study. For doctoral students.

CSCI 8990 (1-10). Doctoral Dissertation. Investigates some specialized field of computer science. Approved and supervised by faculty members.

Parallel Processing +

CSCI 5551-3. Parallel Processing. Examines a range of topics involved in using parallel operations to improve computational performance. Discusses parallel architectures, parallel algorithms and parallel programming languages. Architectures covered include vector computers, multiprocessors, network computers, and data flow machines. Prereq., background in computer organization, introduction to programming languages, elementary numerical analysis, ECEN 4593 and CSCI 3656, or instructor consent. Same as ECEN 5553.

CSCI 7111-3. Topics in Parallel Processing. Content varies, but subjects include parallel machine architecture, parallel algorithms, languages for parallel computation, and applications. Takes subject matter from current research. Prereq., instructor consent.

Artificial Intelligence +

CSCI 3002-3. Digital and Social Systems Foundations. Introduces practice and research in human computer interaction, design of interactive systems, computer supported cooperative work, computer supported collaborative learning, educational technology, tools that support creativity, user-developed knowledge collections, and gaming.

CSCI 3112 (1-3). Digital and Social Systems Professional Development. Supports students in developing professional skills and practices in human computer interaction, design of interactive systems, computer supported cooperative work, computer supported collaborative learning, educational technology, tools that support creativity, user-developed knowledge collections, and gaming. May be repeated up to 10 total credit hours. Same as ATLS 3112.

CSCI 3202-3. Introduction to Artificial Intelligence. Surveys artificial intelligence techniques of search, knowledge representation and reasoning, probabilistic inference, machine learning, and natural language processing. Introduces artificial intelligence programming. Prereq., CSCI 2824.

CSCI 3702. Cognitive Science. Introduces cognitive science, drawing from psychology, philosophy, artificial intelligence, neuroscience, and linguistics. Studies the linguistic relativity hypothesis, consciousness, categorization, linguistic rules, the mind-body problem, nature versus nurture, conceptual structure and metaphor, logic/problem solving, and judgment. Emphasizes the nature, implications, and limitations of the computational model of mind. Prereqs., two of the following: PSYC 2145, LING 2000, CSCI 1300, and PHIL 2440. Same as LING 3005, PHIL 3310, and PSYC 3005.

CSCI 4202-3. Artificial Intelligence 2. Second course in artificial intelligence. Topics may vary, but typically cover neural networks, natural language processing, and artificial life. Prereq., CSCI 3202 or instructor consent.

CSCI 4312-3. Medical Informatics. Teaches students essential skills necessary for developing usable assistive and performance support systems, which include consideration of the academic and professional interdisciplinary issues that govern the work. An overview of ongoing and emerging topics in medical informatics will be presented. Prereq., CSCI 2270. Recommended prereq., CSCI 3002. Same as CSCI 5312.

CSCI 4342-3. Groupware and Workflow Systems. Supports students in developing professional skills and knowledge concerning the use of computer technologies to support collaborative activities. Also covers the impact of digital collaboration technologies on users, groups, organizations and society. Students will gain practical experience with Business Process Management and the use of Workflow Management Systems. Same as CSCI 5342.

CSCI 4412-3. Design, Creativity, and New Media. Explores the design of new media and technologies to support design and creativity. Analyzes design and creativity as human activities of fundamental importance in the networked information culture and economy. Provides theoretical and practical analysis of new media. Instructor consent required. Same as CSCI 5412.

CSCI 5312-3. Medical Informatics. Same as CSCI 4312.

CSCI 5342-3. Groupware and Workflow Systems. Same as CSCI 4342.

CSCI 5412-3. Design, Creativity, and New Media. Same as CSCI 4412.

CSCI 5582-3. Artificial Intelligence. Surveys artificial intelligence methods, theories, and applications. Studies the relationship between artificial intelligence and psychology, linguistics, and philosophy. Introduces artificial intelligence programming. Prereq., CSCI 3155 or equivalent. Same as ECEN 5583.

CSCI 5622-3. Machine Learning. Trains students to build computer systems that learn from experience. Includes the three main subfields: supervised learning, reinforcement learning and unsupervised learning. Emphasizes practical and theoretical understanding of the most widely used algorithms (neural networks, decision trees, support vector machines, Q-learning). Covers connections to data mining and statistical modeling. A strong foundation in probability, statistics, multivariate calculus, and linear algebra is highly recommended. Prereq., graduate standing or instructor consent.

CSCI 5722-3. Computer Vision. Explores algorithms that can extract information about the world from images or sequences of images. Topics covered include: imaging models and camera calibration, early vision (filters, edges, texture, stereo, optical flow), mid-level vision (segmentation, tracking), vision-based control, and object recognition. Recommended prereq., probability, multivariate calculus, and linear algebra.

CSCI 5832-3. Natural Language Processing. Explores the field of natural language processing as it is concerned with the theoretical and practical issues that arise in getting computers to perform useful and interesting tasks with natural language. Covers the problems of understanding complex language phenomena and building practical programs. Prereq., graduate standing or instructor consent. Same as LING 5832.

CSCI 6302-3. Speech Recognition and Synthesis. Introduction to automatic speech recognition and understanding, conversational agents, dialogue systems, and speech synthesis/text-to-speech. Topics include the noisy channel model, Hidden Markov Models, A* and Viterbi decoding, language modeling (N-grams, entropy), concatenative synthesis, text normalization, dialogue and conversation modeling. Prereqs., CSCI 5582 or 5832, or LING 5200, and graduate standing or instructor consent.

CSCI 6402-3. Issues and Methods in Cognitive Science. Interdisciplinary introduction to cognitive science, examining ideas from cognitive psychology, philosophy, education, and linguistics via computational modeling and psychological experimentation. Includes philosophy of mind; learning; categorization; vision and mental imagery; consciousness; problem solving; decision making, and game-theory; language processing; connectionism. Prereqs., graduate standing, or at least one course at the 3000-level or higher in computer science, linguistics, philosophy, or psychology. No background in computer science will be presumed. Same as EDUC 6504, LING 6200, PHIL 6310, and PSYC 6200.

CSCI 6622-3. Advanced Machine Learning. Covers advanced theoretical and practical topics in machine learning and latest developments in the field. Students conduct original research, either applied or theoretical, and present their results. Prereq., CSCI 5622 or instructor consent.

CSCI 7212-3. Topics in Symbolic Artificial Intelligence. Topics vary from year to year. Possible topics include search; knowledge representation and natural language understanding; deduction, planning, problem solving, and automatic programming; instruction and cognitive models; vision and speech; and learning, induction, and concept formation. Prereq., CSCI 5582 or instructor consent.

CSCI 7222-3. Topics in Nonsymbolic Artificial Intelligence. Topics vary from year to year. Possible topics include human and machine vision, signal and speech processing, artificial life, mathematical foundations of connectionism, and computational learning theory. Prereq., CSCI 5622 or instructor consent.

CSCI 7412-2. Cognitive Science Research Practicum. Independent, interdisciplinary research project in cognitive science for graduate students pursuing a joint PhD in an approved core discipline and cognitive science. Projects integrate at least two areas within the cognitive sciences: psycology, computer science, linguistics, education, philosophy. Students should obtain commitments from two mentors for their project. Prereqs., CSCI 6402 or EDUC 6504 or LING 6200 or PHIL 6310 or PSYC 6200. Recommended prereqs., CSCI 7762 or EDUC 6505 or LING 7762 or PSYC 7765. Same as LING 7415, PSYC 7415, and EDUC 6506.

CSCI 7422-2. Cognitive Science Research Practicum 2. Independent, interdisciplinary research project in cognitive science for advanced graduate students pursuing a joint PhD in an approved core discipline and cognitive science. Research projects integrate at least two areas within the cognitive sciences: psychology, computer science, linguistics, education, philosophy. Students need commitments from two mentors for their project. Prereq., LING 7415 or PSCY 7415 or CSCI 7412 or EDUC 6506. Same as PSYC 7425, LING 7425, and EDUC 6516.

CSCI 7762 (1-2). Readings and Research in Cognitive Science. Interdisciplinary reading of innovative theories and methodologies of cognitive science. Participants share interdisciplinary perspectives through in-class and online discussion and analysis of controversial texts and of their own research in cognitive science. Required for joint PhD in cognitive science. Prereq., graduate standing. Same as EDUC 6505, LING 7762, and PSYC 7765.

CSCI 7772 (1-2). Topics in Cognitive Science. Reading of interdisciplinary innovative theories and methodologies of cognitive science. Students participate in the ICS Distinguished Speakers series that hosts internationally recognized cognitive scientists who share and discuss their current research. Session discussions include analysis of leading edge and controversial new approaches in cognitive science. Restricted to students enrolled in ICS Cognitive Science Academic Programs. Same as LING 7775, PSYC 7775, EDUC 7775 and SLHS 7775.

CSCI 7782-3. Topics in Cognitive Science. Addresses a different set of one to three topics each year. For each topic, one or two faculty members of the Institute of Cognitive Science present background material and current research. Prereq., graduate standing or instructor consent.

Operating Systems and Hardware +

CSCI 3753-4. Operating Systems. For computer science majors. Examines software comprising computing systems as it builds upon hardware to provide a programming environment. Looks at structure and function of editors, compilers/assemblers, linkers, etc. Basic operating systems concepts and systems programming in high-level languages. Prereqs., CSCI 2270 and one of CSCI 2400 or ECEN 2120.

CSCI 4113-3. UNIX System Administration. Introduces the internals of UNIX, trouble shooting system and network problems, hardware and software configuration and installation, and security aspects of hosts on the Internet. Offers students hands-on experience on dedicated laboratory workstations. Prereqs., CSCI 2270 or instructor consent. Recommended prereq., CSCI 3308.

CSCI 4123-3. Network Laboratory. Develops enterprise level design and configuration skills on local area networking via switching and routing, as well as the provisioning of remote data communications across diverse WAN technologies, using the latest available transport and security services. Prereq., CSCI 4273. Credit not granted for this course and TLEN 5460.

CSCI 4133-3. Security Laboratory. Allows students to gain practical experience with network security in a simulated network environment. Topics to be covered include: system hardening, firewalls, intrusion detection, vulnerability assessment, and investigation. Prereq., CSCI 4273. Credit not granted for this course and TLEN 5540.

CSCI 4273-3. Network Systems. Focuses on design and implementation of network programs and systems, including topics in network protocols, file transfer, client-server computing, remote procedure call, and other contemporary network system design and programming techniques. Prereqs., CSCI 3753 or equivalent, and familiarity with C and UNIX. Same as CSCI 5273.

CSCI 4593-3. Computer Organization. Studies computer design at the gate level. Discusses microprogrammed and hardwired control units, memory design, arithmetic and logic unit, I/O, and peripheral devices. Briefly covers aspects of modern computer architecture, such as parallel processing and reduced instruction set computers. Prereqs., ECEN 2120 and 3100. Same as ECEN 4593.

CSCI 4753-3. Computer Performance Modeling. Presents a broad range of system measurement and modeling techniques, emphasizing applications to computer systems. Topics include system measurement, work load characterization, and analysis of data; design of experiments; simulation; and queuing theory and queuing network models. Prereq., CSCI 3753 or equivalent, and second-semester calculus. Recommended prereq., a course in statistics. Same as CSCI 5753 and ECEN 4753/5753.

CSCI 5273-3. Network Systems. Same as CSCI 4273.

CSCI 5473-3. Applied Operating Systems. Examines design and implementation of contemporary operating systems. Significant laboratory component applies practice with OS use, analysis, and internal design. Topics include OS organization and structure, process and thread management, memory management, file management, device management, network and distributed systems, and modern runtime systems. Prereq., two years programming and instructor consent.

CSCI 5513-3. Real-Time Hardware-Software System Design. Centers on the design and use of real-time computer systems. Gives special attention to the design, implementation, and testing of concurrent high-level language software in real-time applications. Treats the design of computer/process interfacing systems in the context of representative real-time applications. Reinforces concepts developed during the lecture portion of the class with practical experience in the real-time computing laboratory. Prereqs., ECEN 4593 and experience in programming sequential C or Pascal. Same as ECEN 5513.

CSCI 5573-3. Advanced Operating Systems. Intended to create a foundation for operating systems research or advanced professional practice. Examines the design and implementation of a number of research and commercial operating systems and their components, system organization and structure, threads, communication and synchronization, virtual memory, distribution, file systems, security and authentication, availability, and Internet services. Prereqs., CSCI 3753, 4593, equivalent undergraduate coursework in operating systems and computer architecture, or instructor consent. Same as ECEN 5573.

CSCI 5593-3. Advanced Computer Architecture. Provides a broad-scope treatment of important concepts in the design and implementation of high-performance computer systems. Discusses important issues in the pipelining of a machine and the design of cache memory systems. Also studies current and historically important computer architectures. Prereq., ECEN 4593 or instructor consent. Same as ECEN 5593.

CSCI 5673-3. Distributed Systems. Examines systems that span multiple autonomous computers. Topics include system structuring techniques, scalability, heterogeneity, fault tolerance, load sharing, distributed file and information systems, naming, directory services, resource discovery, resource and network management, security, privacy, ethics, and social issues. Recommended prereqs., CSCI 5573 or a course in computer networks. Same as ECEN 5673.

CSCI 5753-3. Computer Performance Modeling. Same as CSCI 4753.

CSCI 7123-3. Topics in Operating Systems. Topics selected by instructor. Possible topics are system design, measurement and evaluation, simulation, mathematical modeling, and parallelism. Prereq., CSCI 5573.

CSCI 7143-3. Topics in Computer Systems. Topics selected by instructor. Possible topics are online systems, multiprocessing, microprogramming, architecture, data communications, and computing networks. May be repeated up to 6 total credit hours. Instructor consent required.

Theory of Computation +

CSCI 2824-3. Discrete Structures. Covers foundational materials for computer science that is often assumed in advanced courses. Topics include set theory. Boolean algebra, functions and relations, graphs, propositional and predicate calculus, proofs, mathematical induction, recurrence relations, combinatorics, discrete probability. Focuses on examples based on diverse applications of computer science. Prereq., CSCI 2270.

CSCI 3104-4. Algorithms. Advanced data structures, computational geometry, cryptography, dynamic programming, greedy algorithms, divide-and-conquer, graph algorithms (e.g., depth-first search), network algorithms (e.g., shortest paths), approximation algorithms. Prereqs., CSCI 2824 and two semesters of calculus.

CSCI 3434-3. Theory of Computation. Introduces the foundations of formal language theory, computability, and complexity. Shows relationship between automata and various classes of languages. Addresses the issue of which problems can be solved by computational means, and studies complexity of solutions. Prereqs., CSCI 3104 and 3155.

CSCI 4314-3. Algorithms for Molecular Biology. Surveys combinatorial algorithms used to understand DNA, RNA, and proteins. Introduces students to methods used to process genomic data. Topics covered include a review of algorithms and molecular biology, sequence analysis, RNA and protein structure analysis, and comparative genomics. Students will get hands-on experience processing recent genomic data. Prereqs., CSCI 2270 and CSCI 3104, or CHEM 4711, or MCDB 3500 or IPHY 4200. Same as CSCI 5314 and MCDB 4314.

CSCI 5314-3. Algorithms for Molecular Biology. Same as CSCI 4314 and MCDB 5314.

CSCI 5444-3. Introduction to Theory of Computation. Reviews regular expressions and finite automata. Studies Turing machines and equivalent models of computation, the Chomsky hierarchy, context-free grammars, push-down automata, and computability. Prereq., graduate standing or instructor consent.

CSCI 5454-3. Design and Analysis of Algorithms. Techniques for algorithm design, analysis of correctness and efficiency; divide and conquer, dynamic programming, etc. Advanced data structures, algorithms in graph theory, geometry, VLSI, linear algebra, etc. Lower bounds, NP-completeness, intractability. Prereqs., CSCI 2270 or equivalent.

CSCI 5654-3. Linear Programming. Presents algorithms, simplex, and modifications. Examines theory—duality and complementary slackness. Involves network flow algorithms. Introduces integer programming. Prereq., linear algebra.

CSCI 5714-3. Formal Languages. Explores context-free languages: pumping lemma and variants, closure properties, and decision properties. Involves parsing algorithms, including general and special languages, e.g., LR. Additional topics chosen by instructor. Prereq., CSCI 5444 or instructor consent.

CSCI 6454-3. Advanced Algorithms. Topics include matching and network flows, matroids, computational geometry, parallel computation (PRAM, hypercube, mesh). Also includes VLSI, database theory, distributed computation, cryptography, robotics, scheduling, probabilistic algorithms, approximation algorithms, average case, and amortized analysis, time permitting. Prereq., CSCI 5454.

CSCI 7154-3. Topics in Theory of Computation. Selected topics of current interest in theory of computation. Prereq., instructor consent.

Programming Languages +

CSCI 3155-4. Principles of Programming Languages. Study fundamental concepts on which programming of languages are based, and execution models supporting them. Topics include values, variables, bindings, type systems, control structures, exceptions, concurrency, and modularity. Learn how to select a language and to adapt to a new language. Prereqs., CSCI 2270 and one of CSCI 2400 or ECEN 2120.

CSCI 4555-3. Compiler Construction. Introduces the basic techniques used in translating programming languages: scanning, parsing, definition table management, operator identification and coercion, code selection and register allocation, error recovery. Students build a complete compiler for a simple language. Prereqs., CSCI 2824 or ECEN 3703 and CSCI 2400 or ECEN 2120. Same as ECEN 4553 and CSCI 5525.

CSCI 5525-3. Compiler Construction. Offers practical experience using state-of-the-art CAD tools on high-performance workstations. Provides skills needed to rapidly create little languages for specific problem domains and familiarizes students with automated software development. Prereqs., CSCI 2824 or ECEN 3703 and CSCI 2400 or ECEN 2120. Same as ECEN 5523 and CSCI 4555.

CSCI 5535-3. Fundamental Concepts of Programming Languages. Considers concepts common to a variety of programming languages–how they are described (both formally and informally) and how they are implemented. Provides a firm basis for comprehending new languages and gives insight into the relationship between languages and machines. Prereq., CSCI 3155, or instructor consent.

CSCI 7135-3. Topics in Programming Languages. Topics selected by instructor. Possible topics are syntax, semantics, metacompilers, compiler design, and translator writing systems. Prereq., instructor consent.

Numerical Computation +

CSCI 3656-3. Numerical Computation. Covers development, computer implementation, and analysis of numerical methods for applied mathematical problems. Topics include floating point arithmetic, numerical solution of linear systems of equations, root finding, numerical interpolation, differentiation, and integration. Prereqs., two semesters of calculus, linear algebra, and either CSCI 1200 or 1300.

CSCI 4446-3. Chaotic Dynamics. Explores chaotic dynamics theoretically and through computer simulations. Covers the standard computational and analytical tools used in nonlinear dynamics and concludes with an overview of leading-edge chaos research. Topics include time and phase-space dynamics, surfaces of section, bifurcation diagrams, fractal dimension, and Lyapunov exponents. Prereqs., two semesters calculus, CSCI 1200 or equivalent, and PHYS 1110. Recommended prereqs., PHYS 1120, CSCI 3656, and MATH 3130. Same as CSCI 5446 and ECEN 4423.

CSCI 4576-4. High-Performance Scientific Computing 1. Introduces computing systems, software, and methods used to solve large-scale problems in science and engineering. Students use high-performance workstations and a supercomputer. First course in a two-semester sequence. Prereq., CSCI 3656 or equivalent. Same as CSCI 5576.

CSCI 5446-3. Chaotic Dynamics. Same as CSCI 4446 and ECEN 5423.

CSCI 5576-4. High-Performance Scientific Computing 1. Recommended prereq., CSCI 3656. Same as CSCI 4576.

CSCI 5606-3. Principles of Numerical Computation. Highlights computer arithmetic, solution of linear systems, least-squares approximations, nonlinear algebraic equations, interpolation, and quadrature. Prereqs., CSCI 3656 and three semesters of calculus, or equivalent.

CSCI 5636-3. Numerical Solution of Partial Differential Equations. Focuses on finite difference solution for partial differential equations, methods of SOR, ADI, conjugate gradients, finite element method, nonlinear problems, and applications. Prereqs., CSCI 5606.

CSCI 5646-3. Numerical Linear Algebra. Offers direct and iterative solutions of linear systems. Also covers eigen value and eigenvector calculations, error analysis, and reduction by orthogonal transformation. Prereqs., CSCI 5606.

CSCI 6676-3. Numerical Methods for Unconstrained Optimization. Looks at modern computational methods for solution of unconstrained optimization problems, nonlinear least squares, and systems of nonlinear equations. Techniques for building algorithms to solve problems with special structure. Prereq., CSCI 5606.

CSCI 6686-3. Numerical Methods for Constrained Optimization. Covers computational methods for constrained optimization. Topics include basic theory, methods for quadratic programming, active set strategies for linear constraints, and penalty and successive quadratic programming methods for nonlinearly constrained problems. Prereq., CSCI 5606.

CSCI 7176-3. Topics in Numerical Computation. Topics selected by instructor. Possible topics are numerical linear algebra, solution of differential equations, nonlinear algebra and optimization, data fitting, linear and nonlinear programming, and solution of large problems. Prereq., instructor consent.

Database Systems +

CSCI 3287-3. Database and Information Systems. Surveys data management, including file systems, database management systems design, physical data organizations, data models, query languages, concurrency, and database protection. Prereq., CSCI 3104.

CSCI 4317-3. Genome Databases: Mining and Management. Develops essential skills for performing genomic analyses, with focus on developing practical research tools. Introduces human genome and microbiome projects, Python/SQL scripting, accessing and understanding genomic data, sequence alignment and search, evolutionary models, expression data, biological networks, and macromolecular structure. Prereqs., MCDB 3500, CSCI 3104, or CHEM 4711; coreq., CSCI 2270. Same as CSCI 5317. Credit not granted for this course and CHEM 4621 or MCDB 4621.

CSCI 5317-3. Genome Databases: Mining and Management. Same as CSCI 4317. Credit not granted for this course and CHEM 5621 or MCDB 5621.

CSCI 5417-3. Information Retrieval Systems. Addresses practical issues in the design, implementation and analysis of modern information retrieval systems. The major focus is on Web-based applications including ad hoc retrieval, classification, and clustering. Introduces the use of open source retrieval systems, standard evaluation metrics and gold-standard evaluation collections. Recommended restriction, graduate standing in CSCI.

CSCI 5817-3. Database Systems. Provides an advanced treatment of basic database concepts. Prereq., CSCI 2270. Recommended prereq., CSCI 3287 and 3753.

CSCI 7717-3. Topics in Database Systems. Studies topics such as distributed databases, database interfaces, data models, database theory, and performance measurement in depth. Prereq., CSCI 5817 or instructor consent.

Software Engineering +

CSCI 3308-3. Software Engineering Methods and Tools. Focuses on software engineering methods and tools for application development, including design and system organization; using and creating reusable libraries; building, testing, and debugging; and performance evaluation. Two hours of lecture, three hours of lab per week. Prereq., CSCI 2270.

CSCI 4308-4. Software Engineering Project 1. Advanced practicum in which students design, implement, document and test software systems for use in industry, non-profits, government and research institutions. Offers practical experience by working closely with project sponsors. Offers extensive experience in oral and written communication throughout the software lifecycle. Students must take CSCI 4308-4318 contiguously, as the project spans the entire academic year. Prereqs., successful completion of a minimum of 36 credit hours of CSCI Foundation, Track Foundation, Track Core, and CSCI electives, and WRTG 3030. Restricted to seniors.

CSCI 4318-4. Software Engineering Project 2. Second semester of an advanced practicum in computer science. Students must take CSCI 4308 and 4318 contiguously as the project spans the entire academic year. Prereq., CSCI 4308.

CSCI 4448-3. Object-Oriented Analysis and Design. An applied analysis and design class addressing the use of object-oriented techniques. Topics include domain modeling, use cases, architectural design, and modeling notations. Students apply the techniques in analysis and design projects. Prereq., CSCI 3155 or expertise in one or more object-oriented programming languages, such as C++ or Java. Same as CSCI 5448.

CSCI 5448-3. Object-Oriented Analysis and Design. Same as CSCI 4448.

CSCI 5548-3. Software Engineering of Standalone Programs. Applies engineering principles to phases of software product development, project planning, requirements definition, design, implementation, validation, and maintenance. Emphasizes practical methods for communicating and verifying definitions and designs—prototyping, inspections, and modeling. Includes relation to RTS and object-oriented programming. Prereqs., CSCI 1300, CSCI 2270, or instructor consent. Same as ECEN 5543.

CSCI 5608-3. Software Project Management. Presents topics and techniques critical to the management of software product development, including estimating, planning, quality, tracking, reporting, team organization, people management, and legal issues. Gives special attention to problems unique to software projects. Prereqs., ECEN 4583, CSCI 5548 and 4318, or equivalent industrial experience. Same as ECEN 5603.

CSCI 5828-3. Foundations of Software Engineering. Explores techniques, languages, and tools for development and maintenance of software systems. Topics include specification languages, configuration modeling, testing techniques, process modeling, program annotations, and program proofs.

CSCI 6268-3. Foundations of Computer and Network Security. Studies methods to protect information, and the ability to process and move information, from theft, misuse, tampering, destruction, and unauthorized access. Introduces foundational topics of computer and network security, including security models, cryptopgraphy, and authentication protocols. Prereq., CSCI 5273. Same as TLEN 5550.

CSCI 7818-3. Topics in Software Engineering. Studies selected topics of current interest in software engineering. Prereq., instructor consent.

Graphics +

CSCI 4229-3. Computer Graphics. Studies design, analysis, and implementation of computer graphics techniques. Topics include interactive techniques, 2D and 3D viewing, clipping, segmentation, translation, rotation, and projection. Also involves removal of hidden edges, shading, and color. Prereqs., knowledge of basic linear algebra and CSCI 2270. Same as CSCI 5229.

CSCI 4809-3. Computer Animation. Develops a firm understanding of the general principles of computer animation. Lectures cover the creation of models, materials, textures, surfaces, and lighting. Path and keyframe animation, particle dynamics, and rendering are introduced. Students are assigned a number of animation tutorials to carry out. Same as CSCI 5809.

CSCI 4839-3. User Centered Design. Develops the skills and practices necessary to apply user-centered approaches to software requirements analysis, and the design and evaluation of computer applications. Prereq., CSCI 2270. Same as CSCI 5839.

CSCI 5229-3. Computer Graphics. Same as CSCI 4229.

CSCI 5809-3. Computer Animation. Same as CSCI 4809.

CSCI 5839-3. User Centered Design. Restricted to graduate students or instructor consent. Same as CSCI 4839.

CSCI 5919-3. Human Computer Interaction: Survey and Synthesis. Examines interdisciplinary field of human computer interaction through a comprehensive content and historical survey. Considers new trajectories of inquiry and how the field merges with others. “Social computing” is emphasized as a central topic. Students across disciplines will find the course foundational for understanding human-centered technology matters, including computer scientists; social scientists; and business and media arts students. Prereq., CSCI 4839 or 5839. Recommended prereq., graduate standing.

University of Colorado at Boulder CU-Home CU-Search CU-A to Z Campus Map