CIS 575


Prerequisites by Topic

  • Significant experience programming in some high-level programming
    language, preferably Java, C, or C++

  • Familiarity with standard data structures: lists, stacks, queues,
    trees, search trees, hash tables, graphs

  • Understanding of basic concepts of propositional
    and predicate logic and its use in program verification

  • Experience in writing mathematical proofs in natural language
  • Understanding of algebra (functions, solution of equations,
    limits, summations), calculus (derivatives and integrals),
    combinatorics, and recurrence relations

Knowledge and Skills Acquired

  • Mastery of:
    • Analysis of time- and space-complexity of algorithms
    • Various sorting algorithms and their tradeoffs
    • Various advanced data structures and their tradeoffs
    • Proving theorems about algorithms
  • Familiarity with:
    • Divide-and-conquer
    • Greedy algorithms
    • Dynamic Programming

Department of Computing and Information Sciences - Kansas State University
Address: 234 Nichols Hall, Manhattan, KS 66506
Phone: (785)532-6350; Fax: (785)532-7353; Mailto: webmaster@cis.ksu.edu