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. Requisites: Requires prerequisite course of CSCI 1300 or CSCI 1310 or CSCI 1320 (all minimum grade C-).
Provides an opportunity for senior computer science majors to conduct exploratory research in computer science. Department enforced restriction, successful completion of a minimum of 36 credit hours of Computer Science coursework and WRTG 3030. May be repeated up to 8 total credit hours. Requisites: Requires a prerequisite or corequisite course of CSCI 3100 (minimum grade C-). Restricted to students with 87-180 credits (Senior, Fifth Year Senior).
Provides an opportunity for senior Computer Science majors to complete an honors thesis by conducting exploratory research in computer science. Department enforced requisites: successful completion of a minimum of 36 credit hours of Computer Science Foundation, Track Foundation, Track Core and Computer Science electives and a writing requirement. May be repeated up to 8 total credit hours. Requisites: Restricted to students with 87-180 credits (Senior, Fifth Year Senior).
Covers two-level and multilevel minimization, optimization via expert systems, algebraic and Boolean decomposition, layout methodologies, state assignment, encoding and minimization, silicon compilation. Recommended prereqs., ECEN 2703 and general proficiency in discrete mathematics and programming. Same as ECEN 5139. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
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. Knowledge of basic linear algebra is required. Same as CSCI 4229. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Studies design, analysis and implementation of advanced computer graphics techniques. Topics include shaders, using the GPU for high performance computing, graphics programming on embedded devices such as mobile phones; advanced graphics techniques such as ray tracing. Same as CSCI 4239. Requisites: Requires prerequisite course of CSCI 5229 (minimum grade B). Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Explores the "great works" of computer science through intensive reading and discussion. Readings include works by Babbage, Turing, Von Neumann, Goedel, Shannon and Minsky, among others. CSCI 5250 does not count toward breadth requirement for Computer Science MS/ME degree. Same as CSCI 4250. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Covers the primary problem solving strategies, methods and tools needed for data-intensive programs using large collections of computers typically called "warehouse scale" or "data-center scale" computers. The course examines methods and algorithms for processing data-intensive applications, methods for deploying and managing large collections of computers in an on-demand infrastructure and issues of large-scale computer system design. Recommended prerequisite: CSCI 4273/5273. Same as CSCI 4253. Requisites: Restricted to graduate student Computer Sciences (CSEN) students only.
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. Familiarity with C and Unix is required. Same as CSCI 4273 and ECEN 5273. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Exposes students to current research topics in the field of robotics and provides hands-on experience in solving a grand challenge program. Recommended prereq., CSCI 3302 or instructor consent required. Same as CSCI 4302. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Surveys molecular biology and combinatorial algorithms used to understand DNA, RNA, and proteins. Students work in groups to define and tackle meaningful biological problems and learn to collaborate effectively with scientists in other disciplines. Same as CSCI 4314 and MCDB 5314. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Provides students with the tools to be successful technical co-founders of their own startups. We will explore the initial stages of founding a startup, including team formation, idea validation, pivoting and pitching, while employing an iterative methodology. Student teams will develop a minimum viable product, pitch their final startup concept, and be evaluated on product/market fit. CS coding concepts relevant for startups, including potentially cloud programming, mobile programming and agile software engineering, will be taught. Does not satisfy breadth requirement. Similiar to CSCI 4348. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Examines modern techniques for analyzing and modeling the structure and dynamics of complex networks. Focuses on statistical algorithms and methods, and emphasizes model interpretability and understanding the processes that generate real data. Applications are drawn from computational biology and computational social science. No biological or social science training is required. Recommended prereqs., CSCI 3104 and APPM 3570. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Teaches basic exploit design and development through hands-on experimentation and testing. Uses a controlled environment to give students a "playground" in which to test penetration skills that are normally not allowed on live networks. Same as CSCI 4413. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
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. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
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. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
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. Same as CSCI 4446 and ECEN 5423. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
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. Same as CSCI 4448. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Techniques for algorithm design, analysis of correctness and efficiency; divide and conquer, dynamic programming, probabilistic methods, advanced data structures, graph algorithms, etc. Lower bounds, NP-completeness, intractability. Recommended prereq., CSCI 2270 or equivalent. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Introduces basic data mining concepts and techniques for discovering interesting patterns hidden in large-scale data sets, focusing on issues relating to effectiveness and efficiency. Topics covered include data preprocessing, data warehouse, association, classification, clustering, and mining specific data types such as time-series, social networks, multimedia, and Web data. Same as CSCI 4502. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
Introduces the principles and techniques for compiling high-level programming languages to assembly code. Topics include parsing, instruction selection, register allocation, and compiling high-level features such as polymorphism, first-class functions, and objects. Students will build a complete compiler for a simple language. Recommended prereq., CSCI 3155 and CSCI 2400, or ECEN 2120 or ECEN 3350. Same as ECEN 5523, CSCI 4555, and ECEN 4553. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
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. Recommended prereq., CSCI 3155 or instructor consent required. Same as ECEN 5533. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
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. Recommended prereqs., CSCI 1300, CSCI 2270, or instructor consent required. Same as ECEN 5543. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.
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. Department enforced prereq., background in computer organization, introduction to programming languages, elementary numerical analysis, or instructor consent. Same as ECEN 5553. Requisites: Restricted to Computer Science (CSEN) graduate students or Computer Science Concurrent Degree majors only.