complexity theory. Prerequisites: one language beyond Basic (C or C++ preferred) and MATH 3503.
5203
LOGIC FOR COMPUTER SCIENCE
3 hours
A survey of historical and modern logic with emphasis on applications in computer science. Topics include Boolean algebra, truth tables, verification of argument validity, development of proofs using prepositional and first-order predicate logic, the correctness and completeness of first-order logic, normal forms, and Herbrand’s theorem. Automated proof techniques such as resolution and unification are covered. Additional material covered may include topics such as fuzzy logic and multivalued logics. Prerequisites: CSCI 3503.
5303
EMBEDDED AND REAL-TIME OPERATING SYSTEMS
3 hours
A continuation of CSCI 4313. Additional topics include device I/O, interrupts, timers, task scheduling, and hardware OS. Two hours of lecture and one hour of lab each week. Prerequisite: CSCI 4313. (TBA)
5403
SOFTWARE ENGINEERING
3 hours
A study of the principles and techniques for methodical construction of quality software. Topics include software requirements specification, programming paradigms, module specification techniques, testing and validation procedures, and proof of program correctness. An individual or team project may constitute a significant part of the course. Two hours of lecture and two hours of lab each week. Prerequisite: CSCI 3114 and CSCI 5003.
5413
ALGORITHM DESIGN AND ANALYSIS
3 hours
A study of the analysis of algorithms and the application of analysis on the design of efficient algorithms. The course treats both the derivation of primarily theoretical results and the practical task of designing efficient algorithms. Topics include: sorting, tree structures, graph algorithms, NP-completeness, dynamic programming, greedy algorithms, distributions and Markov processes, and a brief introduction to parallel algorithms. Prerequisites: CSCI 3114 and CSCI 3503.
5503
COMPUTER ORGANIZATION AND ARCHITECTURE
3 hours
A study of the structure, organization, and logical design of computers from an advanced perspective. Topics include digital arithmetic and logic, computer structures, machine cycles, interrupts, memory organization, I/0 schemes, the integration of operating systems, instruction sets, and addressing. No prior knowledge of electronics is presumed. Two hours of lecture and two hours of lab each week. Prerequisite: At least one programming language.
5513
COMPUTER SYSTEM ARCHITECTURE
3 hours
A study of high-performance computer architectures. Topics may include a study of instruction set architecture, instruction execution, synchronization, micro-operations, global memory, parallel processing, overlap and pipeline processing in a von Neumann type architecture, “RISC” architectures, and supercomputers. Prerequisite: CSCI 5503. (fall)
5603
DATABASE DESIGN
3 hours
A quantitative study of the tools and methodology of database design. The intent is to equip students to design a conceptual database, specify its implementation, and predict the performance of the system when implemented. Topics include B- security trees, database structures and schemas, advanced query languages, and system performance. Students may be asked to pass an entry exam before enrollment is allowed. Two hours of lecture and two hours of lab each week. Prerequisite: CSCI 3613.
graduate catalog
5703
ARTIFICIAL INTELLIGENCE
3 hours
5803
COMPUTER GRAPHICS
3 hours
5981-6
M.S. DEGREE PROJECT
6003
Computer Science Graduate Capstone
3 hours
6063
SPECIAL TOPICS
3 hours
A study of artificial intelligence techniques including concept learning, state-space problem solving, searching AND/OR trees and graphs, genetic algorithms, and resolution. Programming exercises in C++ and/or LISP and PROLOG are assigned. Two hours of lecture and two hours of lab each week. Prerequisite: CSCI 5203. (TBA) An integrated study of the software, data structures, mathematics, and algorithms of image manipulation, computer graphics, and computer-assisted design. Topics include raster techniques, geometric transformations of two and three dimensions, object modeling, illumination models, shading models, basic animations, and strategies for creating representations of three dimensional objects. Two hours of lecture and two hours of lab each week. Prerequisite: MATH 2104 or equivalent proficiency in calculus and analytic geometry. (TBA)
1–6 hours
A major project to be completed under the supervision of a member of the graduate faculty. The project proposal must be approved by the graduate faculty prior to enrollment in the course. The course may be repeated for a maximum of 6 semester hours of credit. Permission of instructor required.
A capstone course required of all graduate computer science students. Students are required to develop a presentation on some current topic in computer science. The course also includes assessment and assessment-oriented topics. Should be taken in the student’s final semester. A graduate seminar presenting state-of-the-art research topics in computer science. Course content varies at the professor’s discretion. Prerequisites: as designated by the professor. (TBA)
6203 ADVANCED OBJECT-ORIENTED PROGRAMMING
3 hours
6303
DISTRIBUTED OPERATING SYSTEMS
3 hours
6403
ADVANCED ALGORITHM DESIGN
3 hours
An advanced study of object-oriented programming and design concepts. Subjects include classes, methods, polymorphism, inheritance, and object-oriented design. C++ and Smalltalk are studied in depth. Other object-oriented languages discussed include Java. A group project is required. Two hours of lecture and two hours of lab each week. Prerequisites: CSCI 5403 and Proficiency in C++ or CSCI 4303. (fall)
A continuation of CSCI 4313. Additional topics include telecommunications, networking, naming, consistency and replication, fault tolerance, and security. The client/server architecture is covered in detail. Encoding, entering, and running programs comprise a significant part of the course. Two hours of lecture and two hours of lab each week. Prerequisite: CSCI 4313. A study of advanced techniques in algorithm design. This course has a primary focus on the issues and techniques of parallel programming. The lab component of the course provides for practice of the examined techniques and algorithms. Topics include string processing, compression, encryption algorithms, and integral transformations. Other topics may include geometric algorithms, parsing, probabilistic algorithms, and linear programming. Two hours of lecture and two hours of lab each week. Prerequisite: CSCI 5413. (spring)
Graduate Course Descriptions
89
2013-14