 |
 |
|
 |
|
|
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.
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.
Project oriented hands-on approach lab to accompany CS 101. Mandatory first day attendance.
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.
Project oriented hands-on approach.
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.
Project oriented hands-on approach lab to accompany CS 106. Mandatory first day attendance.
Smart phone hardware, operating systems and applications together with a review of current and emerging wireless Technologies. Accompanying lab is required.
No description available.
Selected topics in Computer Science. This course may or may not have a laboratory component.
Project oriented hands-on approach lab. Mandatory first day of attendance.
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
Project oriented hands-on approach.
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
Selected topics in Computer Science.
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
Project oriented hands-on approach.
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
Project oriented hands-on approach.
Syntax, semantics, and concepts of C++ programming, templates, parametrized classes, generic programming, standard template library.
Prerequisites:
Undergraduate level CS 302 Minimum Grade of C
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
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
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
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
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
Project oriented hands-on approach. Mandatory first day of class.
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
Project oriented hands-on approach.
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
Selected Topics in Computer Science.
Selected Topics in Computer Science
Selected Topics in Computer Science.
Selected Topics in Computer Science.
Selected Topics in Computer Science.
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.
Selected readings, research and project development under the direction of a faculty member.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Introduction to computational methodologies in bioinformatics.
Prerequisites:
Undergraduate level CS 303 Minimum Grade of C
Introduction to computational methodologies in Bioinformatics.
Prerequisites:
Undergraduate level CS 440 Minimum Grade of C
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
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
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
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)
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
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
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
Advanced Computer Graphics techniques aimed at "scientific visualization" applications.
Prerequisites:
Undergraduate level CS 303 Minimum Grade of C
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
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
Special Topics in Computer Science.
Prerequisites:
Undergraduate level CS 303 Minimum Grade of C
Special Topics in Computer Science.
Special Topics in Computer Science.
Special Topics in Computer Science.
Special Topics in Computer Science.
Participation in research seminar directed by a faculty member.
Problem Solving techniques and algorithms, designed to prepare students for ACM programming contest, three-course sequence starting in Spring.
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
Computer Science Major Elective - 100 level
Computer Science Major Elective - 200 level
Computer Science Major Elective - 300 level
Computer Science Major Elective - 400 level
|
|
 |