The Graduate School

  1. Introduction
  2. Admission to The Graduate School
  3. Academic Regulations
  4. Academic Departments, Programs, and Courses
  5. Research Centers and Institutes
  6. Tuition and Fees and Financial Regulations
  7. University Services
  8. About UNCG
  9. University Policies
  10. List of Graduate Faculty
  11. Appendices

The Graduate School Bulletin

Department of Computer Science

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

Faculty

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.

Return to Top of Page

Requirements for the Master of Science in Computer Science

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.

Return to Top of Page

CSC Computer Science Courses

521Computer 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)
522Digital 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.
523Numerical 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)
524Numerical 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)
526Bioinformatics (3:3)
Pr. permission of instructor
Problems and methods in bioinformatics including restriction mapping, map assembly, sequencing, DNA arrays, and sequence comparison.
529Artificial 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)
539Introduction 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.
540Human-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.
550Combinatorics 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.
553Theory 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.
555Algorithm 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.
561Principles 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.
562Principles 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.
563Basic 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.
564Intermediate 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.
565Advanced 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.
567Principles 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)
580Cryptography 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)
583Firewall 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)
589Experimental Course
This number reserved for experimental courses. Refer to the Course Schedule for current offerings.
593, 594Directed Study in Computer Science (1-3), (1-3)
621Advanced Computer Graphics (3:3)
Pr. 521 or permission of instructor
Advanced computer graphics algorithms, data structures, and techniques. (Odd Spring)
622Advanced Digital Image Processing (3:3)
Pr. 522 or permission of instructor
Image restoration, segmentation, coding, representation and description, morphological transforms, object recognition.
626Advanced 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.
640Software 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.
650Language 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.
653Advanced 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).
655Advanced 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.
656Foundations 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.
663Advanced 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.
665Advanced 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.
667Supervision 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.
668Supervision 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.
669Supervision 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.
671Advanced 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.
672Database 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.
675Principles 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.
676Topics 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.
680Advanced 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.
693Advanced 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.
695Current Problems in Computer Science (3:3)
Pr. permission of instructor
Topics of current research interest in computer science.
697Research 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)
698Project 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)
699Thesis (1-6)
711Experimental Course
This number reserved for experimental courses. Refer to Course Schedule for current offerings.
801Thesis Extension (1-3)
803Research Extension (1-3)

Return to Top of Page

 

Page updated: 02-Jun-2008

Accessibility Policy

Page Issues? Webmaster

The Graduate School
The University of North Carolina at Greensboro
241 Mossman Building
1202 Spring Garden Street
Greensboro, NC 27412
VOICE 336.334.5596
FAX 336.334.4424
ADMISSIONS FAX 336.256.0109
EMAIL inquiries@uncg.edu