THE UNIVERSITY OF ALABAMA GRADUATE CATALOG
Table of Contents > College of Engineering

11.6.5  DEPARTMENT OF COMPUTER SCIENCE (CS)
Head: Professor David W. Cordes, Office: 101 Houser Hall

 

The Department of Computer Science offers interdisciplinary graduate programs leading to the master of science and doctor of philosophy degrees. The programs are for students who are interested in professional careers in computer science. Two master's degree programs are available. The Plan I (thesis) degree is a research-oriented degree, while the Plan II degree is for students who are interested primarily in design.

 

Research activity in the department includes active investigations in software engineering, algorithms, database management, networks, parallel and distributed computation, programming languages, robotics, and human-computer interaction.

 

 

Admission Requirements


In addition to meeting the admission requirements established by the Graduate School (Admission Criteria), students applying for graduate study in the department must also meet the following general requirements: (1) demonstrated competence in programming; (2) completion of the equivalent of the department's undergraduate core computer science curriculum; and (3) demonstration, by an appropriate score on the general test of the Graduate Record Examination, of competence in the discipline of computer science.

 

Each student must submit scores from the Graduate Record Examination general test. This requirement may be waived for a student who graduated with a GPA of 3.0 or higher on a 4.0 scale from an institution accredited by the CAC Accreditation Commission of ABET, 111 Market Place, Suite 1050, Baltimore, MD 21202-4012 telephone (410) 347-7700. It is strongly recommended that each student submit a score from the GRE Subject Exam in Computer Science, particularly students who wish to be considered for funding opportunities.

 

Additional details of these requirements may be obtained directly from the department. Applicants who present most but not all of these qualifications may be considered for conditional admission.

 

 

Degree Requirements:

 

Master of Science

Departmental degree requirements for the MS degree, which are in addition to those established by the College and by the Graduate School, are as follows for Plan I and Plan II students:

  • Each Plan I candidate must earn a minimum of 24 semester hours of credit for coursework, plus a 6-hour thesis under the direction of a faculty member.

  • Each Plan II candidate must earn a minimum of 30 semester hours of credit for coursework, which may include a 3-hour nonthesis project under the direction of a faculty member.

  • Unlike the general College of Engineering requirements, graduate credit may not be obtained for courses at the 400-level.

Both plans also have core and depth requirements, which can be found at the website of the Department of Computer Science. Additional information is in the Degree Requirements section of this catalog.

 

 

 

Doctor of Philosophy

The doctor of philosophy degree is regarded as a research degree and is granted on the basis of scholarly proficiency, distinctive achievement in a special field, and the capacity for independent, original investigation. The first two criteria are tested in coursework and a qualifying examination, the last by a dissertation that must present the results of substantial research clearly and effectively. A combination of these accomplishments, rather than the mere accumulation of residency and course credits, is the essential consideration in awarding the PhD degree.

 

A minimum of 48 semester hours of course credit is required. Graduate credit may not be obtained for courses at the 400-level.  Approval of the selection of courses must be obtained from the student's advisor and supervisory committee, and the course of study as a whole must be unified so that all its parts contribute to an organized program of study and research. A PhD Plan of Study (available at the Graduate School website) must be prepared and submitted to the Graduate School not later than the semester in which the student accumulates 30 hours of transfer and/or UA course work.

 

Students also must complete at least 24 semester hours of dissertation research and have fulfilled residency, passed the comprehensive (preliminary) and other exams.  A department-approved Admission to Candidacy for the Doctoral Degree is submitted to the Graduate School as soon as possible after passing the comprehensive (preliminary) examination.  See the website for the Department of Computer Science and Graduate Catalog (Sec. 4.11.3) for details on plan of study, admission to candidacy, and all other degree requirements.

 

All requirements for the PhD must be completed within 7 years (21 fall, spring and summer semesters) of the admission semester.  See this catalog's time limits section for details.

 

 

Course Descriptions

CS 500 Discrete Mathematics for Computer Science. Three hours.

Prerequisite(s): MA 301, and either CS 470 or CS 570.

This course applies techniques of discrete mathematics to computer science problems. Topics include logic, proofs, number theory, graphs, trees, sets, relations, counting, recurrences, generating functions, probability, and expectation.


CS 503 Programming Languages. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 403.)

This course provides a graduate level presentation of Programming Languages. Formal student of programming language specification, analysis, implementation, and run-time support structures; organization of programming languages with emphasis on language constructs and mechanisms; and study of non-programming paradigms.


CS 507 Software Interface Design. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 407.)

Concepts of the human-computer interface, emphasizing the software aspects. Dialog styles, form models, user documentation and the evaluation of human-computer software interfaces.


CS 515 Software Design and Development. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 415.)

This course provides a graduate level presentation of Software Design and Development. Introduction to software engineering; the software crisis, program life-cycle, software systems analysis techniques, theory and practice of design, structured techniques, program testing methodologies, programmer team organization, and program verification and synthesis.


CS 516 Testing and Quality Assurance. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351; and CS 360; and ECE 383. (Not open to students who have earned credit for CS 416.)

Study of verification & validation and related processes. Topics include techniques and tools for software analysis, testing, and quality assurance.


CS 526 Introduction to Operating Systems. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 426.)

This course provides a graduate level presentation of Introduction to Operating Systems. Study of basic operating system concepts with an emphasis on memory processor, device, and information management.


CS 528. Computer Security. Three hours.

Prerequisite(s): CS 426. (Not open to students who have earned credit for CS 428.)

An examination of computer security concepts, such as cryptographic tools, user authentication, access control, database security, intrusion detection, malicious software, denial of service, firewalls and intrusion prevention systems, trusted computing and multilevel security, buffer overflow, software security, physical and infrastructure security, human factors, and security auditing.


CS 534 Compiler Construction. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 434.)

This course provides a graduate level presentation of Compiler construction. Syntax and semantics of procedure-oriented languages and translation techniques used in their compilation; includes computer implementation.


CS 535 Computer Graphics. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 435.)

Display memory, generation of points, vectors, etc. Interactive versus passive graphics, analog storage of images on microfilm, etc. Digitizing and digital storage, pattern recognition by features, syntax tables, and random nets. The mathematics of three dimensions, projections, and the hidden-line problem.


CS 538 Computer Communications and Networks. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 438.)

This course provides a graduate level presentation of Computer Communications and Networks. The student of the issues related to Computer communications. Topics include physical topologies, switching, error detection and correction, routing, congestion control, and connection management for global networks (such as the Internet) and local area networks (such as Ethernet). In addition, network programming and applications will be considered.


CS 557 Database Management Systems. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 457.)

This course provides a graduate level presentation of Database Management Systems. Constituent parts of database management (design, creation, and manipulation of databases), client-server, relational, and object-oriented data models.


CS 560 Introduction to Autonomous Robotics. Three hours.

Prerequisite(s): CS 426. (Not open to students who have earned credit for CS 460.)

Issues involved with the implementation of robot control software including motion, kinematics, simulation testing, sensor incorporation and unmodeled factors.


CS 567 Computer Systems Architecture. Three hours.

Same as ECE 584. For description, see ECE 584.


CS 570 Introduction to Computer Algorithms. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 470.)

This course provides a graduate level presentation of Introduction to Computer Algorithms. Construction of efficient algorithms for computer implementation.


CS 575. Formal Language & Machine. Three hours.


Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 475.)

Regular expressions and finite automata. Context free grammars and pushdown automata. Recursively enumerable languages and turing machine. The Chomsky hierarchy.


CS 580 Computer Simulations. Three hours.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352 or CS 325; and CS 360 or CS 357; and ECE 383. (Not open to students who have earned credit for CS 480.)

Use of digital computer simulation in the analysis of large-scale systems. Comparison of discrete change simulation language; design of simulation experiments for optimization; validation of simulation models.

CS 591 Special Topics in Computer Science.
Three hours.
Formal courses that cover new and innovative topics in computer science and do not yet have their own course numbers. Specific course titles will be announced.

CS 592 Independent Study in Computer Science.
Variable credit.
This course requires a written proposal that must be approved by the sponsoring faculty member before registration.

CS 598 Research Not Related to Thesis.
Variable credit.

CS 599 Master's Thesis Research. Variable credit.

CS 600 Foundations of Software Engineering.
Three hours.
Prerequisite: CS 415 or CS 515.
Introduction to formal software development techniques; theoretical foundations of specification, design, and testing; and programming methodologies and software reuse.

CS 601 Design and Analysis of Computer Algorithms.
Three hours.
Prerequisite: CS 470 or CS 570.
A study of algorithm design techniques; analysis of performance of algorithms; and fundamental principles and concepts of algorithm construction, proof, and analysis.

CS 602 Advanced Formal Languages and Machines.
Three hours.
Prerequisite: CS 470 or CS 475 or CS 570.
Regular languages, context-free languages, recursive and recursively enumerable languages, nondeterminism, and undecidability.

CS 603 Organization of Programming Languages.
Three hours.
Prerequisite: CS 403 or CS 503. Design and implementation of programming languages; syntax and translation; semantic structures and run-time representations; data, operations, control structures, and storage management.

CS 605 Theory of Artificial Intelligence.
Three hours.
Prerequisite: CS 465. Concepts of artificial intelligence, with emphasis on problem solving, knowledge representation, logic and deduction, and machine learning.

CS 606 Analysis of Operating Systems.
Three hours.
Prerequisite: CS 426 or CS 526.
Design of operating systems; advanced examination of synchronization, deadlock, virtual memory, and security; and parallel and distributed systems.

CS 607 Software User Interface Design and Analysis. Three hours.
Prerequisite: CS 407 or CS 507.
Concepts of the human-computer interface, emphasizing the software aspects. Dialog styles, form models, user documentation, and the evaluation of human-computer software interfaces.
 

CS 609 Database Management. Three hours.
Prerequisite: CS 457 or CS 557.
Data model theory, comparison of existing database systems, implementation technology, selection, evaluation techniques, integrity, security, authorization and protection, and hardware architecture.
 

CS 612 Advanced Data Structures.  Three hours.

Prerequisites: CS 357, and either CS 470 or CS 570

A graduate-level study of data structures.  Topics include self-balancing trees binomial and Fibonacci heaps, disjoint sets, graphs and digraphs. 

 

CS 613 Advanced Computer Communication and Networks. Three hours.
Prerequisite: CS 438 or CS 538 and either GES 255 or ST 410.
Study of computer networks, including telecommunications and related data transmission techniques. Network philosophy, design, and implementation.

CS 614 Theory and Construction of Compilers. Three hours.
Prerequisite: CS 434 or CS 534.
Definition and specification of language syntax and semantics, lexical scans, operational notations, and compilation methods. Compiler writing systems. A formal approach to compiler theory.


CS 615 Cryptography and Data Security. Three hours.
Prerequisite: CS 528 or CS 428.
An examination of algorithms and concepts in cryptography and data security, such as symmetric ciphers, asymmetric ciphers, public-key cryptography, hash functions, message authentication codes, key management and distribution.

CS 618 Wireless, Mobile Network Protocols. 
Three hours.

Prerequisites: CS 438/538 or CS 613 or ECE 406/506 or ECE 502. Other-consent of instructor.

Network protocol design and analysis in wireless and mobile networks.  Topics include ad hoc

routing, mobility management, TCP over wireless links, quality of service and privacy, energy-efficient design, cross-layer design, and emerging applications.

 

CS 620 Information Storage and Retrieval. Three hours.
Prerequisite: CS 609.
Natural language processing; analysis of textual material by statistical, syntactic, and logical methods; retrieval system models, dictionary construction, query processing, file structures, and content analysis; automatic retrieval systems and question-answering systems; and evaluation of retrieval effectiveness.

CS 626 Distributed Computing Systems. Three hours.
Prerequisite: CS 606.
An advanced treatment of the theory and practice of constructing distributed systems, in which concurrent processes communicate by exchanging messages.

CS 630 Advanced Software Engineering Principles. Three hours.
Prerequisite: CS 600.
Advanced study in theoretical foundations of software engineering: software process modeling, metrics, and cost estimation; formal specifications; testing and verification techniques; exposure to research methods.

CS 631 Software Engineering Practice and Experience. Three hours.
Prerequisite: CS 600.
Introduction to the application of software engineering principles to large-scale programming projects. Emphasis is on object-based construction, CASE tools, and contemporary development environments.

CS 637 Design of Collaborative Software.  Three hours.

Prerequisites:  Graduate standing in Computer Science or Computer Engineering.

An investigation of collaborative software that allows multiple users to interact with a single computer simultaneously through large-format displays.  Topics include architectures, OS support, input devices, graphical user interfaces, APIs for collaborative software and migration of existing software to multiuser environments. 

 

CS 665 Fuzzy Set Theory. Three hours.
Prerequisite: CS 605.
This course covers the various issues of uncertainty, information theory, and system complexity from a perspective based on fuzzy set theory. Mathematical foundations of fuzzy sets, various aspects of fuzzy relations, and fuzzy measures and their relation to information theory are discussed.

CS 671 Graph Theory and Algorithms. Three hours.
Prerequisite: CS 601 or MATH 550.
This course presents advanced algorithms for solving graph problems. Classical results from graph theory are introduced to motivate or explain these algorithms.

CS 672 Parallel Computation. Three hours.
Prerequisite: CS 601 or ECE 684.
This course presents techniques for designing and analyzing algorithms for many models of parallel computation.

CS 686 Advanced Computer-Human Interface. Three hours.
Prerequisite: CS 607.
Corequisite: IE 533.
Advanced topics in the computer-human interface, including graphical user interfaces, computer-supported cooperative work, different interface styles, user interface management systems, online documentation, and hypermedia. Software user interface design philosophy and evaluation methods.

CS 691 Special Topics in Computer Science. Three hours.
Formal courses that cover new and innovative topics in computer science and do not yet have their own numbers; specific course titles will be announced.

CS 692 Independent Study in Computer Science. Variable credit.
This course requires a written proposal that must be approved by the sponsoring faculty member before registration.

CS 699 Dissertation Research. Variable credit. Three-hour minimum.

 


THE UNIVERSITY OF ALABAMA GRADUATE CATALOG

:: TABLE OF CONTENTS

The Graduate School | UA Catalogs | Graduate Publications | Contact