http://www.uah.edu/science/departments/computer-science

300 Technology Hall

Telephone: 256.824.6088
Email: info@cs.uah.edu

The Computer Science department offers the following undergraduate degrees: 

Program Objectives

The Computer Science Department, with commitment to excellence in teaching, research, service, and overall development of students, has two primary objectives.  First to be nationally and internationally recognized as an institution to which government, industry, and academic leaders turn for opinions on societal issues, especially those involving technology.  Second, to ensure an environment where curiosity, discovery, innovation, and entrepreneurship are valued.

Learning Outcomes

Computer Science graduates will be

  • Proficient in developing software using modern programming languages

  • Proficient in applying mathematical and algorithmic foundations to computing problems

  • Effective in team environments to accomplish common goals

Majors in Computer Science

For more information about the Computer Science department, please visit cs.uah.edu.

UAH's Joint Undergraduate Master's Program (JUMP) allows undergraduate students to study at the graduate level. By taking graduate courses in your senior year you could reduce the time taken to get a graduate (MS) degree.  Please visit JUMP page for general information.

Requirements For Admission

  1. Cumulative overall 3.25 GPA
  2. Major GPA of 3.5
  3. Must complete CS 317 and CS 321 before applying to program

Additional Information

  1. Maximum of 12 credit hours count toward both degrees
  2. CS 413, CS 490, CS 499, and as many CS elective courses as needed to complete the undergraduate major requirement
  3. Student will take CS 524 instead of CS 424 and up to three additional graduate courses to be chosen in conjunction with the JUMP advisor
Designated Faculty Contact/Advisor
     Dr. Weisskopf
     mary.weisskopf@uah.edu

     256.824.6306

     

CS 100 - INTRO COMPUTERS & PROGRAM

Semester Hours: 3

Introduction to program design and implementation in the Visual Basic programming language, using hands-on programming assignments, class demonstrations and lectures. Problem analysis and some testing techniques. Basic program structure, data types, control structures, and file organization.

CS 102 - INTRO TO C PROGRAMMING

Semester Hours: 3

Introduction to program design and implementation in the C programming language, using hangs-on programming assignments, class demonstrations and lectures. Problem analysis and some testing techniques. Basic program structure, and file organization.

CS 103 - INTRO PROGRAMMING USING JAVA

Semester Hours: 3

Introduction to program design and implementation in the Java programming language, using hands-on programming assignments, class demonstrations and lectures. Problem analysis and some testing techniques. Basic program structure, data types, control structures, methods and file organization.

CS 105 - COMP SCI SEM:ETH/PROFESS

Semester Hour: 1

Issues associated with the ethical use of computers in the information age. Ethics, professionalism, software piracy, copyrighting software, ethical standards and the impact of computers on society will be covered. Familiarization with the local computing environment will also be covered.

CS 121 - COMPUTER SCIENCE I

Semester Hours: 3

Review of problem solving techniques, algorithm development, and fundamental language features; e.g., loops, decisions. In depth coverage of functions, arrays, I/O. Principles of software design, implementation, and testing. Introduction to object oriented design and the C++ programming language. Prerequisites: CS 102 or 103, and either MA 113, 115, 120, 171, 172, 201, 238, or 244.

CS 143 - INTRO TECH MULTIMEDIA & GAMING

Semester Hours: 3

Introduction to terminology, technologies and tools for multimedia and gaming. Elements such as text, sound, images, animation, video, and how they are represented, captured, edited, stored, and published. Overview of multimedia and gaming technologies, multimedia authoring, publishing on the web.

CS 214 - INTRO DISCRETE STRUCTURE

Semester Hours: 3

Review of set algebra including mappings and relations. Algebraic structures including semigroups and groups. Elements of theory of directed and undirected graphs; Boolean algebra and propositional logic and applications of these structures to various areas of computer science. Prerequisites: MA 171 and either CS 121 or CPE 112 or CPE 211.

CS 217 - ANALYTIC TECH GAMING

Semester Hours: 3

Mathematics for understanding & implementing 3-dimensional graphics & interactive physical modeling in computer games. Topics: coordinate systems, vectors, matrices, transformations, kinematics, dynamics, automata, and probability. Focused on practical mathematics rather than theoretical derivations. Prerequisites: MA 120 or MA 171.

CS 221 - COMP SCI II: DATA STRUCTURES

Semester Hours: 3

Advanced features of the C++ programming language, including pointers, recursion, classes, and inheritance. Fundamental data structures including linked lists, stacks, queues, binary search trees. Basic sort and search algorithms. Design, development, and documentation of object-oriented programs. Prerequisites: CS 121. Either MA 113, or 115. Prerequisites with concurrency: MA 171 or CS 217.

CS 251 - C++ PROGRAMMING/CALHOUN

Semester Hours: 3

CS 261 - COBOL PROGRAMMING/CALHOUN

Semester Hours: 3.3

CS 307 - OBJECT ORIENT/PROG C++

Semester Hours: 3

Emphasis on principles of software engineering and object-oriented design. Practical experience using the standard C++ library, the standard template library, and design patterns. Introduction to and experience with graphical user interface applications. Prerequisites: CS 221.

CS 308 - ASSEMBLY LANGUAGE PROGRAMMING

Semester Hours: 3

Programming in a representative assembly language, including floating point programming. Overview of software systems: loaders, assemblers, compiler, interpreters, operating systems.

CS 309 - COMPUTER ORG & SWTCHNG THRY

Semester Hours: 3

Boolean algebra, Boolean function minimization techniques, design and analysis of combinational circuits, design and analysis of sequential circuits. Computer hardware organization, including CPU, instruction representation and executive. Programing in a representative assembly language, including floating point programming. Overview of software systems: loaders, assembler, compiler, interpreters, operating systems. A lab section must be scheduled for this course. Prerequisites: CS 214.

CS 309L - LABORATORY

Semester Hours: 0

Lecture/Lab 3. Students enrolling in CS 309L must enroll concurrently in CS 309.

CS 317 - INTRO DESIGN/ANALYSIS OF ALG

Semester Hours: 3

Introduction to complexity analysis of algorithms; emphasis on searching, sorting, finding spanning trees and shortest paths in graphs. Design techniques such as divide & conquer, dynamic programming, and backtracking. Introduction to problem classification; i.e. NP, intractable, and unsolvable. Prerequisites: MA 244 and CS 214, and either CS 221 or CPE 212.

CS 321 - INTRO OBJECT-ORIENTED PROG JAV

Semester Hours: 3

Writing substantial object-oriented programs in Java, including design, documentation and testing. Advanced data structures (e.g., balanced trees, hash tables). Graphical interface programming using the Java abstract windowing toolkit. Comparison with other object-oriented languages, notably C++. Prerequisites: CS 221.

CS 325 - PROFESSIONAL & COMPUTG ETHICS

Semester Hours: 3

The course focuses on two major aspects of professionalism and computer ethics. The first concerns the rule of values and normative principles in the practice of computing or more specifically software development. The second concerns the impacts of computer technologies on society. Prerequisite with concurrency: CS 321.

CS 330 - ARTFCL INTEL & GAME DEV

Semester Hours: 3

Techniques and concepts of artificial intelligence applied game development and production. Topics: path planning, decision making, tactics, and non-rational behaviors. Prerequisite: CS 221.

CS 347 - INTRO VIDEO GAME DESGN & PROGM

Semester Hours: 3

Provides students with an overview of the video game production process. Covers both theory and practice of game design and programming. Students produce 2D and 3D games from beginning to end using existing game engines. Hands-on focus and project-oriented. CS 143 is highly recommended. Prerequisites: CS 221.

CS 365 - DATA BASE PROGRAMMING/ATHENS

Semester Hours: 3.3

CS 371 - MOBILE COMPUTING APP INCT & D

Semester Hours: 3

Considers application design for the mobile space with emphasis on mobile computer interfaces, including GUI for mobile environments, entertainment computing, and cross-platform development. This course is also a component of the Entertainment Computing Track. Prerequisites: CS 221 or CPE 212.

CS 384 - OPERATING SYSTEMS/A&M

Semester Hours: 3

CS 390 - UNIX PROGRAMMING

Semester Hours: 3

Design and development of systems and programs in the UNIX environment. File and terminal I/O, processes, inter-process communication, signals. Pattern searching, filters, pipes. Shell programming. Program and system development tools such as awk, C, make, sed, and yacc. Prerequisites: CS 221.

CS 391 - INT NETWORK ADMIN PRINC WINDOW

Semester Hours: 3

Network administration principles for installing and administrating Windows networks. OS installation, general network topologies and protocols, and Windows client-server architecture. User management, network file and security systems, and disaster-recovery are also covered. Prerequisites: CS 221.

CS 392 - INT NETWORK ADMIN PRINC FOR UN

Semester Hours: 3

Linux OS installation, network topologies and protocols, and UNIX client-server architecture. User management, network file and security systems, kernel configuration, print servers, domain name service, mail servers, Web and ftp servers are included. Design and implementation of a UNIX domain. Prerequisites: CS 390.

CS 396 - SPECIAL TOPICS

Semester Hours: 3

Course offered by an instructor in a specialized area of computer science. Must have approval of instructor.

CS 397 - SPECIAL TOPICS

Semester Hours: 3

Course offered by an instructor in a specialized area of computer science. Must have approval of instructor.

CS 398 - SPECIAL TOPICS

Semester Hours: 3

Course offered by an instructor in a specialized area of computer science. Must have approval of instructor.

CS 403 - INT FORML LANG AUTO THRY

Semester Hours: 3

Introduction to concepts and formalisms of formal languages and automata theory. Includes fundamental mathematical concepts, grammars and corresponding automata, and deterministic parsing of programming languages. Prerequisites: CS 317.

CS 409 - COMPUTER ORG & ARCHITEC/ATHENS

Semester Hours: 3

CS 413 - INTRO DIGITAL COMP ARCHITECTUR

Semester Hours: 3

Design of computer systems and subsystems, including register transfer, bus structure, timing and control. Pipelining, memory systems including cache and cache coherence, arithmetic, and I/O units. Interrupt handling. A lab section must be scheduled for this course. Prerequisites: CS 309.

CS 413L - LABORATORY

Semester Hours: 0

Lecture/Lab 3. Students enrolling in CS 413L must enroll concurrently in CS 413.

CS 420 - ADV COBAL PROGRAMMING/ATHENS

Semester Hours: 3

CS 424 - PROGRAMMING LANGUAGES

Semester Hours: 3

Principles of modern programming language features and design. Comparative study of language paradigms. Overview of language implementation, including lexical, syntax, and semantic analysis. Formal grammars, BNF notation. Brief history of programming languages. Prerequisites: CS 317.

CS 440 - DATA SYSTEMS/ATHENS

Semester Hours: 3

CS 443 - INTRO TO MULTIMEDIA SYSTEMS

Semester Hours: 3

Multimedia authoring, color models for image and video, introduction to image and video compression, digital audio, multimedia networks, multimedia synchronization, multimedia retrieval. Taught as CS 443/543. Prerequisites: CS 317.

CS 445 - INTRO COMPUTER GRAPHICS

Semester Hours: 3

Introduces underlying theory and mechanics of interactive computer graphics. Basic modeling, rasterization, 2D/3D transformations, and viewing. 3D graphics rudiments. Some hardware and historical perspectives. Many programs. Same as CS 545; take only one! Prerequisites: CS 221 and MA 244 or CS 217.

CS 446 - ADVANCED COMPUTER GRAPHICS

Semester Hours: 3

High resolution 3D graphics. Advanced topics in viewing, vertex &, fragment processing, illumination & shading, 3D modeling (curve & surface representation, texture mapping. Some coverage of solid modeling and color theory. Game production pipeline. Many programming projects. Taught as CS 446/546. Prerequisites: CS 445 and at least junior standing.

CS 447 - GAME ENGINES & LEVEL DEVELPMNT

Semester Hours: 3

Students produce fully functional games from beginning to end with team members. Focused on engineering development and art asset generation and management. Examines the design, development, and distribution of computer games using game engines for cross-platform implementation. Taught as CS 447/547. Prerequisites: CS 330 and CS 445.

CS 451 - SOFTWARE ENGINEERING/ATHENS

Semester Hours: 3

CS 453 - CLIENT/SERVER ARCHITECTURES

Semester Hours: 3

Aspects of client/server distributed computing, a paradigm that includes technologies addressing web services (such as AJAX using JavaScript/PHP, ASP.NET) as well as distributed objects (such as .NET remoting, CORBA). Students will apply the concepts in practical distributed programs. Prerequisites: CS 307 or CS 321. CS 470 is recommended.

CS 454 - INTRO TO CLOUD COMPUTING

Semester Hours: 3

Different cloud computing paradigms: IaaS, SaaS, PaaS. Open Source cloud software (for ex., OpenStack, CloudStack). RESTful interfaces, AWS interface. Cloud Security. Taught as CS 454/554. Prerequisites: CS 307 or CS 321.

CS 465 - NETWORK SECURITY

Semester Hours: 3

Introduction to Network Security: Fundamentals of network security and cryptography. Examines security at different network layers. Wireless security. Firewalls. Intrusion detection and penetration analysis. Prerequisites: CS 121 or CPE 112 AND CS 221 or CPE 221.

CS 470 - INTRO TO COMPUTER NETWORKS

Semester Hours: 3

Introduction to the organization and operation of computer networks. Physical, Data Link, Network, Transport, and Application-layer protocols and algorithms; LAN and WAN systems; TCP/IP; wired and wireless organizations; security approaches. Prerequisites: CS 413.

CS 480 - MOBILE DIGITAL FORENSICS

Semester Hours: 3

This course examines digital forensics of mobile devices such as smart phones and tablets in a law enforcement context. Mobile device characteristics that make forensics examinations difficult are discussed. Various forensic tools are critically examined with an eye toward improved tool development.

CS 483 - COMPILERS/A&M

Semester Hours: 3

CS 485 - COMPUTER & SOFTWARE SECURITY

Semester Hours: 3

This course examines the issues related to security policies, models and mechanisms applicable to providing security for computer-based systems including operating systems, database management systems, and networks. Corequisite: CS 490.

CS 487 - DATABASE SYSTEMS

Semester Hours: 3

Basic concepts of database management systems with a focus on relational and object-oriented systems. Database design including semantic models and normalization. Design issues including query languages, internal storage, recovery, concurrency, security, integrity, and query optimization. Senior standing required.

CS 490 - INTRO TO OPERATING SYSTEMS

Semester Hours: 3

Principles of operating systems. Process management, memory management, I/O management, and file systems. Specific topics include process states, threads, CPU scheduling, concurrent processing, virtual memory. Contemporary operating systems will be used as examples. Prerequisites: CS 413.

CS 495 - SEL TOPICS:UNDERGRAD CS

Semester Hours: 3

Individual directed study under the supervision of an instructor. Instructor approval required.

CS 496 - SPECIAL TOPICS

Semester Hours: 3

Course offered by an instructor in a specialized area of computer science. Instructor approval required.

CS 497 - SPECIAL TOPICS

Semester Hours: 3

Course offered by an instructor in a specialized area of computer science. Instructor approval required.

CS 498 - SPECIAL TOPICS

Semester Hours: 3

Course offered by an instructor in a specialized area of computer science. Instructor approval required.

CS 499 - SR PROJ:TEAM SOFTWARE DESIGN

Semester Hours: 3

A combination of lectures on proven software engineering approaches, and team working sessions. Each student will participate in a sizable, complex, software development project based on a team approach. Each team will be required to provide oral and written documentation of their work. Prerequisites: CS 317.

(Date refers to original appointment to the university.)

Allen, Mary Beth, Lecturer, Computer Science, 2017, M.S., Auburn University.

Aygun, Ramazan, Associate Professor, Computer Science, 2003, PhD, New York State University.

Coleman, Richard, Lecturer, Computer Science, 2013, PhD, University of Florida.

Delugach, Harry, Associate Professor, Computer Science, 1990, PhD, University of Virginia.

Etzkorn, Letha, Professor, Computer Science, 1993, PhD, University of Alabama in Huntsville.

Graves, Sara, Professor, Computer Science, 1978, PhD, University of Alabama in Huntsville.

Li, Wei, Associate Professor, Computer Science, 1996, PhD, Virginia Polytechnic Institute & State University.

Menon, Vineetha, Assistant Professor, Computer Science, 2017, PhD, Mississippi State University.

Newman, Timothy, Professor, Computer Science, 1994, PhD, Michigan State.

Peng, Chao, Assistant Professor, Computer Science, 2014, PhD, Virginia Tech.

Petty, Mikel, Associate Professor, Computer Science, 2005, PhD, University of Central Florida.

Ranganath, Heggere, Professor, Computer Science, 1982, PhD, Auburn University.

Rochowiak, Daniel, Associate Professor, Computer Science, 1984, PhD, Notre Dame.

Vaughn, Rayford, Distinguished Professor, Computer Science, 2013, PhD, Kansas State University.

Weisskopf, Mary Ellen, Assistant Professor, Computer Science, 1983, PhD, University of Alabama in Huntsville.

Zhang, Huaming, Associate Professor, Computer Science, 2005, PhD, State University of New York at Buffalo.

Zhu, Feng, Associate Professor, Computer Science, 2005, PhD, Michigan State University.