Department of Computer and Information Sciences

http://www.cis.uab.edu

Chair: Anthony Skjellum

The Department of Computer and Information Sciences (CIS) offers a B.S. major and a minor in CIS. The B.S. degree in CIS is accredited by the Computing Accreditation Commission of ABET, www.abet.org.  The CIS major is designed to give students a broad background in the structure and theory of information, programming methodologies, and the hardware and software of computer systems. There is also a concentration that offers an opportunity for specialization in computer networking. Minors are available for students who are not CIS majors but who expect to use the computer in the application area of their major field. The Department is especially interested in students getting job-related experience and training through internships and co-operative education opportunities with local and regional high technology companies. Also, the undergraduate majors are sufficiently flexible such that majors or minors in complementary areas such as business can be accomplished within the normal degree time frame. For more information, see the CIS department web site at cis.uab.edu

Additional Requirements for Admission to CIS Undergraduate Program

Undergraduate Admission Requirements

To be admitted to the CIS program incoming students must satisfy the following requirements in addition to general requirements for admission to UAB listed in the Undergraduate Catalog:

  • placed at or above Pre-Calculus Algebra MA 105 in the UAB Math Placement Exam
  • eligible for enrolling in English Composition I  EH 101

Students who do not satisfy the above requirements but are still interested in the CIS program should complete the required course(s) to satisfy the requirement(s) as a Liberal Arts major in the College of Arts and Sciences and then submit an application to be a CIS major after successfully completing the requirement(s).

Requirements for students transferring to the CIS major from other programs within UAB

Students admitted to an undergraduate program at UAB may transfer to CIS provided they have completed the Math and English prerequisites for registering as noted above, and have earned a UAB GPA of 2.0 or better.

Requirements for students transferring to the CIS major from other institutions

Transfer students from other institutions may transfer to the CIS program provided they have completed the math prerequisites for registering  (either for CS 201 or CS 250, or higher), completed English Composition 101, and have earned a GPA of 2.0 or better. If the above requirements are not met, transfer students must transfer as a Liberal Arts major in the College of Arts and Sciences, complete the above requirements, meet the GPA requirement, and then apply to become a CIS major.

Major in Computer and Information Sciences (CIS)

The major in computer and information sciences requires 48 semester hours of CIS courses at the 200 level or above with a grade point average of at least 2.2 and a grade of C or better in each of the required computer and information sciences courses. If a student receives a grade D or F in any CIS course, then the student will only be allowed one chance to retake that course and pass it (grade C or better). CIS courses taken at another institution for which a grade of D was received may not be counted toward the CIS major or the CIS minor.

All CIS majors must maintain a GPA of 2.2 or better in all CIS courses taken. If the CIS GPA falls below 2.2, then the student will be put on probation and student must raise his or her CIS GPA to 2.2 or above within a year after being placed on probation. At the end of the probation term, if the CIS GPA is not at or above 2.2, then the student will be dismissed from the major, and be reclassified as an undeclared major in the College of Arts and Sciences. Note that this requirement is in addition to the minimum UAB GPA of 2.0 or better required to be in good standing. A student who is dismissed from the CIS major as described here may reapply to be CIS major provided the student has raised his or her CIS GPA to 2.2 or higher and also has a UAB GPA to 2.0 or better.

At least 12 semester hours of CIS courses at the 300 level or above must be taken at UAB. Any CIS course at the 300 level or above can be taken to satisfy the 12 semester hour CIS elective credit. CIS courses at the 400-level and above are normally restricted to CIS Majors.  Non-majors may register for such courses only with the specific permission of the specific course Instructor.

A maximum of 3 semester hours credit may be obtained in Directed Readings. Although not required, computer and information sciences majors have the option to structure their 12 semester hours of CIS program electives as a specialization in Computer Networking. Course substitutions may be made within this specialization with CIS advisor approval. 

Minor

A computer and information sciences minor requires the completion of 21 semester hours of CIS courses at the 200 level or above, including 14 semester hours at the 300 level or above. A minimum of 6 semester hours in CIS at the 200 level or above must be taken at UAB. A student must obtain a grade of C or better in all courses.  

Graduate Programs

The Department of Computer and Information Sciences offers graduate study leading to the Master of Science and Doctor of Philosophy degrees. Further information may be obtained from the department or the UAB Graduate School Catalog. Advanced undergraduates with a CIS GPA of 3.0 or better may take graduate courses with the permission of the instructor.

See the UAB Graduate School Catalog for descriptions of graduate courses. 

 Major Requirements for Computer and Information Sciences (CS)

RequirementsHours
Mathematics Requirements 1, 2
MA 125Calculus I4
MA 126Calculus II4
Select two of the following:6-7
Calculus III
Introduction to Differential Equations
Introduction to Linear Algebra
Scientific Programming 3
Algebra I: Linear
Advanced Calculus I
Vector Analysis
Complex Analysis
Operations Research I
Differential Geometry I
Geometry I
Introduction to Topology I
Probability
Natural Sciences Requirement
12 semester hours are required in two different laboratory science, including a two course sequence, choose from the following:12
Introductory Biology I
   and Introductory Biology II
General Chemistry I
   and General Chemistry I Laboratory
General Chemistry II
   and General Chemistry II Laboratory
General Physics I
   and General Physics II
Required Computer and Information Sciences Courses
CS 201Introduction to Object Oriented Programming4
CS 250Discrete Structures3
CS 302Object-Oriented Design4
CS 303Algorithms/Data Structures4
CS 330Computer Organization and Assembly Language Programming3
CS 350Automata and Formal Language Theory3
CS 401Programming Languages3
CS 420Software Engineering3
CS 433Operating Systems3
CS 455Probability and Statistics in Computer Science3
or CS 355 Probability and Statistics in Computer Science
CS 499Senior Capstone3
Computer and Information Sciences Electives
Complete twelve hours in 300-level or above Computer and Information Sciences courses (a maximum of two of the following courses may be used):12
Introduction to Microprocessors
VHDL Digital Systems Design
Scientific Programming 3
Minds and Machines
Total Hours74-75
1

A grade of "C" or better must be earned in each course.

2

Completion of MA 125 or MA 126 automatically satisfies the Area III: Mathematics Requirement.

3

 Can be counted towards either Math requirement or CS elective not both.

 

Additional Requirements

General Electives

Students must take general electives to reach the 120 semester hour requirement. These must include CMST 101 Public Speaking and PHL 115 Contemporary Moral Issues

 

Major Requirements for Computer and Information Sciences with Computer Networking Specialization

This specialization is shaped by the campus medical community and local industry relationships.

RequirementsHours
Mathematics Requirements 1, 2
MA 125Calculus I4
MA 126Calculus II4
Select two of the following:6-7
Introduction to Statistics
Calculus III
Introduction to Differential Equations
Introduction to Linear Algebra
Algebra I: Linear
Advanced Calculus I
Vector Analysis
Complex Analysis
Operations Research I
Differential Geometry I
Geometry I
Introduction to Topology I
Probability
Required Computer and Information Sciences Courses
CS 201Introduction to Object Oriented Programming4
CS 250Discrete Structures3
CS 302Object-Oriented Design4
CS 303Algorithms/Data Structures4
CS 330Computer Organization and Assembly Language Programming3
CS 350Automata and Formal Language Theory3
CS 401Programming Languages3
CS 420Software Engineering3
CS 433Operating Systems3
CS 455Probability and Statistics in Computer Science3
CS 499Senior Capstone3
Computer Networking Electives (select four courses)12
Internetworking with TCP/IP
Network Security
Database Management Systems
Distributed Systems
Network Programming
Computer Security
Cybercrime and Forensics
Security & Privacy in Cloud Computing
Total Hours62-63
1

Grade of C or better must be earned in each course. 

2

Completion of MA 125 or MA 126 automatically satisfies the Area III: Mathematics Requirement.

 

Additional Requirements

General Electives

Students must take general electives to reach the 120 semester hour requirement. These must include CMST 101 Public Speaking and PHL 115 Contemporary Moral Issues

 

Pre-Health

Students wishing to enter the Schools of Medicine, Dentistry, or Optometry after completing their undergraduate degree in computer science should complete the following sequence of courses in chemistry, biology, and physics:

RequirementsHours
Chemistry
CH 115General Chemistry I3
CH 116General Chemistry I Laboratory1
CH 117General Chemistry II3
CH 118General Chemistry II Laboratory1
CH 235Organic Chemistry I3
CH 236Organic Chemistry I Laboratory1
CH 237Organic Chemistry II3
CH 238Organic Chemistry II Laboratory1
Biology
BY 123
  & BY 124
Introductory Biology I
   and Introductory Biology II
8
Physics
Select one of the following:8
College Physics I
   and College Physics II
General Physics I
   and General Physics II

These courses should be completed prior to taking the MCAT examination at the end of the junior year. The chemistry sequence will satisfy requirements for a minor in chemistry with the exception of one additional course.  See Chemistry Minor for requirements.

Proposed Program of Study for a Major in Computer and Information Sciences

Freshman
First TermHoursSecond TermHours
CAS 1121CS 2014
MA 1254MA 1264
Laboratory Science I4Laboratory Science II4
EH 1013EH 1023
General Elective3 
 15 15
Sophomore
First TermHoursSecond TermHours
CS 2503CS 3034
CS 3024HY 1023
EH 2163Math Elective3
HY 1013Laboratory Science III4
Math Elective3 
 16 14
Junior
First TermHoursSecond TermHours
CS 3303CS 4013
CS 3503CS 4333
PHL 1153ARH 1013
SOC 100 or 2453CMST 1013
PSC 101 or 1033General Elective3
 15 15
Senior
First TermHoursSecond TermHours
CS 4203CS 4993
CS 4553CS Electives (300-400 level)6
CS Electives (300-400 level) 6General Electives6
General Elective3 
 15 15
Total credit hours: 120

 

 

Proposed Program of Study for a Major in Computer and Information Sciences with a Networking Specialization

Freshman
First TermHoursSecond TermHours
CAS 1121CS 2014
MA 1254MA 1264
EH 1013EH 1023
Laboratory Science I4Laboratory Science II4
General Elective2 
 14 15
Sophomore
First TermHoursSecond TermHours
CS 2503CS 3034
CS 3024HY 1023
EH 2163Math Elective3
HY 1013Laboratory Science III4
Math Elective3 
 16 14
Junior
First TermHoursSecond TermHours
CS 3303CS 4013
CS 3503CS 4333
PHL 1153ARH 1013
SOC 100 or 2453CMST 1013
PSC 101 or 1033General Elective3
 15 15
Senior
First TermHoursSecond TermHours
CS 4203CS 4993
CS 4553CS 3343
CS 4313CS 3363
CS 43513General Electives 7
General Electives3 
 15 16
Total credit hours: 120

1

Only one of the following courses can substitute for a networking specialization elective: CS 410, CS 481, CS 482


 


Minor in Computer and Information Sciences

A computer and information sciences minor requires 21 hours from 200-level or higher Computer and Information Sciences (CS) courses, including 14 hours above the 300-level.

  • A minimum of six hours must be taken at UAB.
  • A grade of C or better is required for all courses for the minor.
     

 Minor Requirements for Computer and Information Sciences

RequirementsHours
CS 201Introduction to Object Oriented Programming4
CS 250Discrete Structures3
CS 302Object-Oriented Design4
CS 303Algorithms/Data Structures4
CS 330Computer Organization and Assembly Language Programming3
Select any other CS course at 300 - 400 level:3
Total Hours21

Honors Program: Computer and Information Sciences

Purpose

The Computer and Information Sciences Honors Program offers outstanding, highly motivated students the opportunity to develop research skills in preparation for graduate work or a professional career.

Eligibility

In order to be accepted into the Computer and Information Sciences Honors program, a student must:

  • have earned a 3.5 GPA in computer and information sciences (CS) courses;
  • have earned a 3.0 GPA overall;
  • have completed 18 semester hours in CS courses;
  • have enrolled in Undergraduate Honors Research (CS 398) for at least 1 semester hour; and
  • have arranged with a faculty sponsor in Computer and Information Sciences to do a research project.

Requirements

Students in the Computer and Information Sciences Honors Program will be required to have the following:

  • a minimum of 3 semester hours in Undergraduate Honors Research (CS 398) with each semester hour involving a minimum of three hours of laboratory work per week during the semester of enrollment;
  • a formal research proposal submitted by the end of the first term of Honors Research, including an introduction, proposed methods, and relevant literature citation;
  • a formal written report in the form of a scientific paper; and
  • an oral or poster presentation at a Computer and Information Sciences departmental seminar.

In some instances, it will be recommended or required that Computer and Information Sciences Honors students give a formal presentation of their work at a scientific meeting.

Benefits

In addition to the educational and career benefits of participating in the Computer and Information Sciences Honors program, students who complete the program will graduate “With Honors in Computer and Information Sciences.”

Contact

For more information and/or admission to the Computer and Information Sciences Honors program, contact:

Dr. Anthony Skjellum
1300 University Blvd. Room 115A, Campbell Hall
Birmingham, AL 35294-1170
Telephone (205) 934-2213

E-mail: tony@cis.uab.edu
Web site: http://www.cis.uab.edu/undergrad

Courses

CS 100. Computational Thinking I. 4 Hours.

Fundamental concepts of programming. Syntax and semantics of basic Java. Built-in data types, arrays, flow control, functions, overloading, I/O. Use of computational thinking and computer programming as problem solving tools in all disciplines. This course has a laboratory component. Writing is a significant component of this course (QEP). This course may be taken as a terminal course by non-CIS majors or in sequence with CS 200 as a substitute for CS 201 for CIS majors.

CS 100L. Computational Thinking I Laboratory. 0 Hours.

Project oriented hands-on approach lab to accompany CS 100.

CS 101. Fluency With Information Technology. 3 Hours.

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 With Information Technology Laboratory. 0 Hours.

Project oriented hands-on approach lab to accompany CS 101.

CS 109. Smart Phone and Wireless Technology. 3 Hours.

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

CS 109L. Smart Phone Wireless Technology Laboratory. 0 Hours.

Project oriented hands-on approach to accompany CS 109.

CS 199. Special Topcs: Outreach Training. 1-3 Hour.

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

CS 199L. Special Topics Lab. 0 Hours.

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

CS 200. Computational Thinking II. 4 Hours.

Fundamental concepts of object oriented programming. Syntax and semantics of advanced Java, an object oriented programming language. Principles of program design and algorithm development strategies. Classes, abstract data types, exception handling, debugging. Use of computational thinking and computer programming as problem solving tools in all disciplines. This course has a laboratory component. Writing is a significant component of this course (QEP). This course, in sequence with CS100, may be taken as a terminal course by non-CIS majors. Students may not take BOTH CS200 and CS201.
Prerequisites: CS 100 [Min Grade: C]

CS 200L. Computational Thinking II Laboratory. 0 Hours.

Project oriented hands-on approach lab to accompany CS 200.

CS 201. Introduction to Object Oriented Programming. 4 Hours.

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, functions, overloading, exception handling, debugging, I/O applets. This course has a laboratory component. Writing is a significant component of this course (QEP).
Prerequisites: MA 105 [Min Grade: C] or MA 106 [Min Grade: C] or MA 107 [Min Grade: C] or MA 125 [Min Grade: C] or MA 126 [Min Grade: C] or MA 227 [Min Grade: C]

CS 201L. Introduction to Object Oriented Programming Laboratory. 0 Hours.

Project oriented hands-on approach to accompany CS 201.

CS 250. Discrete Structures. 3 Hours.

Discrete mathematics for computer science, including elementary propositional andpredicate logic, sets, relations, functions, counting, elementary graph theory, proof techniques including proof by induction, proof by contradiction, and proof by construction.
Prerequisites: MA 106 [Min Grade: C] or MA 107 [Min Grade: C] or MA 125 [Min Grade: C] or MA 126 [Min Grade: C] or MA 227 [Min Grade: C]

CS 299. Special Topics in Computer Science. 1-3 Hour.

Selected topics in Computer Science.

CS 302. Object-Oriented Design. 4 Hours.

CS302 is a continuation of CS201 and emphasizes concepts of object-oriented software design (OOD). Topics include recursion, inheritance, generics, class design, container classes, user interfaces, design patterns, and frameworks for reflection, parallelism, and networking. This course has a laboratory component.
Prerequisites: CS 201 [Min Grade: C] or CS 200 [Min Grade: C]

CS 302L. Object-Oriented Design Laboratory. 0 Hours.

Project oriented hands-on approach to accompany CS 302.

CS 303. Algorithms/Data Structures. 4 Hours.

Techniques for design and analysis of algorithms; efficient algorithms for sorting, searching, graphs, and string matching; and design techniques such as divide-and-conquer, recursive backtracking, dynamic programming, and greedy algorithms.
Prerequisites: CS 250 [Min Grade: C] and CS 302 [Min Grade: C]

CS 303L. Algorithms and Data Structures Laboratory. 0 Hours.

Project oriented hands-on approach to accompany CS 303.

CS 304. Object-Oriented Programming in C++. 1 Hour.

Syntax, semantics, and concepts of C++ programming, templates, parametrized classes, generic programming, standard template library.
Prerequisites: CS 302 [Min Grade: C]

CS 305. Introduction to Python Programming. 1 Hour.

Basic syntax and data types, data structures, functions, scoping, regular expressions and pattern matching, libraries and modules, program composition, best practices. Solving practical computing problems using Python.

CS 306. Introduction To Perl Programming. 1 Hour.

Basic syntax and data types, data structures, functions, scoping, regular expressions and pattern matching, libraries and modules, program composition, best practices.
Prerequisites: CS 302 [Min Grade: C]

CS 307. Advanced Perl Programming. 3 Hours.

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: CS 306 [Min Grade: C]

CS 309. Programming in Mathematica. 1 Hour.

Syntax, semantics and concepts of programming in Mathematica: expressions, lists, patterns and rules, functional programming, procedural programming, recursion, numeric, strings, graphics and visualization, dynamic expressions, optimization, and applications.
Prerequisites: CS 201 [Min Grade: C]

CS 330. Computer Organization and Assembly Language Programming. 3 Hours.

Register-level architecture of modern digital computer systems, digital logic, machine-level representation of data, assembly-level machine organization, and alternative architectures. Laboratory emphasizes machine instruction execution, addressing techniques, program segmentation and linkage, macro definition and generation, and computer solution of problems in assembly language.
Prerequisites: CS 250 [Min Grade: C] and (CS 200 [Min Grade: C] or CS 201 [Min Grade: C])

CS 333. Unix Operating System Fundamentals. 1 Hour.

Unix architecture, concepts, and principles; shell concepts and principles filters, I/O redirection, environment, process management, runtime architecture.
Prerequisites: (CS 200 [Min Grade: C] and MA 105 [Min Grade: C]) or CS 201 [Min Grade: C]

CS 334. Internetworking with TCP/IP. 3 Hours.

Underlying network technology, including IEEE 802.11. 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: CS 250 [Min Grade: C]

CS 334L. Internetworking and Intranets Laboratory. 0 Hours.

Project oriented hands-on approach to accompany CS 334. Mandatory first day of class.

CS 336. Network Security. 3 Hours.

Conventional (symmetric and public-key cryptography). Message encryption and authentication. Secure communication between computers in a hostile environment, including E-mail (PGP), virtual private networks (IPSec), remote access (SSH), and E-commerce (SSL). Firewalls. Security of IEEE 802.11 wireless networks (WEP, WPA). Mandatory weekly Linux-based lab.
Prerequisites: CS 334 [Min Grade: C]

CS 336L. Network Security Laboratory. 0 Hours.

Project oriented hands-on approach to accompany CS 336.

CS 350. Automata and Formal Language Theory. 3 Hours.

Finite-state automata and regular expressions, context-free grammars and pushdown automata, computability.
Prerequisites: CS 250 [Min Grade: C] and MA 125 [Min Grade: C]

CS 355. Probability and Statistics in Computer Science. 3 Hours.

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. Hypothesis testing. Random number generation. Random algorithms. Estimating probabilities by simulation.
Prerequisites: (CS 200 [Min Grade: C] or CS 201 [Min Grade: C]) and CS 250 [Min Grade: C]

CS 391. Special Topics. 1-3 Hour.

Selected Topics in Computer Science.

CS 392. Special Topics. 1-3 Hour.

Selected Topics in Computer Science.

CS 393. Special Topics. 1-3 Hour.

Selected Topics in Computer Science.

CS 394. Special Topics. 1-3 Hour.

Selected Topics in Computer Science.

CS 395. Special Topics. 1-3 Hour.

Selected Topics in Computer Science.

CS 398. Undergraduate Honors Research. 1-3 Hour.

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

CS 399. Directed Readings. 1-3 Hour.

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

CS 401. Programming Languages. 3 Hours.

Study major programming paradigms, their realization in programming languages, and their impact on application design and implementation.
Prerequisites: CS 303 [Min Grade: C] and CS 350 [Min Grade: C]

CS 402. Compiler Design. 3 Hours.

Study the design and implementation of compilers, including front-end (lexer, parser, type checking), to mid-end (intermediate representations, control-flow analysis, dataflow analysis, and optimizations) to back-end (code generation). Students will get hands-on experience by implementing several compiler components.
Prerequisites: CS 401 [Min Grade: C]

CS 410. Database Management Systems. 3 Hours.

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

CS 415. Multimedia Databases. 3 Hours.

Multimedia information processing, multimedia database architecture, multimedia database retrieval, semantic models for multimedia databases.
Prerequisites: CS 303 [Min Grade: C]

CS 420. Software Engineering. 3 Hours.

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. Writing and Ethics and Civic Responsibility are significant components of this course (QEP).
Prerequisites: CS 303 [Min Grade: C] and (CM 101 [Min Grade: C] or CMST 101 [Min Grade: C]) and PHL 115 [Min Grade: C]

CS 425. Metrics and Performance. 3 Hours.

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: CS 303 [Min Grade: C]

CS 430. Computer Architecture. 3 Hours.

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: CS 330 [Min Grade: C]

CS 431. Distributed Systems. 3 Hours.

Introduction to distributed systems, distributed hardware and software concepts, communication, processes, naming, synchronization, consistency and replication, fault tolerance, security, client/server computing, web technologies, enterprise technologies.
Prerequisites: CS 303 [Min Grade: C] and CS 330 [Min Grade: C]

CS 432. Parallel Computing. 3 Hours.

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: (CS 303 [Min Grade: C] and CS 330 [Min Grade: C]) or MA 360 [Min Grade: C]

CS 433. Operating Systems. 3 Hours.

Introduction to operating systems. This course looks at the internal design and operation of a modern operating system. Topics include interrupt handling, process scheduling, memory management, virtual memory, demand paging, file space allocation, file and directory management, file/user security and file access methods. Several comparisons among current operating systems are used, with attention to Windows and Unix in particular.
Prerequisites: CS 330 [Min Grade: C]

CS 434. Virtualization. 3 Hours.

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: CS 433 [Min Grade: C]

CS 435. Network Programming. 3 Hours.

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: CS 334 [Min Grade: C]

CS 436. Computer Security. 3 Hours.

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: CS 303 [Min Grade: C] and CS 330 [Min Grade: C]

CS 437. Cybercrime and Forensics. 3 Hours.

Fundamental concepts of bioinformatics and use of bioinformatics tools from the viewpoint of a bioinformaticist/biologist. Introduction to bioinformatics algorithms. This course is the first of a two-course sequence CS440/CS441 that is designed to provide an introduction to selected topics in bioinformatics. This course will emphasize the use of bioinformatics tools as well as the underlying algorithms, but it is not a programming course. Writing is an integral part of this course.
Prerequisites: CS 303 [Min Grade: C] and CS 330 [Min Grade: C]

CS 440. Bioinformatics I. 3 Hours.

Introduction to computational methodologies in bioinformatics.
Prerequisites: CS 303 [Min Grade: C]

CS 441. Bioinformatics II. 3 Hours.

Introduction to bioinformatics algorithms. This course is the second of a two-course sequence CS440/CS441 that is designed to provide an introduction to bioinformatics. This course will emphasize the implementation of fundamental bioinformatic algorithms. It is a programming course. Writing and oral presentations are integral parts of this course. Students are required to document their programs and provide oral presentations describing the design and implementation of global alignments, local alignments, the use of amino acid substitution matrices and BLAST.
Prerequisites: CS 440 [Min Grade: C]

CS 443. Security & Privacy in Cloud Computing. 3 Hours.

This course focuses on the security and privacy issues in Cloud Computing systems. While the cloud computing paradigm gains more popularity, there are many unresolved issues related to confidentiality, integrity, and availability of data and computations involving a cloud. In this course, we examine cloud computing models, look into the threat model and security issues related to data and computation outsourcing, and explore practical applications of secure cloud computing.
Prerequisites: CS 401 [Min Grade: C]

CS 444. Network Forensics. 3 Hours.

This course covers concepts and methods involved in unraveling network intrusions, DDOS, and other untoward network behavior.
Prerequisites: CS 303 [Min Grade: C] and CS 336 [Min Grade: C]

CS 447. Biomedical Modeling. 3 Hours.

Modeling and analysis of biomedical datasets. Aspects of image processing and shape modeling related to biomedical datasets, morphometry, alignment, surgical planning, case studies.
Prerequisites: CS 303 [Min Grade: C]

CS 455. Probability and Statistics in Computer Science. 3 Hours.

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: CS 303 [Min Grade: C]

CS 460. Principles in Artificial Intelligence. 3 Hours.

This course will provide an introduction to fundamental concepts in the field of artificial intelligence. Topics typically covered include agents, search, logic and knowledge representation, probabilistic models, machine learning, natural language processing and perception.
Prerequisites: CS 303 [Min Grade: C] and CS 350 [Min Grade: C]

CS 462. Natural Language Processing. 3 Hours.

This course provides a broad introduction to Natural Language Processing (Computational Linguistics). Topics typically covered in this course 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 treebanks.
Prerequisites: (CS 350 [Min Grade: C] and CS 355 [Min Grade: C]) or CS 460 [Min Grade: C]

CS 466. Games and Puzzles Seminar. 1 Hour.

Interfaces and Engines for games and puzzles such as Chess, Checkers, Othello, Rubik's Cube, Go, Sudoku, etc.
Prerequisites: CS 303 [Min Grade: C]

CS 467. Machine Learning. 3 Hours.

Introduction to machine learning, the design of algorithms that can make predictions about the future based on past experience. Emphasizes practical considerations for developing efficient and accurate machine learning models, and theoretical underpinnings of different learning algorithms.
Prerequisites: (CS 355 [Min Grade: C] and CS 303 [Min Grade: C]) or CS 460 [Min Grade: C]

CS 470. Computer Graphics. 3 Hours.

Graphics architectures, geometric transforms, 3-D, object models, shading, intensity, hidden elements, color, advanced topics.
Prerequisites: CS 303 [Min Grade: C] and MA 125 [Min Grade: C]

CS 473. Computer Vision/Image Process. 3 Hours.

Digital image processing and analysis, edge and region operations, morphological filters, spectra techniques object recongnition and description.
Prerequisites: CS 303 [Min Grade: C]

CS 474. 3D Printing. 3 Hours.

3D Printing : design, materials, and aesthetics. Students will do projects which result in unique artifacts created by 3D printing. Multi-disciplinary teams are encouraged. Societal and legal implications.

CS 475. Visualization. 3 Hours.

Advanced Computer Graphics techniques aimed at "scientific visualization" applications.
Prerequisites: CS 303 [Min Grade: C]

CS 481. Simulation Models and Animations. 3 Hours.

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: CS 303 [Min Grade: C]

CS 482. Simulation Methodology and Applications. 3 Hours.

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: CS 303 [Min Grade: C] and MA 125 [Min Grade: C]

CS 491. Special Topics. 3 Hours.

Special Topics in Computer Science.
Prerequisites: CS 303 [Min Grade: C]

CS 492. Special Topics. 3 Hours.

Special Topics in Computer Science.

CS 493. Special Topics. 3 Hours.

Special Topics in Computer Science.

CS 494. Special Topics. 3 Hours.

Special Topics in Computer Science.

CS 495. Special Topics. 3 Hours.

Special topics in computer science.

CS 496. Research Seminar. 1 Hour.

Participation in research seminar directed by a faculty member.

CS 497. Competitive Programming Techniques. 1 Hour.

This course will help students to be more competitive in the ACM programming contest by exploring numerous problem solving techniques and algorithms not covered in the traditional curriculum.
Prerequisites: CS 250 [Min Grade: C]

CS 499. Senior Capstone. 3 Hours.

In this course, students will discuss topics relating to ethics in Computer Science. In a software engineering project, students will work in a team to put to practice principles and techniques that they have acquired throughout the undergraduate curriculum. A series of lectures on key topics in Computer Science given by faculty members and guest lecturers will round out the course. Students take the Major Field Test in Computer Science as a requirement for completing this course.
Prerequisites: CM 101 [Min Grade: C] and PHL 115 [Min Grade: C]

Faculty

Bangalore, Purushotham, Associate Professor; Graduate Program Director Computer and Information Sciences, 2003, B.E. (Bangalore-India), M.S., Ph.D. (Mississippi State)
Barnard, Anthony C. L., Professor Emeritus of Computer and Information Sciences, 1968, B.S. (Birmingham, England), M.B.A. (UAB), Ph.D., D.Sc. (Birmingham, England)
Bethard, Steven J., Assistant Professor of Computer and Information Sciences, 2013, B.A., B.S. (Arizona), Ph.D. (Colorado)
Hasan, Ragib, Assistant Professor of Computer and Information Sciences, 2011, B.S. (Bangladesh), M.S., Ph.D. (Illinois Urbana-Champaign)
Hill, Aubrey, Research Assistant Professor of Computer and Information Sciences, 2000, M.S. (Mississippi State), M.S. (Jackson State), Ph.D. (UAB)
Hyatt, Robert M., Associate Professor of Computer and Information Sciences, 1988, B.S., M.S. (Southern Mississippi), Ph.D. (UAB)
Johnstone, John K., Associate Professor of Computer and Information Sciences, 1994, B.S. (Saskatchewan-Canada), M.S., Ph.D. (Cornell)
Jones, Warren T., Professor Emeritus of Computer and Information Sciences, 1979, B.S.E.E. (Georgia Institute of Technology), M.S. (Georgia State), M.S., Ph.D. (Georgia Institute of Technology), P.E. (Kentucky)
Pirkelbauer, Peter, Assistant Professor of Computer and Information Sciences), 2012, Dipl.-Ing. (Linz, Austria), MBA, Ph.D. (Texas A&M University), Compilers, Runtime Systems, High Performance Computing, Non-Blocking Software Design
Reilly, Kevin D., Professor Emeritus of Computer and Information Sciences, 1970, B.S. (Creghton), M.S. (Nebraska), Ph.D. (University of Chicago)
Saxena, Nitesh, Associate Professor of Computer and Information Sciences, 2011, B.S. (Kharagpur), M.S., Ph.D. (University of California-Irvine)
Skjellum, Anthony, Professor of Computer and Information Sciences; Chair, Department of Computer and Information Sciences, 2003, B.S., M.S., Ph.D. (California Institute of Technology)
Sloan, Kenneth, Associate Professor of Computer and Information Sciences; Associate Professor of Biomedical Engineering, 1990, Sc.B. (Brown), M.S. (Stevens Institute of Technology), Ph.D. (Pennsylvania)
Solorio, Thamar, Assistant Professor of Computer and Information Sciences, 2009, B.S. (Universidad Autónoma de Chihuahua, Mexico), M.S. (Instituto Nacional de Astrofísica,Óptica y Electrónica [INAOE], Mexico), Ph.D. (INAO, Mexico)
Sprague, Alan P., Professor of Computer and Information Sciences; Associate Professor of Medicine, 1988, B.A. (Oberlin), M.A.T. (Northwestern), M.S., Ph.D. (Ohio State)
Zhang, Chengcui, Associate Professor of Computer and Information Sciences, 2004, B.S., M.S. (Zhejiang University, China.), Ph.D. (Florida International)