Graduate Courses
CSCI 200. Introduction to Research in Computer Science (1)
Prerequisite: classified standing in computer science. Orientation to the graduate program, introduction to research methodology, and discussion of possible project and thesis topics.
CSCI 213. Computer Organization (3)
Prerequisites: CSCI 112 and 113 or permission of instructor. Organization of memory, I/O, and processors. Computer busses. Microprogramming and instruction execution. Interrupts. Data communications.
CSCI 217. Programming Language Principles (3)
Prerequisite: CSCI 117 or permission of instructor. Advanced topics in programming languages: concurrency, exceptions, types, procedures, execution models. Introduction to the formal specification of programming languages: syntax specification, semantic specification.
CSCI 226. Advanced Database Systems (3)
Prerequisites: CSCI 126 and 144. Implementation of database systems on modern hardware systems. Operating system design issues, including buffering, page size, prefetching, etc. Query processing algorithms; design of crash recovery and concurrency control systems. Implementation of distributed databases and database machines.
CSCI 230. Advanced Web Application Development (3)
Prerequisite: CSCI 130 or permission of instructor. Application development for the World Wide Web. Three-tier architecture; authentication, capability, and session management; versioning and open-source development. Case studies and project work. (Formerly CSCI 291T)
CSCI 244. Operating Systems (3)
Prerequisite: CSCI 144. Operating system functions. Performance monitoring and fine-tuning. Network operating system design. Concurrency, analysis of deadlock. Selected topics from current research.
CSCI 250. Advanced Software Engineering (3)
Prerequisite: CSCI 150 or permission of instructor. Theoretical and practical aspects of software engineering emphasizing requirements analysis, specification, design, coding, testing, correctness, maintenance, and management. Examination of reliability, performance, and software metrics.
CSCI 252. Software Development Environments (3)
Prerequisite: CSCI 150. Overview of modern software engineering environments including structured editors, programmer's assistants, and tools for software cost estimation, testing, scheduling, specification, and verification. Relationship between artificial intelligence and software engineering.
CSCI 272. Computer Graphics (3)
Prerequisite: CSCI 172 or permission of instructor. 3-D transformations, visible surface algorithms, shading, textures, curves and surfaces, computer-aided design, advanced modeling techniques, solid modeling, advanced raster graphics architecture, advanced geometric and raster algorithms, user interface, ray tracing, animation techniques, and fractals.
CSCI 274. Combinatorial Algorithms (3)
Prerequisite: CSCI 174. Design and analysis of efficient algorithms for combinatorial problems. Network flow theory, matching theory, augmenting-path algorithms, branch-and-bound algorithms, data structure techniques for efficient implementation of combinatorial algorithms, analysis of data structures, application of data structural techniques to sorting, searching, and geometric problems.
CSCI 282. Theory of Computation (3)
Prerequisite: CSCI 188 or permission of instructor. General models of computation, recursive functions, undecidable problems, propositional calculus, predicate calculus, complexity classes, NP-complete problems.
CSCI 284. Automata Theory (3)
Prerequisite: CSCI 186 or permission of instructor. Formal languages, abstract machines, algebraic approach to automata, term rewriting systems, formal power series, cryptography, parallel computation.
CSCI 290. Independent Study (1-3; max total 6)
Prerequisite: approval of department. See Academic Placement -- Independent Study. Approved for RP grading.
CSCI 291T. Seminar (1-3; max total 9)
Prerequisite: approval of instructor. Special topics in computer science of current interest and importance.
CSCI 298. Research Project (3)
Prerequisite: advancement to candidacy. See Criteria for Thesis and Project. Independent investigation of an advanced topic as the culminating requirement for the master's degree. Approved for RP grading.
CSCI 299. Master's Thesis (3-6; max total 6)
Prerequisite: advancement to candidacy. See Criteria for Thesis and Project. Preparation, completion, and submission of an acceptable thesis for the master's degree. Approved for RP grading.
IN-SERVICE COURSE
CSCI 391T. Topics in Computer Science
(1-6; repeatable for credit with different topics)