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.  (3-0) Three hours.

Prerequisites:  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. (3-0) Three hours.
Prerequisites: CS 325 and 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. (3-0) Three hours.
Prerequisites: CS 325 and CS 357, or MIS 320 (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. (3-0) Three hours.
Prerequisites: CS 325 and CS 357 or MIS 320 (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 524 Java Programming. (3-0) Three hours. (Not open to students who have earned credit for CS 424.) Prerequisites: CS 325, CS 357, and ECE 383.
Object-oriented programming using the Java programming language and applications programming interfaces.

CS 526 Introduction to Operating Systems. (3-0) Three hours.
Prerequisites: CS 325, 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 534 Compiler Construction. (3-0) Three hours.
Prerequisites: CS 325, 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. (3-0) Three hours. (Not open to students who have earned credit for CS 435.)
Prerequisite: CS 325, CS 357, and ECE 383.
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. (3-0) Three hours.
Prerequisites: CS 325, 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. (3-0) Three hours.
Prerequisites: CS 325, 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.  (3-0) Three hours.

Prerequisites:  CS 426, CS 470

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

CS 567 Computer Systems Architecture.
(3-0) Three hours. Same as ECE 584.
For description, see ECE 584.

CS 570 Introduction to Computer Algorithms.
(3-0) Three hours.
Prerequisites: CS 325, CS 357, ECE 383, and Math 301. (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 580 Computer Simulations.
(3-0) Three hours. (Not open to students who have earned credit for CS 480.)
Prerequisites: CS 325, CS 357, and ECE 383.
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.
(3-0) 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.
(3-0) 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.
(3-0) 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.
(3-0) 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.
(3-0) 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.
(3-0) 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.
(3-0) 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. (3-0) 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.
(3-0) 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 610 Introduction to Cognitive Science. (3-0) Three hours.
Prerequisite: CS 465.
This course introduces the basic concepts of cognitive science. It involves cross-disciplinary study of cognitive processes in humans and machines. It explores the possibility of building truly intelligent systems.

CS 612 Advanced Data Structures.  (0-3) 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. (3-0) 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. (3-0) 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 618 Wireless, Mobile Network Protocols. 
(3-0) 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. (3-0) 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. (3-0) 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. (3-0) 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. (3-0) 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.  (3-0) 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 651 Object-Oriented and Intelligent Database Systems. (3-0) Three hours.
Prerequisite: CS 609.
Research- and design-oriented combination of the concepts of the traditional databases (relational, networked, and hierarchical) with developing concepts such as object-oriented and intelligent databases.

CS 661 Expert Systems. (3-0) Three hours.
Prerequisite: CS 605.
Advanced study of the development of expert systems. Programming technologies for designing, building, implementing, and testing expert systems are included.

CS 662 Advanced Neural Computation. (3-0) Three hours.
Prerequisite: CS 605, AEM 587, or equivalent; or permission of the instructor.
A study of artificial neural systems on computers, including modern theories of learning and neural processing. Emphasis is on neural network architectures with methodologies for designing, building, and implementing such systems.

CS 663 Connectionist Models. (3-0) Three hours.
Prerequisite: CS 610.
This course covers recent developments in research in connectionist models, especially in integrating symbolic processing and rule-based reasoning.

CS 664 Advanced Cognitive Science. (3-0) Three hours.
Prerequisite: CS 610.
This course presents some of the most important computational models in cognitive science. It contains basic approaches and methodologies for studying cognition, and it extends to the exploration of several fundamental cognitive functions.

CS 665 Fuzzy Set Theory. (3-0) 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 670 Advanced Algorithms and Data Structures. (3-0) Three hours.
Prerequisite: CS 601.
This course presents selected advanced topics related to design and analysis of algorithms and data structures.

CS 671 Graph Theory and Algorithms. (3-0) 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. (3-0) Three hours.
Prerequisite: CS 601 or ECE 684.
This course presents techniques for designing and analyzing algorithms for many models of parallel computation.

CS 673 Computational Complexity. (3-0) Three hours.
Prerequisite: CS 601 or CS 602.
This course presents techniques for determining that certain problems are inherently difficult or even impossible to solve on any computer.

CS 686 Advanced Computer-Human Interface. (3-0) 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. (3-0) 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