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. Prerequisites: Requires pre-requisite course of CSCI 2270 (minimum grade C-).

Covers 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: Requires pre-requisite course of CSCI 2824 (minimum grade C-).

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. Prereq., CSCI 3104 and 3155. Prerequisites: Requires pre-requisite courses of CSCI 3104 and CSCI 3155 (minimum grade C-).

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 MCDB3500 or Iphy 4200. Same as CSCI 5314 and MCDB 4314.

Same as CSCI 4314 and MCDB 5314. Prerequisites: Restricted to 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. Prereq., graduate standing or instructor consent. Prerequisites: Restricted to graduate students or Computer Science Concurrent Degree majors only.

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. Prerequisites: Restricted to graduate students or Computer Science Concurrent Degree majors only.

Presents algorithms, simplex, and modifications. Examines theory---duality and complementary slackness. Involves network flow algorithms. Introduces integer programming. Prereq., linear algebra. Prerequisites: Restricted to graduate students or Computer Science Concurrent Degree majors only.

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. Prerequisites: Restricted to graduate students or Computer Science Concurrent Degree majors only.

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. Prerequisites: Restricted to Graduate Students only.

Selected topics of current interest in theory of computation. Prereq., CSCI 5454. Prerequisites: Restricted to Graduate Students only.