
167 Petty Building
(336) 256-1112
Department of Computer Science Homepage
Admissions Information
Quick Jump to:
Faculty
Requirements for the Master of Science in Computer Science
CSC Computer Science Courses
Professors
Francine Blanchet-Sadri, Ph.D.
Combinatorics on words, formal languages, string algorithms.
Fereidoon Sadri, Ph.D.
Database systems, XML information integration, modeling and management of inaccurate and uncertain data (Director of Graduate Study).
Steven Tate, Ph.D.
Computer security, cryptography, algorithms, data compression (Head of Department).
Associate Professors
Lixin Fu, Ph.D.
Datamining, databases, algorithms.
Nancy Green, Ph.D.
Artifical intelligence, human-computer interaction.
Shan Suthaharan, Ph.D.
Digital water-marking, video coding and compression, computer networks and security, wireless communications, image processing.
The Department of Computer Science offers a graduate program of study leading to a Master of Science degree in computer science. There are three options: course work with comprehensive examination, project, or thesis. The program requires 30 hours with at least 18 hours in computer science (CSC) courses.
Core Courses (6-21 hours)
Every student must complete:
CSC 640 Software Engineering (3)
CSC 656 Foundations of Computer Science (3)
Every student must either present evidence of having completed at least one advanced course in each of the following areas during the undergraduate program or take an advanced course in each of the following areas as part of
the graduate program:
Operating Systems (CSC 562)
Computer Networks (CSC 567)
Theory of Computation (CSC 553)
Algorithm Analysis (CSC 555)
Advanced Database Systems (CSC 671)
Electives (9-24 hours)
With prior approval of the Director of Graduate Study, a student will select 9-24 hours of other 500- or 600-level courses from the following:
Any CSC course
MAT 514, 515, 517, 531, 532, 541, 542, 549, 556, 593, 594, 631, 632, 645, 646, 688, 689
STA 551, 552, 573, 574, 575, 580, 651, 652, 671, 672, 673, 674, 675, 676, 677
Thesis, Project, or Comprehensive Examination
Each candidate may elect to prepare a thesis, prepare a project, or pass a comprehensive examination on the program of course work.
Thesis (6 hours)
The candidate may prepare a thesis based on the investigation of a topic in computer science. A thesis director will be appointed by the Department Head after consultation with the student and the Director of Graduate Study. The writing of a thesis requires the scholarly exposition and documentation of a substantial problem. In some cases this may lead to a new solution to the problem and to original results. While writing the thesis, candidates may include up to 6 hours of CSC 699 in the required 30 hour program. An oral examination on the thesis is required.
Project (3-6 hours)
The candidate may prepare a project (theoretical or programmed) based on a topic in computer science. The project may be work-related. A project director will be appointed by the Department Head after consultation with the student and the Director of Graduate Study. The preparation of a project requires a description of the problem and documentation of any software products or description of theoretical solutions. While preparing the project, candidates may include 3 to 6 hours of CSC 698 in the required 30 hour program. An oral examination on the project is required.
Comprehensive Examination
A candidate may elect to pass a written comprehensive examination on the program of study. Please consult with the Director of Graduate Study for information concerning the comprehensive examination.
| 521 | Computer Graphics (3:3) |
| Pr. grades of at least C in 340, 350, and MAT 292, or permission of instructor Survey of graphics algorithms, data structures, and techniques. (Odd Spring) | |
| 522 | Digital Image Processing (3:3) |
| Pr. grades of at least C in 330, 350, and MAT 292, or permission of instructor. Successful completion of STA 271 or STA 290 recommended. Image representation, enhancement, compression, coding, restoration, wavelet transforms. | |
| 523 | Numerical Analysis and Computing (3:3) |
| Pr. grades of at least C in 130, 350, and MAT 293, or permission of instructor Number systems and errors, solutions of nonlinear and linear systems, eigenvalue problems, interpolation and approximation, numerical differentiation and integration, solution of differential equations. (Even Spring) | |
| 524 | Numerical Analysis and Computing (3:3) |
| Pr. grade of at least C in 523 Continuation of 523 with special topics in numerical analysis, emphasis on applied mathematics. (Formerly CSC 544) | |
| 526 | Bioinformatics (3:3) |
| Pr. permission of instructor Problems and methods in bioinformatics including restriction mapping, map assembly, sequencing, DNA arrays, and sequence comparison. | |
| 529 | Artificial Intelligence (3:3) |
| Pr. grade of at least C in 330 Logical foundations, knowledge representation and reasoning, search, and selected topics such as natural language processing and reasoning under uncertainty. (Formerly CSC 559) | |
| 539 | Introduction to Compiler Design (3:3) |
| Pr. grades of at least C in 261 and 330 or permission of instructor. Successful completion of 553 helpful Basic techniques of compiler design and implementation: lexical analysis, parsing, code generation. Sizable programming project implementing a compiler for a block structured language with strong typing. | |
| 540 | Human-Computer Interface Development (3:3) |
| Pr. grades of least C in 330 and STA 271 or STA 290; or permission of instructor Survey of concepts and techniques for human-computer interface development. Topics include user-centered design, user interface programming, and usability evaluation. | |
| 550 | Combinatorics on Words (3:3) |
| Pr. permission of instructor Introduction to the problems and methods in algorithmic combinatorics on words. Problem areas include periodicity, primitivity, and borderedness. | |
| 553 | Theory of Computation (3:3) |
| Pr. grade of at least C in CSC 350 or permission of instructor Finite state automata and regular expressions, context-free grammars, push-down automata and their use in parsing, overview of language translation systems, models for programming language semantics, computability and undecidability. | |
| 555 | Algorithm Analysis and Design (3:3) |
| Pr. grade of at least C in 330 Sequential algorithm design and complexity analysis. Dynamic programming. Greedy algorithms. Graph algorithms. Selected advanced topics from NP-completeness; approximation, randomized, parallel, number-theoretic algorithms; Fast Fourier Transform; computational geometry; string matching. | |
| 561 | Principles of Computer Architecture (3:2:3) |
| Pr. grades of at least C in 261, 330, and 350, or permission of instructor Hardware and software components of computer systems, their organization and operations. Topics: comparative instruction set architectures, microprogramming, memory management, processor management, I/O, interrupts, and emulation of processors. | |
| 562 | Principles of Operating Systems (3:3) |
| Pr. grades of at least C in 261 and 340 or permission of instructor. Successful completion of 561 helpful Techniques and strategies used in operating system design and implementation: managing processes, input/output, memory, scheduling, file systems, and protection. | |
| 563 | Basic Systems Administration Laboratory (1:0:3) |
| Coreq. 562 and 567, or permission of instructor Installing operating systems, peripherals, hardware, and software. Backups, recompiling the kernel (loading/unloading modules), providing web services, and user administration. | |
| 564 | Intermediate Systems Administration Laboratory (1:0:3) |
| Pr. grade of at least C in 563 Topics selected from routing, firewall, Primary Domain Controller, Backup Domain Controller, Domain Controller trust, SAMBA, DNS round robin, and PPP connectivity setup. | |
| 565 | Advanced Systems Administration Laboratory (1:0:3) |
| Pr. grade of at least C in 564 Automated installation, software installation, systems programming, system administration in a large organization. Projects will include departmental or university computer system work. | |
| 567 | Principles of Computer Networks (3:3) |
| Pr. grades of at least C in 261 and 330, or permission of instructor Hardware and software components of computer networks, their organization and operations. Topics: open system interconnection; local area networks; TCP/IP internetworking, routing, and packet switching; network programming. (Spring) | |
| 568 | Principles of Wireless Networks (3:3) |
| Pr. grades of at least C in 330 and 567, or permission of instructor Digital communications, communication networks, wireless communication technology, wireless networking, wireless LANs and wireless network programming. (Spring) | |
| 580 | Cryptography and Security in Computing (3:3) |
| Pr. grades of at least C in 330 and one of the following: 471, 561, 562, or 567; or permission of instructor Modern development of cryptography and secure encryption protocols. Program security and viruses, operating system protection, network and distributed system security, database security, and administering security. (Fall) | |
| 583 | Firewall Architecture and Computer Security (3:3) |
| Pr. grades of at least C in 567 and 580, or permission of instructor Firewall hardware and software technologies. Architectures, protocols and their applications. (Spring) | |
| 589 | Experimental Course |
| This number reserved for experimental courses. Refer to the Course Schedule for current offerings. | |
| 593, 594 | Directed Study in Computer Science (1-3), (1-3) |
| 621 | Advanced Computer Graphics (3:3) |
| Pr. 521 or permission of instructor Advanced computer graphics algorithms, data structures, and techniques. (Odd Spring) | |
| 622 | Advanced Digital Image Processing (3:3) |
| Pr. 522 or permission of instructor Image restoration, segmentation, coding, representation and description, morphological transforms, object recognition. | |
| 626 | Advanced Bioinformatics (3:3) |
| Pr. 526 or permission of instructor Advanced topics in bioinformatics related to sequence comparison and database search, fragment assembly of DNA, physical mapping of DNA, phylogenetic trees, genome rearrangements, and molecular structure prediction. | |
| 640 | Software Engineering (3:3) |
| Pr. 330, or permission of instructor Organization and scheduling of software engineering projects and structured software design. Specification methods, metrics, software engineering tools, design, prototyping, version control, and testing. | |
| 650 | Language Theory (3:3) |
| Pr. 550 or permission of instructor Important aspects of language theory. Advanced topics such as grammar, codes, L systems, and combinatorics on words. | |
| 653 | Advanced Theory of Computation (3:3) |
| Pr. 553, or permission of instructor Computability theory: Church-Turing thesis (Turing machines, variants, other models); decidability (decidable and undecidable problems for automata and grammars, the halting problem); reducibility (undecidability of mathematical truth). | |
| 655 | Advanced Topics in Algorithms (3:3) |
| Pr. grade of at least C in 555 Modern development of algorithm design and analysis for sequential and parallel computers; parallel, number-theoretic, probabilistic, and approximation algorithms, string matching, computational geometry, NP-completeness: worst-case versus average-case. | |
| 656 | Foundations of Computer Science (3:3) |
| Pr. MAT 353 or permission of instructor Introduces the mathematical foundations that support advanced studies in computer science including computer programming and the analysis of algorithms. | |
| 663 | Advanced Topics in Computer Systems (3:3) |
| Pr. 330 and 567 or 561 or 562, or permission of instructor Distributed and parallel systems. High-speed and wireless networks. Mobile computing. Communication, synchronization, distributed shared memory, real-time and fault-tolerant systems; current implementations. May be repeated for credit when topics vary. | |
| 665 | Advanced Wireless Networks (3:3) |
| Pr. 330 or equivalent and one of the following: 561 or 562 or 567 or permission of instructor Wireless technology and architecture, wireless network types, wireless network design approaches, wireless application development and wireless network programming. | |
| 667 | Supervision of Basic Systems Administration (1:0:3) |
| Coreq. 562 and 567, or knowledge of operating systems and networks Installing operating systems, peripherals, hardware, and software on heterogeneous platforms. Backups, recompiling the kernel (loading/unloading modules), providing web services, and user administration on heterogeneous networks. Installing patches and system updates. Introduction to team management strategies. | |
| 668 | Supervision of Intermediate Systems Administration (1:0:3) |
| Pr. 667 Supervision of team members in selected topics from routiing, firewall, Primary Domain Controller, Backup Domain Controller, Domain Controller trust, SAMBA, DNS round robin, and PPP connectivity setup. | |
| 669 | Supervision of Advanced Systems Administration (1:0:3) |
| Pr. 668 Automated installation, software installation, systems programming, system administration, and team supervision for a large organization. Projects will include supervision of, and participation in, departmental or university computer system work. | |
| 671 | Advanced Database Systems (3:3) |
| Pr. 330, or permission of instructor Modern database models. User interface and operations. Applications design. Introduction to multi-database systems: interoperability and data integration. Selected topics of current interest. | |
| 672 | Database System Architecture (3:3) |
| Pr. 570 or 671, or permission of instructor File organization and indexing techniques. Query processing and optimization. Concurrency control and crash recovery. Distributed and heterogeneous database systems. Selected topics of current interest in database and knowledge-base systems. | |
| 675 | Principles of XML Databases (3:3) |
| Pr. 671 or permission of instructor XML from a database point of view, concentrating on information retrieval (querying) and integration. | |
| 676 | Topics in Database Systems (3:3) |
| Pr. 671 or permission of instructor Selected topics of current interest such as: deductive databases, modeling and management of uncertain and inaccurate information, multi-database systems, data mining, on-line analytical processing and data warehousing. | |
| 680 | Advanced Topics in Computer Security (3:3) |
| Pr. 339 and 580 Topics in cryptography and computer security, including cryptographic protocols, Web server security, Java security, security in the healthcare domain, and experimental quantum cryptography. | |
| 693 | Advanced Topics in Computer Science (3-6) |
| Pr. permission of instructor Algorithms, architecture, languages, systems, theory, or other areas of computer science. May be repeated once for credit. | |
| 695 | Current Problems in Computer Science (3:3) |
| Pr. permission of instructor Topics of current research interest in computer science. | |
| 697 | Research Problems in Computer Science (3:3) |
| Pr. permission of instructor Advanced research in specialized areas of computer science under the direction of a faculty member. Preparation for master’s thesis. (Graded on S-U basis) | |
| 698 | Project in Computer Science (3-6) |
| Pr. permission of instructor May be repeated for up to 6 credit hours with permission of instructor. (Graded on S-U basis) | |
| 699 | Thesis (1-6) |
| 711 | Experimental Course |
| This number reserved for experimental courses. Refer to Course Schedule for current offerings. | |
| 801 | Thesis Extension (1-3) |
| 803 | Research Extension (1-3) |