Left Accent
UAB CIS Header

Undergraduate Catalog

Updated on Wed, 11/11/2009 - 3:20pm

The classes listed below represent the lastest CIS courses publised in the latest UAB Undergraduate Catalog. For more information on UAB catalogs, including past catalogs, please visit UAB's Course Catalogs Online.

CS 101 Fluency With Information Technology

Skills, concepts, and capabilities associated with Information Technology. Fundamentals of hardware, software, human-computer interfaces, networking, multi-media, databases, eCommerce, privacy and digital security. Project oriented hands-on approach. This course has a laboratory component.

CS 101L Fluency W Information Tech Lab

Project oriented hands-on approach lab to accompany CS 101. Mandatory first day attendance.

CS 105 Intro to Game Prog Using Alice

Introduction to object-oriented programming in a 3D graphical programming environment. First-time exposure to common programming language constructs. Project planning and storyboarding. Hands-on approach with several projects focused on the design of computer games and animation. This course has a laboratory component.

CS 105L Intro to Game Prog U Alice Lab

Project oriented hands-on approach.

CS 106 Intro to Comp Pro Using Python

Foundations of computer science and programming. Using common programming language constructs to manipulate text, images, audio and video, and create graphical user interfaces. Hands-on approach with several projects focused on the design of programs for manipulating various kinds of multimedia. This course has a laboratory component.

CS 106L Intr to Com Pro Usi Python Lab

Project oriented hands-on approach lab to accompany CS 106. Mandatory first day attendance.

CS 109 Smart Phone and Wireless Tech

Smart phone hardware, operating systems and applications together with a review of current and emerging wireless Technologies. Accompanying lab is required.

CS 199 Spec Topics

Selected topics in Computer Science. This course may or may not have a laboratory component.

CS 199L Special Topics Lab

Project oriented hands-on approach lab. Mandatory first day of attendance.

CS 201 Intro Obj Orient Programming

Fundamental concepts of object-oriented programming. Syntax and semantics of Java, an object-oriented programming language. Principles of program design and algorithm development strategies. Classes, abstract data types, arrays, flow control, modular decomposition, overloading, exception handling, debugging, I/O, applets. This class has a laboratory component that encourages inquiry-based learning.

Prerequisites: Undergraduate level MA 102 Minimum Grade of C or Undergraduate level MA 105 Minimum Grade of C or Undergraduate level MA 106 Minimum Grade of C or Undergraduate level MA 107 Minimum Grade of C or Undergraduate level MA 125 Minimum Grade of C or Undergraduate level MA 126 Minimum Grade of C or Undergraduate level MA 227 Minimum Grade of C

CS 201L Intro to Obj-Orient Prog Lab

Project oriented hands-on approach.

CS 250 Discrete Structures

Discrete mathematics for computer science, including elementary propositional and predicate logic, sets, relations, functions, counting, elementary graph theory, proof techniques including proof by induction, proof by contradiction, and proof by construction.

 

Prerequisites: Undergraduate level MA 106 Minimum Grade of C or Undergraduate level MA 107 Minimum Grade of C or Undergraduate level MA 125 Minimum Grade of C or Undergraduate level MA 126 Minimum Grade of C or Undergraduate level MA 227 Minimum Grade of C

CS 299 Spec Topics

Selected topics in Computer Science.

CS 302 Object-Oriented Design

CS 302 is a continuation of CS 201 and emphasizes concepts of object oriented software design. Topics include inheritance, recursion algorithm analysis, sorting algorithms, graphs, hash tables, and linked list data structures such as stacks, queues, and binary trees. This course has a laboratory component.

Prerequisites: Undergraduate level CS 201 Minimum Grade of C

CS 302L Object-Oriented Design Lab

Project oriented hands-on approach.

CS 303 Algorithms and Data Structures

Efficient design of data structures, recursive algorithms, algorithms for sorting and searching, complexity analysis of algorithms, applications of algorithms and data structures in problems, state spaces, and search strategies in artificial intelligence. This course has a laboratory component.
Prerequisites: Undergraduate level CS 250 Minimum Grade of C and Undergraduate level CS 302 Minimum Grade of C

CS 303L Algorithms/Data Structure Lab

Project oriented hands-on approach.

CS 304 Object-Oriented Program C++

Syntax, semantics, and concepts of C++ programming, templates, parametrized classes, generic programming, standard template library.

Prerequisites: Undergraduate level CS 302 Minimum Grade of C

CS 306 Perl Programming

Perl data structures and syntax. Flow control, functions, scoping, regular expressions, pattern matching, files and data, references, libraries and modules, program composition. Object-Oriented Programming. Multidimensional data. Networking. Module development. CGI and other third-party modules. Best practices.
Prerequisites: Undergraduate level CS 302 Minimum Grade of C

CS 307 Advanced Perl Programming

Object-Oriented Programming. Complex data structures. Closures. Ties. Module development. CGI, DBI and other third-party modules. mod_perl. Networking. Persistent data. Interfacing with other languages.
Prerequisites: Undergraduate level CS 306 Minimum Grade of C

CS 330 Comp Organiz/Assembly-Lang

Register-level architecture of modern digital computer systems, addressing techniques, program segmentation and linkage,digital logic, machine-level representation of data, assembly-level machine organization and instruction execution, and alternative architectures.
Prerequisites: Undergraduate level CS 250 Minimum Grade of C and Undergraduate level CS 302 Minimum Grade of C

CS 333 UNIX Operating Sys Fundamental

Unix architecture, concepts, and principles; shell concepts and principles filters, I/O redirection, environment, process management, runtime architecture.
Prerequisites: Undergraduate level CS 302 Minimum Grade of C

CS 334 Internetworking with TCP/IP

Underlying network technology. Interconnecting networks using bridges and routers. IP addresses and datagram formats. Static and dynamic routing algorithms. Control messages. Subnet and supernet extensions. UDP and TCP. File transfer protocols. E-mail and the World Wide Web. Network address translation and firewalls. Mandatory weekly Linux-based lab.

Prerequisites: Undergraduate level CS 250 Minimum Grade of C

CS 334L Internetwork w TCP/IP Lab

Project oriented hands-on approach. Mandatory first day of class.

CS 336 Computer Network Security

Conventional and public-key cryptography. Message encryption and authentication. Secure communication between computers in a hostile environment, including E-mail (PGP), virtual private networks (IPSec) and the World Wide Web (SSL). Firewalls. Mandatory weekly Linux-based lab must be taken concurrently.

Prerequisites: Undergraduate level CS 250 Minimum Grade of C

CS 336L Computer Network Security Lab

Project oriented hands-on approach.

CS 350 Automata/Formal Lang theory

Finite-state automata and regular expressions, context-free grammars and pushdown automata, Turing machines, computability and decidability, and complexity classes.

Prerequisites: Undergraduate level CS 250 Minimum Grade of C and Undergraduate level MA 125 Minimum Grade of C

CS 391 Special Topics

Selected Topics in Computer Science.

CS 392 Special Topics

Selected Topics in Computer Science

CS 393 Special Topics

Selected Topics in Computer Science.

CS 394 Special Topics

Selected Topics in Computer Science.

CS 395 Special Topics

Selected Topics in Computer Science.

CS 398 Undergrad Honors Resch - RES

Research project under supervision of faculty sponsor. Prerequisite: 18 semester hours in computer science with grade point average of 3.5 in computer science and permission of instructor.

CS 399 Directed Readings

Selected readings, research and project development under the direction of a faculty member.

CS 401 Programming Languages

Formal syntax and semantics; compilers and interpreters; virtual machines; representation of data types; sequence and data control; type checking; run-time storage management; functional, logic, and object-oriented programming paradigms; concurrency and multi-threading.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C and Undergraduate level CS 350 Minimum Grade of C

CS 402 Compiler Design

Lexical and syntactical scan, semantics, code generation and optimization, dataflow analysis, parallelizing compilers, automatic compiler generation.
Prerequisites: Undergraduate level CS 401 Minimum Grade of C

CS 410 Database Management Systems

Relational model of databases, structured query language, normalized structure of database management systems based on relational model, and security and integrity of databases.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 415 Multimedia Databases

This course introduces the principles of multimedia databases including multimedia information processing, modeling, and retrieval. The media to be considered include text, image, audio and video. At the conclusion of this course, the students should understand what multimedia data retrieval is, the principles, which allow the location of relevant information from amongst a large corpus of multimedia data, and the applications of multimedia information retrieval. The students should also have the expertise and competence to design and implement retrieval software for multimedia data.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 420 Software Engineering

Design and implementation of large-scale software systems, software development life cycle, software requirements and specifications, software design and implementation, verification and validation, project management and team-oriented software development.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C and Undergraduate level CM 101 Minimum Grade of C and Undergraduate level PHL 115 Minimum Grade of C

CS 425 Metrics and Performance

Computer Systems addressed in this course primarily are web based systems and capacity planning is a principal theme. However, the queueing theory and statistical analysis approaches are applicable to conventional computing systems and, in fact, modeling of these latter constitute relevant background information that is developed and exploited for web systems analysis.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 430 Computer Systems

Introduction to computer architecture, including memory subsystems, direct-mapped and set-associative cache and multi-level cache subsystems, direct- access devices including RAID and SCSI disk drives, processor pipelining including super-scalar and vector machines, parallel architectures including SMP, NUMA and distributed memory systems, Interrupt mechanisms, and future microprocessor design issues.
Prerequisites: Undergraduate level CS 330 Minimum Grade of C

CS 431 Distributed Computing

Introduction to distributed systems, distributed hardware and software concepts, communication, processes, naming, synchronization, consistency and replication, faulty tolerance, security, client/server computing, web technologies, enterprise technologies.
Prerequisites: Undergraduate level CS 330 Minimum Grade of C

CS 432 Parallel Computing

Introduction to parallel computing architectures and programming paradigms.Theoretical and practical aspects of parallel programming and problem solving. Design, development, analysis, and evaluation of parallel algorithms.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C and Undergraduate level CS 330 Minimum Grade of C or Undergraduate level MA 360 Minimum Grade of C

CS 433 Operating Systems

Internal design and operation of a modern operating system, including interrupt handling, process scheduling, memory management, virtual memory, demand paging, file space allocation, file and directory management, file/user security and file access methods.
Prerequisites: Undergraduate level CS 330 Minimum Grade of C

CS 434 Virtualization

Theory and practice of virtualization. Origins, history, technical and economic motivations. Relationship to network operating systems and operating system architecture. Simulation, Emulation, Virtualization of CPUs, networks, storage, desktops, memory, devices, and combinations thereof. Different approaches to virtualization, including hardware assists and software-only techniques. Techniques, approaches, and methodologies for scale-out and scale-up computing, including security, performance and economic concerns.
Prerequisites: (Undergraduate level CS 333 Minimum Grade of C or Undergraduate level CS 433 Minimum Grade of C) and Undergraduate level CS 430 Minimum Grade of C

CS 435 Network Programming

Remote procedure call and client-server mechanisms. Protocol definition and compilation; client and server stubs and application code; transport independence; multiple client and server systems. Applications, e.g., remote database query and update and image filtering and archiving; systems programming and file systems contexts.
Prerequisites: Undergraduate level CS 330 Minimum Grade of C

CS 436 Computer Security

Study of computer security including assurance, authorization, authentication, key distribution, encryption, threats including phishing and key logging, and related distributed computing issues. Theory and practical applications.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C and Undergraduate level CS 330 Minimum Grade of C

CS 437 Cybercrime & Forensics

Overview of all aspects of media forensics inclunding analysis of character encoding, file formats and digital media, examination of disk acquisition and duplication techniques and application of these techniques in criminal investigations scenarios.

Prerequisites: Undergraduate level CS 303 Minimum Grade of C and Undergraduate level CS 330 Minimum Grade of C

CS 440 Bioinformatics I

Introduction to computational methodologies in bioinformatics.

Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 441 Bioinformatics II

Introduction to computational methodologies in Bioinformatics.
Prerequisites: Undergraduate level CS 440 Minimum Grade of C

CS 447 Biomedical Modeling

Modeling from biomedical datasets. Acquisition, segmentation; registration and fusion; construction of shape models; measurement; modeling vascular structure; surgical simulation; image-guided surgery; medical illustration. Prerequisites: CS 303, MA 125, MA 126, MA 260 or MA 434.

Prerequisites: Undergraduate level CS 303 Minimum Grade of C and Undergraduate level MA 126 Minimum Grade of C and Undergraduate level MA 260 Minimum Grade of C or Undergraduate level MA 434 Minimum Grade of C

CS 455 Probability & Statistics in CS

Introduction to Probability and Statistics with applications in Computer Science. Counting, permutations and combinations. Probability, conditional probability, Bayes Theorem. Standard probability distributions. Measures of central tendency and dispersion. Central Limit Theorem. Regression and correlation. Hypothesis testing. Random number generation. Random algorithms. Estimating probabilities by simulation. Genetic algorithms.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 460 Prin Artificial Intelligence

Problem-solving methods in artificial intelligence and heuristic programming; models of memory and cognition.
Prerequisites: Undergraduate level CS 330 Minimum Grade of C and Undergraduate level CS 350 Minimum Grade of C

CS 462 Natural Language Processing

Introduction to natural language and computational linguistics; topics include part-of-speech tagging, syntactic parsing, semantic analysis, speech recognition, machine translation, sequence labeling algorithms, n-gram language models, statistical parsing, grammar formalisms and tree banks.

Prerequisites: Undergraduate level CS 350 Minimum Grade of C and (Undergraduate level CS 455 Minimum Grade of C or Undergraduate level CS 460 Minimum Grade of C)

CS 466 Games and Puzzles Seminar

Interfaces and Engines for games and puzzles such as Chess, Checkers, Othello, Rubik's Cube, Go, Sudoku, etc.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 470 Computer Graphics

Graphics architectures, geometric transforms, 3-D, object models, shading, intensity, hidden elements, color, advanced topics.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C and Undergraduate level MA 125 Minimum Grade of C

CS 473 Computer Vision & Image Proces

Digital image processing and analysis, edge and region operations, morphological filters, spectra techniques object recongnition and description.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 475 Visualization

Advanced Computer Graphics techniques aimed at "scientific visualization" applications.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 481 Simul Models and Animations

Model Development using popular simulation languages, e.g., GPSS-H (with an introduction to SLX) interfacing to statistical and graphical systems e. g.,Excel, Open Office, or Calc Spreadshet; interfacing to an animation systems such as Proof Animation or Open GL.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 482 Simulation Methodology & Appli

Foundations for computer modeling and simulation, with accent on discrete systems: random number and process generation; statistical bases with probability and frequency distribution orientation; Monte Carlo experimentsand general purpose modeling, e.g., in SLX.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C and Undergraduate level MA 125 Minimum Grade of C

CS 491 Special Topics

Special Topics in Computer Science.
Prerequisites: Undergraduate level CS 303 Minimum Grade of C

CS 492 Special Topics

Special Topics in Computer Science.

CS 493 Special Topics

Special Topics in Computer Science.

CS 494 Special Topics

Special Topics in Computer Science.

CS 495 Special Topics

Special Topics in Computer Science.

CS 496 Research Seminar

Participation in research seminar directed by a faculty member.

CS 497 Competitive Program Techniques

Problem Solving techniques and algorithms, designed to prepare students for ACM programming contest, three-course sequence starting in Spring.

CS 499 Senior Capstone

 A Capstone course comprising a series of lectures spanning the CIS curriculum by faculty and guest lectures on key topics in computer science together with lecture and in-depth discussion on computer ethics: further lectures and material on scientific inquiry, quantitative literacy and problem solving, all as they relate to the computer science field. Students take the Major Field Test in Computer Science as a requirement for completing this course. Writing is a significant part of this course, including term papers, and other significant writing assignments.

Prerequisites: Undergraduate level CM 101 Minimum Grade of C and Undergraduate level PHL 115 Minimum Grade of C

CS A1 CS Major Elective

Computer Science Major Elective - 100 level

CS A2 CS Major Elective

Computer Science Major Elective - 200 level

CS A3 CS Major Elective

Computer Science Major Elective - 300 level

CS A4 CS Major Elective

Computer Science Major Elective - 400 level



Accent Right