| CSCI 1000 | (1). Computer Science as a Field of Work and StudyIntroduces curriculum, learning techniques, time management and career opportunities in Computer Science. Includes presentations from alumni and others with relevant educational and professional experience. This course was formerly offered as CSCI 2830 Special Topics in Computer Science: Computer Science as a Field of Work and Study. |
| CSCI 1200 | (4). Introduction to ComputingPresents 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 ScienceIntroduces 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 WorldIntroduces 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: ProgrammingInstructs students in analyzing problems and synthesizing programs for the solution, emphasizing good engineering practices for program construction, documentation, testing, and debugging. Uses C++ for programming projects. |
| GEEN 1400 | (3). Engineering ProjectsProvides first-year engineering students with opportunity to apply mathematical and scientific skills in interdisciplinary engineering projects. Students work in teams to design and build engineering projects under guidance of engineering faculty. Prototype projects are exhibited at an end-of-semester design expo. |
| | GEEN 1400. Assistive Technologies |
| | GEEN 1400. Computing in Social Networking Sites |
| | GEEN 1400. Introduction to Programming Using Your Cell Phone |
| | GEEN 1400. LEGO Robots |
| | GEEN 1400. Leonardo da Vinci: The Engineer |
| | GEEN 1400. Mechanical Automata |
| | GEEN 1400. Software Exhibits |
| CSCI 2270 | (4). Computer Science 2: Data StructuresStudies 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. Prerequisites: CSCI 1300 and one of APPM 1350 or MATH 1300. |
| CSCI 2400 | (4). Computer SystemsCovers 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 program performance and memory hierarchy. Prerequisites: CSCI 2270. |
| CSCI 2824 | (3). Discrete StructuresCovers foundational material 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. Prerequisites: CSCI 2270. |
| CSCI 2830 | (1-3). Special Topics in Computer ScienceCovers topics of interest in computer science at the sophomore level. Content varies from semester to semester. Prerequisites: Consent of instructor. |
| | CSCI 2830. Artificial Life |
| | CSCI 2830. Computer Science as a Field of Work and Study |
| | CSCI 2830. Educational Technology House |
| | CSCI 2830. Human-Computer Interaction |
| | CSCI 2830. Ideas in Computing |
| | CSCI 2830. Java I Training |
| | CSCI 2830. Java II Training |
| | CSCI 2830. Java Programming |
| | CSCI 2830. Java Projects |
| | CSCI 2830. Linear Algebra with Computer Science Applications |
| | CSCI 2830. Mentoring/Debugging |
| | CSCI 2830. Solaris System Administration |
| | CSCI 2830. Technology for Community |
| | CSCI 2830. The Internet for Everyone |
| CSCI 2900 | (1-3). Lower-Division, Undergraduate Level Independent StudyOffers selected topics at the elementary level for students with little or no previous computing experience. |
| CSCI 3002 | (3). Digital and Social Systems FoundationsIntroduces 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 3104 | (4). AlgorithmsStudies 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. Prerequisites: CSCI 2270 and two semesters of calculus. |
| CSCI 3112 | (1-3). Digital and Social Systems Professional DevelopmentSupports 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 3155 | (4). Principles of Programming LanguagesStudies fundamental concepts on which programming 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. Prerequisites: CSCI 2270 and one of CSCI 2400 or ECEN 2120. |
| CSCI 3202 | (3). Introduction to Artificial IntelligenceSurveys artificial intelligence techniques of knowledge representation, search, learning, and natural language processing. Introduces artificial intelligence programming in Lisp. Prerequisites: CSCI 2270. |
| CSCI 3287 | (3). Database and Information SystemsSurveys data management, including file systems, database management systems design, physical data organizations, data models, query languages, concurrency, and database protection. Prerequisites: CSCI 3104. |
| CSCI 3308 | (3). Software Engineering Methods and ToolsFocuses 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. Prerequisites: CSCI 2270. |
| CSCI 3434 | (3). Theory of ComputationIntroduces 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. Prerequisites: CSCI 3104 and CSCI 3155. |
| CSCI 3656 | (3). Numerical ComputationCovers 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. Prerequisites: Two semesters of calculus, linear algebra, and one of CSCI 1200 or CSCI 1300. |
| CSCI 3702 | (3). Cognitive ScienceIntroduces 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. Same as LING 3005, PHIL 3310, and PSYC 3005. Prerequisites: Two of the following four courses: CSCI 1300, LING 2000, PHIL 2440, PSYC 2145. |
| CSCI 3753 | (4). Operating SystemsExamines 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. Prerequisites: CSCI 2270 and one of CSCI 2400 or ECEN 2120. |
| CSCI 4000 | (3). Entrepreneurship in ComputingExamines 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. Prerequisites: CSCI 2270 and junior standing. |
| CSCI 4113 | (3). UNIX System AdministrationIntroduces 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. Prerequisites: CSCI 2270 or consent of instructor. Recommended: CSCI 3308. |
| CSCI 4123 | (3). Network LaboratoryDevelops 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. Same as TLEN 5460. Prerequisites: CSCI 4273. |
| CSCI 4133 | (3). Security LaboratoryAllows 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. Same as TLEN 5540. Prerequisites: CSCI 4273. |
| CSCI 4143 | (2). Telecommunications SeminarProvides a series of weekly lectures with questions and discussion. Many of the speakers are nationally known experts in telecommunications. Attendance is required. Same as TLEN 5600. |
| CSCI 4202 | (3). Artificial Intelligence 2Second course in artificial intelligence. Topics may vary, but typically cover neural networks, natural language processing, and artificial life. Prerequisites: CSCI 3202 or consent of instructor. |
| | CSCI 4202. Bayesian Models in Cognitive Science |
| | CSCI 4202. Data Mining |
| | CSCI 4202. Machine Learning |
| CSCI 4229 | (3). Computer GraphicsStudies 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. Prerequisites: Knowledge of basic linear algebra and CSCI 2270. |
| CSCI 4273 | (3). Network SystemsFocuses 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. Prerequisites: CSCI 3753 and familiarity with C and UNIX. |
| CSCI 4308 | (4). Software Engineering Project 1Advanced 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. Also offers extensive experience in oral and written communication throughout the software lifecycle. Students must take CSCI 4308-CSCI 4318 contiguously, as the project spans the entire academic year. Prerequisites: Successful completion of a minimum of 36 credit hours of Computer Science Foundation, Track Foundation, Track Core and Computer Science Electives and completion of WRTG 3030. Open only to seniors. See Senior Project Prerequisites. See Senior Project for more information. |
| CSCI 4312 | (3). Medical InformaticsTeaches 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. Prerequisites: CSCI 2270. Recommended: CSCI 3002. |
| CSCI 4314 | (3). Algorithms for Molecular BiologySurveys 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. Prerequisites: CSCI 2270 and one of CSCI 3104, CHEM 4711, IPHY 4200 or MCDB 3500. |
| CSCI 4317 | (3). Genome Databases: Mining and ManagementDevelops 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. Same as CHEM 4621 and MCDB 4621. Prerequisites: CSCI 3104, CHEM 4711 or MCDB 3500. |
| CSCI 4318 | (4). Software Engineering Project 2Second semester of an advanced practicum in computer science. Students must take CSCI 4308 and CSCI 4318 contiguously as the project spans the entire academic year. Prerequisites: CSCI 4308. See Senior Project for more information. |
| CSCI 4322 | (3). Things That ThinkIntroduces techniques of designing, constructing, and documenting computationally-enhanced physical artifacts. Students will work in teams and use state-of-the-art fabrication tools, microprocessors, and software systems to build working prototypes of objects that can be controlled and customized through embedded computation. This course was formerly offered as CSCI 4830 Special Topics in Computer Science: Things That Think. |
| CSCI 4332 | (3). Game ProgrammingThis is a proposed new course. Prerequisites: CSCI 2270. This course was formerly offered as CSCI 4830 Special Topics in Computer Science: Game Programming. |
| CSCI 4342 | (3). Groupware and Workflow SystemsSupports 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. |
| CSCI 4412 | (3). Design, Creativity and New MediaExplores 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. Prerequisites: Consent of instructor. |
| CSCI 4446 | (3). Chaotic DynamicsExplores 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. Prerequisites: Two semesters of calculus, CSCI 1200 or equivalent, and PHYS 1110. Recommended: PHYS 1120, CSCI 3656 and MATH 3130. |
| CSCI 4448 | (3). Object-Oriented Analysis and DesignAn 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. Prerequisites: CSCI 3155 or expertise in one or more object-oriented programming languages, such as C++ or Java. |
| CSCI 4473 | (3). Network SecurityExplores cryptographic methods applied to computer networks. Investigates existing security protocols and their underlying principles. Prerequisites: CSCI 3104. Recommended: CSCI 4273. |
| CSCI 4555 | (3). Introduction to Compiler ConstructionIntroduces 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. Same as ECEN 4553. Prerequisites: ECEN 2120. |
| CSCI 4576 | (4). High-Performance Scientific Computing 1Introduces 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. Prerequisites: CSCI 3656 or equivalent. |
| CSCI 4586 | (4). High-Performance Scientific Computing 2Introduces computing systems, software, and methods to solve large-scale problems in science and engineering. Students use high-performance workstations and a supercomputer. Second course in a two-semester sequence. Prerequisites: CSCI 4576. |
| CSCI 4593 | (3). Computer OrganizationStudies 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. Same as ECEN 4593. Prerequisites: ECEN 2120 and ECEN 3100. |
| CSCI 4753 | (3). Computer Performance ModelingPresents 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. Same as ECEN 4753. Prerequisites: CSCI 3753 or equivalent, and second-semester calculus. Recommended: a course in statistics. |
| CSCI 4809 | (3). Computer AnimationDevelops a firm understanding of the general principles of computer animation and provides rigorous, hands-on training in the application of animation principles. Includes the creation of models, materials, textures, surfaces, and lighting. Introduces path and keyframe animation, particle dynamics, and rendering. This course was formerly offered as CSCI 4830 Special Topics in Computer Science: Animation for Everyone. |
| CSCI 4810 | (1). Seminar in Computational Biology and Health InformaticsProvides 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. Prerequisites: CSCI 4312, CSCI 4314 or CSCI 4317. |
| CSCI 4830 | (3). Special Topics in Computer ScienceCovers topics of interest in computer science at the senior undergraduate level. Content varies from semester to semester. Prerequisites: Consent of instructor. |
| | CSCI 4830. Algorithms |
| | CSCI 4830. Algorithms for Molecular Biology |
| | CSCI 4830. Animation for Everyone |
| | CSCI 4830. API Programming |
| | CSCI 4830. Artificial Life |
| | CSCI 4830. Chaotic Dynamics |
| | CSCI 4830. Code Generation and Optimization |
| | CSCI 4830. Cognitive Modeling |
| | CSCI 4830. Collaborative Design and Learning |
| | CSCI 4830. Component-Based Software Systems |
| | CSCI 4830. Computational Biomechanics |
| | CSCI 4830. Computational Geometries |
| | CSCI 4830. Computational Mathematics |
| | CSCI 4830. Computer Architecture and Compiler Technology Research |
| | CSCI 4830. Design, Creativity, and New Media |
| | CSCI 4830. Design, Learning and Collaboration |
| | CSCI 4830. Designing the Information Society of the Next Millennium |
| | CSCI 4830. Entrepreneurship in Computing |
| | CSCI 4830. Fundamentals of Cognitive Science |
| | CSCI 4830. Game Programming |
| | CSCI 4830. High Functionality Applications |
| | CSCI 4830. Infrastructure Engineering |
| | CSCI 4830. Internet Dreams |
| | CSCI 4830. Introduction to Sensor Networks |
| | CSCI 4830. Machine Learning |
| | CSCI 4830. Machine Vision |
| | CSCI 4830. Music Cognition |
| | CSCI 4830. Natural Language Processing |
| | CSCI 4830. Network Security |
| | CSCI 4830. Network Systems |
| | CSCI 4830. Neural Networks |
| | CSCI 4830. Non-Symbolic Artificial Intelligence |
| | CSCI 4830. Object-Oriented Design |
| | CSCI 4830. Open Source Development of Cognitive Technology on a Mobile Platform |
| | CSCI 4830. Operating Systems for Small Computers |
| | CSCI 4830. Programming Languages |
| | CSCI 4830. Speech Recognition and Synthesis |
| | CSCI 4830. Symbolic Artificial Intelligence |
| | CSCI 4830. System Administration Workshop |
| | CSCI 4830. Systems for Learning |
| | CSCI 4830. Technology for Community |
| | CSCI 4830. The Canon |
| | CSCI 4830. The Internet for Everyone |
| | CSCI 4830. The Scientific Investigation of Consciousness |
| | CSCI 4830. Theory |
| | CSCI 4830. Things That Think |
| | CSCI 4830. UNIX Tools |
| | CSCI 4830. User Interface Design |
| CSCI 4838 | (3). User Interface DesignDevelops the skills and practices necessary to apply user-centered approaches to software requirements analysis and the design and evaluation of computer applications. Prerequisites: CSCI 2270. This course was formerly offered as CSCI 4830 Special Topics in Computer Science: User Interface Design. |
| CSCI 4900 | (1-6). Upper-Division, Undergraduate Level Independent StudyProvides opportunities for independent study at the upper-division undergraduate level. Students work on a small research problem or tutor lower-division computer science students. Prerequisites: CSCI 1200 or CSCI 1300. |
| CSCI 4950 | (2-4). Senior ThesisProvides an opportunity for senior computer science majors to conduct exploratory research in computer science. Prerequisites: Successful completion of a minimum of 36 credit hours of Computer Science Foundation, Track Foundation, Track Core and Computer Science Electives and completion of WRTG 3030. Open only to seniors. May be repeated up to 8 total credit hours. See Senior Thesis for more information. |
| CSCI 5229 | (3). Computer GraphicsStudies 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. Prerequisites: Knowledge of basic linear algebra and CSCI 2270 or equivalent. |
| CSCI 5273 | (3). Network SystemsAn applied programming course focusing 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. Prerequisites: CSCI 3753 or equivalent and familiarity with C and UNIX. |
| CSCI 5312 | (3). Medical InformaticsTeaches students essential skills necessary for developing usable assistive and performance support systems, which includes 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. Prerequisites: CSCI 2270. Recommended: CSCI 3002. |
| CSCI 5314 | (3). Algorithms for Molecular BiologySurveys 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. Prerequisites: CSCI 2270 and one of CSCI 3104, CHEM 4711, IPHY 4200 or MCDB 3500. |
| CSCI 5317 | (3). Genome Databases: Mining and ManagementDevelops 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. Same as CHEM 5621 and MCDB 5621. Prerequisites: CSCI 3104, CHEM 4711 or MCDB 3500. |
| CSCI 5322 | (3). Things That ThinkIntroduces techniques of designing, constructing, and documenting computationally-enhanced physical artifacts. Students will work in teams and use state-of-the-art fabrication tools, microprocessors, and software systems to build working prototypes of objects that can be controlled and customized through embedded computation. This course was formerly offered as CSCI 7000 Current Topics in Computer Science: Things That Think. |
| CSCI 5332 | (3). Game ProgrammingThis is a proposed new course. Prerequisites: CSCI 2270. This course was formerly offered as CSCI 7000 Current Topics in Computer Science: Game Programming. |
| CSCI 5342 | (3). Groupware and Workflow SystemsSupports 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. This course was formerly offered as CSCI 7000 Current Topics in Computer Science: Groupware and Workflow. |
| CSCI 5412 | (3). Design, Creativity and New MediaExplores 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. Prerequisites: Consent of instructor. |
| CSCI 5444 | (3). Introduction to Theory of ComputationReviews regular expressions and finite automata. Studies Turing machines and equivalent models of computation, the Chomsky hierarchy, context-free grammars, push-down automata, and computability. Prerequisites: Graduate standing or instructor consent. |
| CSCI 5454 | (3). Design and Analysis of AlgorithmsTechniques 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. Prerequisites: CSCI 2270 or equivalent. |
| CSCI 5473 | (3). Applied Operating SystemsExamines 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. Prerequisites: Two years programming and instructor consent. |
| CSCI 5525 | (3). Compiler Construction ToolsOffers 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. Same as ECEN 5523. |
| CSCI 5535 | (3). Fundamental Concepts of Programming LanguagesConsiders 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. Same as ECEN 5533. Prerequisites: CSCI 3155 or consent of instructor. |
| CSCI 5548 | (3). Software Engineering of Standalone ProgramsApplies 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. Same as ECEN 5543. Prerequisites: CSCI 1300, CSCI 2270 or consent of instructor. This course was previously titled Software System Engineering. |
| CSCI 5551 | (3). Parallel ProcessingExamines 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. Same as ECEN 5553. Prerequisites: Background in computer organization, introduction to programming languages, elementary numerical analysis, ECEN 4593 and CSCI 3656, or instructor consent. |
| CSCI 5573 | (3). Advanced Operating SystemsIntended 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. Same as ECEN 5573. Prerequisites: CSCI 3753, CSCI 4593, equivalent undergraduate coursework in operating systems and computer architecture, or consent of instructor. |
| CSCI 5576 | (4). High-Performance Scientific ComputingIntroduces computing systems, software, and methods used to solve large-scale problems in science and engineering. Students use high-performance workstations and a supercomputer. Prerequisites: Recommended: CSCI 3656. |
| CSCI 5582 | (3). Artificial IntelligenceSurveys artificial intelligence methods, theories, and applications. Studies the relationship between artificial intelligence and psychology, linguistics, and philosophy. Introduces artificial intelligence programming. Same as ECEN 5583. Prerequisites: CSCI 3155 or equivalent. |
| CSCI 5593 | (3). Advanced Computer ArchitectureProvides 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. Same as ECEN 5593. Prerequisites: CSCI 4593 or consent of instructor. |
| CSCI 5606 | (3). Principles of Numerical ComputationHighlights computer arithmetic, solution of linear systems, least-squares approximations, nonlinear algebraic equations, interpolation, and quadrature. Prerequisites: CSCI 3656 and three semesters of calculus or equivalent. |
| CSCI 5608 | (3). Software Project ManagementPresents 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. Same as ECEN 5603. Prerequisites: ECEN 4583, CSCI 5548, and CSCI 4318, or equivalent industrial experience. |
| CSCI 5622 | (3). Machine LearningTrains 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. Prerequisites: Graduate standing or consent of instructor. |
| CSCI 5636 | (3). Numerical Solution of Partial Differential EquationsFocuses on finite difference solution for partial differential equations, methods of SOR, ADI, conjugate gradients, finite element method, nonlinear problems, and applications. Prerequisites: CSCI 5606. |
| CSCI 5646 | (3). Numerical Linear AlgebraOffers direct and iterative solutions of linear systems. Also covers eigen value and eigenvector calculations, error analysis, and reduction by orthogonal transformation. Prerequisites: CSCI 5606. |
| CSCI 5654 | (3). Linear ProgrammingPresents algorithms, simplex, and modifications. Examines theory -- duality and complementary slackness. Involves network flow algorithms. Introduces integer programming Prerequisites: Linear algebra. |
| CSCI 5673 | (3). Distributed SystemsExamines 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. Same as ECEN 5673. Prerequisites: CSCI 5573 or a course in computer networks. |
| CSCI 5714 | (3). Formal LanguagesExplores 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. Prerequisites: CSCI 5444 or consent of instructor. |
| CSCI 5722 | (3). Computer VisionExplores 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. Prerequisites: Recommended: probability, multivariate calculus, and linear algebra. |
| CSCI 5753 | (3). Computer Performance ModelingPresents 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. Same as ECEN 5753. Prerequisites: CSCI 3753 or equivalent, and second-semester calculus. Recommended: a course in statistics. |
| CSCI 5782 | (1). Survey of Cognitive ScienceClass led by a different faculty member of the Institute of Cognitive Science each week. Introduces graduate students to research in cognitive science currently underway within the institute. Prerequisites: Graduate standing or consent of instructor. |
| CSCI 5809 | (3). Computer AnimationDevelops a firm understanding of the general principles of computer animation and provides rigorous, hands-on training in the application of animation principles. Includes the creation of models, materials, textures, surfaces, and lighting. Introduces path and keyframe animation, particle dynamics, and rendering. This course was formerly offered as CSCI 7000 Current Topics in Computer Science: Animation for Everyone. |
| CSCI 5817 | (3). Database Systems |
| CSCI 5828 | (3). Foundations of Software EngineeringExplores 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 5832 | (3). Natural Language ProcessingExplores 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. Same as LING 5832. Prerequisites: Graduate standing or consent of instructor. |
| CSCI 5900 | (1-6). Master's Level Independent StudyProvides opportunities for independent study at the master's level. |
| CSCI 5917 | (3). Database PracticumAddresses practical issues in implementation, modeling, and measurement of database systems. Centers around a significant software project. Prerequisites: CSCI 5817 and significant software experience, or consent of instructor. |
| CSCI 6000 | (1). Introduction to the Computer Science PhD ProgramInstructs new PhD students in Computer Science in 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. Prerequisites: Open only to new PhD students. |
| CSCI 6268 | (3). Foundations of Computer and Network SecurityStudies 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, cryptography, and authentication protocols. Prerequisites: CSCI 5273. |
| CSCI 6302 | (3). Speech Recognition and SynthesisIntroduction 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. Prerequisites: CSCI 5582, CSCI 5832, or LING 5200, and graduate standing or instructor consent. |
| CSCI 6402 | (3). Issues and Methods in Cognitive ScienceInterdisciplinary 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. Same as EDUC 6504, LING 6200, PHIL 6310, and PSYC 6200. Prerequisites: 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. |
| CSCI 6446 | (3). Chaotic DynamicsExplores 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. Prerequisites: Two semesters of calculus, CSCI 1200 or equivalent, and PHYS 1110. Recommended: PHYS 1120, CSCI 3656 and MATH 3130. |
| CSCI 6448 | (3). Object-Oriented Analysis and DesignApplied 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. Prerequisites: Expertise in one or more object-oriented programming languages, such as C++ or Java. |
| CSCI 6454 | (3). Advanced AlgorithmsTopics 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. Prerequisites: CSCI 5454. |
| CSCI 6622 | (3). Advanced Machine LearningCovers 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. Prerequisites: CSCI 5622 or consent of instructor. |
| CSCI 6676 | (3). Numerical Methods for Unconstrained OptimizationLooks 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. Prerequisites: CSCI 5606. |
| CSCI 6686 | (3). Numerical Methods for Constrained OptimizationCovers 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. Prerequisites: CSCI 5606. |
| CSCI 6800 | (3). Master of Engineering ProjectStudents seeking the master of engineering degree must complete a creative investigation project, including a written report, supervised by a member of the graduate faculty. Prerequisites: Completion of 21 hours towards the ME degree. |
| CSCI 6817 | (3). Readings in Database SystemsComplements CSCI 5817. Introduces graduate students to classic research results and current trends in the database systems area. Prerequisites: CSCI 5817. |
| CSCI 6838 | (3). User Interface DesignCovers techniques for creating and evaluating effective user interfaces for computing systems. Introduces relevant findings and theory from psychology and human factors, as well as implementation methods. Prerequisites: Graduate standing or consent of instructor. |
| CSCI 6940 | (3). Master's Degree CandidacyFor 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 ScienceCovers 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. Prerequisites: Consent of instructor. |
| | CSCI 7000. Advanced Computational Linguistics |
| | CSCI 7000. Advanced Performance Modeling |
| | CSCI 7000. Animation for Everyone |
| | CSCI 7000. ATLAS Interdisciplinary PhD Seminar |
| | CSCI 7000. Bioinformatics |
| | CSCI 7000. Chaotic Dynamics |
| | CSCI 7000. Code Generation and Optimization |
| | CSCI 7000. Computation for Cognitive Science |
| | CSCI 7000. Computational Biomechanics |
| | CSCI 7000. Computational Genomics |
| | CSCI 7000. Computational Geometries |
| | CSCI 7000. Computer Architecture and Compiler Technology Research |
| | CSCI 7000. Computer Mediated Interaction |
| | CSCI 7000. Computer Privacy |
| | CSCI 7000. Computer Science/Cognitive Science |
| | CSCI 7000. Cryptanalysis |
| | CSCI 7000. Cryptography |
| | CSCI 7000. Design, Creativity, and New Media |
| | CSCI 7000. Design, Learning and Collaboration |
| | CSCI 7000. Designing the Future Internet |
| | CSCI 7000. Designing the Information Society of the Next Millennium |
| | CSCI 7000. Digital and Social Systems Foundations |
| | CSCI 7000. Distributed, Mobile and Pervasive Runtime Systems |
| | CSCI 7000. Educational Computing |
| | CSCI 7000. Elements of Statistical Inference |
| | CSCI 7000. Foundations of Computer and Network Security |
| | CSCI 7000. Game Programming |
| | CSCI 7000. Graphics |
| | CSCI 7000. Groupware and Workflow |
| | CSCI 7000. High-Performance Scientific Computing 1 |
| | CSCI 7000. High-Performance Scientific Computing 2 |
| | CSCI 7000. Human Computer Interaction -- Survey and Synthesis |
| | CSCI 7000. Information Storage Software |
| | CSCI 7000. Internet Dreams |
| | CSCI 7000. Issues and Methodologies in Cognitive Science |
| | CSCI 7000. Machine Vision |
| | CSCI 7000. Mathematical Foundations of Programming Languages |
| | CSCI 7000. Medical Informatics |
| | CSCI 7000. Modern Information Retrieval |
| | CSCI 7000. Multimedia Networking |
| | CSCI 7000. Network Systems |
| | CSCI 7000. Object-Oriented Analysis and Design |
| | CSCI 7000. Open Source Development of Cognitive Technology on a Mobile Platform |
| | CSCI 7000. Practical Theorem Proving with Isabelle/Isar |
| | CSCI 7000. Quantum and Molecular Computing |
| | CSCI 7000. Reconfigurable Computing |
| | CSCI 7000. Software Architecture |
| | CSCI 7000. Software Defined Radios |
| | CSCI 7000. Software Systems Management |
| | CSCI 7000. Speech Recognition and Synthesis |
| | CSCI 7000. Spoken Dialogue Systems |
| | CSCI 7000. Systems and Algorithms for Massive Data Applications |
| | CSCI 7000. Teaching Computer Science |
| | CSCI 7000. Technical Writing |
| | CSCI 7000. The Canon |
| | CSCI 7000. Things That Think |
| | CSCI 7000. UNIX System Administration |
| | CSCI 7000. Visual Programming |
| | CSCI 7000. Wireless Networking |
| | CSCI 7000. Workflow Management Systems |
| CSCI 7111 | (3). Topics in Parallel ProcessingContent varies, but subjects include parallel machine architecture, parallel algorithms, languages for parallel computation, and applications. Takes subject matter from current research. Prerequisites: Consent of instructor. |
| | CSCI 7111. Fast Numerical Solvers |
| | CSCI 7111. Hardware/Software Codesign |
| CSCI 7123 | (3). Topics in Operating SystemsTopics selected by instructor. Possible topics are system design, measurement and evaluation, simulation, mathematical modeling, and parallelism. Prerequisites: CSCI 5573. |
| | CSCI 7123. Dependable Computing Systems |
| | CSCI 7123. Kernel Internals Practicum |
| | CSCI 7123. Linux Kernel Internals Practicum |
| CSCI 7135 | (3). Topics in Programming LanguagesTopics selected by instructor. Possible topics are syntax, semantics, metacompilers, compiler design, and translator writing systems. Prerequisites: Consent of instructor. |
| | CSCI 7135. Behavior Prediction in Complex Computer Systems |
| | CSCI 7135. Internet Systems |
| | CSCI 7135. Program Analysis |
| | CSCI 7135. Types and Programming Languages |
| CSCI 7143 | (3). Topics in Computer SystemsTopics 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. Prerequisites: Consent of instructor. |
| | CSCI 7143. Advanced Computer Networks |
| | CSCI 7143. High Performance Circuits for Microprocessor Design |
| | CSCI 7143. Mobile Computing |
| | CSCI 7143. Programming Non-Traditional Multiprocessors |
| | CSCI 7143. Security in Wireless Sensor Networks |
| | CSCI 7143. Verilog |
| | CSCI 7143. Wireless Sensor Networks |
| CSCI 7154 | (3). Topics in Theory of ComputationSelected topics of current interest in theory of computation. Prerequisites: Consent of instructor. |
| | CSCI 7154. Data Structures |
| | CSCI 7154. Genetics |
| | CSCI 7154. Software Engineering Theory |
| CSCI 7176 | (3). Topics in Numerical ComputationTopics 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. Prerequisites: Consent of instructor. |
| | CSCI 7176. High Performance Computing |
| | CSCI 7176. Nonlinear Iterative Methods for Partial Differential Equations |
| | CSCI 7176. Parallel Sparse Matrix Techniques |
| | CSCI 7176. Recent Development in Numerical Methods for Partial Differential Equations |
| CSCI 7212 | (3). Topics in Symbolic Artificial IntelligenceTopics 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. Prerequisites: CSCI 5582 or consent of instructor. |
| | CSCI 7212. Collaborative Design and Learning |
| | CSCI 7212. Design |
| | CSCI 7212. Design, Learning and Collaboration |
| | CSCI 7212. Natural Language Processing |
| | CSCI 7212. Spoken Dialogue Systems |
| CSCI 7222 | (3). Topics in Nonsymbolic Artificial IntelligenceTopics 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. Prerequisites: CSCI 5622 or consent of instructor. |
| | CSCI 7222. Advanced Connectionist Modeling |
| | CSCI 7222. Bayesian Models in Cognitive Science |
| | CSCI 7222. Mathematical Methods |
| | |