🕷️ Crawler Inspector

URL Lookup

Direct Parameter Lookup

Raw Queries and Responses

1. Shard Calculation

Query:
Response:
Calculated Shard: 167 (from laksa022)

2. Crawled Status Check

Query:
Response:

3. Robots.txt Check

Query:
Response:

4. Spam/Ban Check

Query:
Response:

5. Seen Status Check

ℹ️ Skipped - page is already crawled

đź“„
INDEXABLE
âś…
CRAWLED
11 days ago
🤖
ROBOTS ALLOWED

Page Info Filters

FilterStatusConditionDetails
HTTP statusPASSdownload_http_code = 200HTTP 200
Age cutoffPASSdownload_stamp > now() - 6 MONTH0.4 months ago
History dropPASSisNull(history_drop_reason)No drop reason
Spam/banPASSfh_dont_index != 1 AND ml_spam_score = 0ml_spam_score=0
CanonicalPASSmeta_canonical IS NULL OR = '' OR = src_unparsedNot set

Page Details

PropertyValue
URLhttps://catalog.ua.edu/undergraduate/engineering/computer-science/courses/
Last Crawled2026-03-26 14:34:46 (11 days ago)
First Indexed2016-08-31 06:27:06 (9 years ago)
HTTP Status Code200
Meta TitleCourses for Computer Science | University of Alabama
Meta Descriptionnull
Meta Canonicalnull
Boilerpipe Text
CS I for Majors A first course in programming for students majoring in computer science. Language concepts include primitives, variables, sequences, function, selection, iteration and recursion. Software engineering concepts include testing and debugging. System concepts include directories, paths, files, and text editing. CS II for Majors A second course in programming for students majoring in computer science. Using a high-level language, students use object-oriented practices to study fundamental data structures and algorithms. Issues such as computability, problem complexity and algorithm analysis, efficient searching and sorting, data structures, and the object-oriented programming paradigm are introduced and explained. Computing proficiency is required for a passing grade in this course. Computer Applications Familiarization with Windows, fundamental and intermediate word processing commands, spreadsheet applications, and database management. Computing proficiency is required for a passing grade in this course. Computer Science Principles An introductory course that includes a broad overview of five core principles of computer science. The course content is focused on computing and its relation to innovation, abstraction, algorithms and programming, computing systems and networks, and data. Course projects encourage creativity. In the course, students will consider the impact made by computing innovations, create simple programs in the Python programming language, and collaborate to conduct data analysis. Computing proficiency is required for a passing grade in this course. Honors CS I for Majors This course covers the same material as CS 100 but in a depth appropriate for honors students. It is an honors version of the first course in programming for students majoring in computer science. Prior knowledge of programming is not required, but the course is appropriate for students with prior programming experience. Language concepts include primitives, variables, sequences, function, selection, iteration and recursion. Software engineering concepts include testing and debugging. System concepts include directories, paths, files, and text editing. Honors CSII for Majors This course covers the same material as CS 101 but in a depth appropriate for honors students. It is an honors version of the second course in programming for students majoring in computer science. Using a high-level language, students use object-oriented practices to study fundamental data structures and algorithms. Issues such as computability, problem complexity and algorithm analysis, efficient searching and sorting, data structures, and the object-oriented programming paradigm are introduced and explained. Digital Literacy This course is designed to help the students acquire various competencies that will enable them to safely and effectively use and create digital technologies and Internet resources in personal, academic, and professional contexts. Students will demonstrate their learning by creating a digital literacy portfolio. Computing proficiency is required for a passing grade in this course. Introduction to Cyber Security This course provides an introduction to cyber security. It covers fundamental concepts necessary to understand the threats to security as well as various defenses against those threats. The material includes an understanding of existing threats, planning for security, technology used to defend a computer system, and implementing security measures and technology. Software Design and Engineering Introduction to software engineering: the software crisis, program life cycle, software systems analysis techniques, software modeling, theory and practice of design, program testing methodologies, programmer team organization, and program verification and synthesis. Computing proficiency is required for a passing grade in this course. Data Structures and Algorithms Data structures including balanced search trees, heaps, hash tables, and graphs. Algorithm design techniques including divide-and-conquer, greedy method, and dynamic programming. Emphasis on problem solving, design, analysis, and reasoning about data structures and algorithms. Computing proficiency is required for a passing grade in this course. Web Foundations Introduces the student to the fundamentals of the internet and web page design and development. Students will be shown how to use the internet, text editors, and build basic web pages using HTML coding. This will include, but not be limited to hyperlinks, tables, basic CSS styling, frames and forms. The student will also be given demonstrations and assignments using a WYSIWYG editor. Introduction to Python Programming A course designed to introduce programming and problem solving using Python. Computing proficiency is required for a passing grade in this course. Hands-On Cyber Security This immersive course is designed to equip students with practical cyber security skills through a dynamic blend of Capture the Flag (CTF) challenges and hands-on lab exercises. The material will cover common topics encountered in CTF competitions such as OSINT, Password Cracking, Forensics, Network Traffic Analysis, and Web App Exploitation. The labs will cover the use of essential cyber security tools and techniques, providing invaluable hands-on experience. Cyber Law and Ethics Students will analyze advanced legal and ethical issues confronting the usage of new technologies and how these issues impact society. Students will examine past, contemporary and emerging cases that have a connection to computing technology. Human values and ethics will be at the forefront of our approach, and students will study the intersection of human values, law and professional ethics. Intro to Spreadsheet Applications Use of spreadsheets and other environments to build business and scientific applications. Course includes development of problem-solving skills and an introduction to the object-oriented paradigm. Computing proficiency is required for a passing grade in this course. Database Management Systems Constituent parts of database management (design, creation, and manipulation of databases), including the conceptual and relational data models, SQL, normalization and security. Writing proficiency is required for a passing grade in this course. A student who does not write with the skill normally required of an upper-division student will not earn a passing grade, no matter how well the student performs in other areas of the course. Database Applications An introduction to commercial database packages. Students will gain familiarity with both creating and using standard database software packages to solve real-world problems. Computing proficiency is required for a passing grade in this course. Advanced Database Applications and Design This course is a follow-up course to CS 302 for non-majors wishing to learn more about the design and use of database systems. Now that the underpinnings of data, data representation, and data visualization are in place from CS 302 , students will undertake an investigation into the uses of data and the construction of and understanding of databases design principles. Computing proficiency is required for a passing grade in this course. Website Design A course designed to teach website design principles and implementation techniques. The course requires prior knowledge of the fundamentals of the internet and web page design and development. This class is not cross-listed as a graduate course. Computing proficiency is required for a passing grade in this course. Intermediate Python Programming A course designed to build upon topics from the Introduction to Python Programming course and introduces advanced programming and problem-solving topics using the Python language. Computing proficiency is required for a passing grade in this course. Full-Stack Development The study and application of common design patterns, frameworks, and best practice to the process of systematic web-based software development. Students build enterprise applications using industry-wide standardized tools and frameworks. Networking and Operating Systems Introduction to system support for application programs, both on single node and over network: OS application interface, inter-process communication, introduction to system and network programming, and simple computer security concepts; hands-on lab assignments. Legal & Ethical Issues in Comp By way of case study, the course finds and frames issues related to legal and ethical issues in computing. Topics include privacy, free speech, intellectual property, security, and software reliability and liability issues. Computing proficiency is required for a passing grade in this course. Adv. Legal & Ethical Issues By way of case study and fact pattern analysis, we will find and frame advanced legal and ethical issues presented by past, contemporary and emerging technology. Cases and events will be examined. At the conclusion of the semester, students will be able to identify and discuss legal and ethical issues presented by technology. Students will create a seminal project showcasing their understanding of a chosen issue as well as the student's ability to use computing technology to communicate, share and display their work. Computing proficiency is required for a passing grade in this course. Advanced Spreadsheet Applications Design and construction of standard user interfaces using a visual programming environment. Course includes the prototyping of several standard user interface mechanisms. Computing proficiency is required for a passing grade in this course. Special Topics Special topics in computing. Software Practicum Software development course designed to meet the needs of individual students. This course is specifically for students developing software for an enterprise, such as those at The Edge Incubator and Accelerator. Programming Languages Formal study of programming language specification, analysis, implementation, and run-time support structures; organization of programming languages with emphasis on language constructs and mechanisms; and study of non-procedural programming paradigms. CS Curriculum for Math Educators Building upon the concepts from CS 104 , students will explore in-depth how computer science education is presented in the secondary education setting. Students will get the opportunity to explore current computer science curriculum and develop resources for future teaching, with a specific emphasis on the College Board’s AP CS Principles (AP CSP) curriculum. Software Interface Desgn Basic concepts of human-computer interaction, including guidelines for interface design, evaluation of interface designs, virtual environments, menus, forms, natural language interactions, novel interaction devices, information search and information visualization. Testing and Quality Assurance Study of verification & validation and related processes. Topics include techniques and tools for software analysis, testing, and quality assurance. Requirements Engineering Study of requirements engineering and it's phases. Topics include formal, semi-formal, and informal paradigms for elicitation, documentation, and management of software system requirements. Software Evolution Study of techniques and tools for design-time and run-time software adaptation, including principles of reflection and metaprogramming, software modularity, metamodeling and software language engineering. Python for Big Data Students in this course will utilize Python libraries such as Pandas, NumPy, and Dask for data manipulation and analysis, along with tools like Apache Spark for handling large datasets efficiently. The course will cover key concepts such as data ingestion, processing, and visualization, ensuring students can transform raw data into meaningful insights. Hands-on projects and real-world case studies provide students with practical experience, in order to address the challenges in data processing and analytics. Computer Security An examination of computer security concepts, such as cryptographic tools, user authentication, access control, database security, intrusion detection, malicious software, denial of service, firewalls and intrusion prevention systems, trusted computing and multilevel security, buffer overflow, software security, physical and infrastructure security, human factors, and security auditing. Compiler Construction Syntax and semantics of procedure-oriented languages and translation techniques used in their compilation; includes computer implementation. Computer Graphics Fundamentals of interactive 3-D computer graphics, including modeling and transformations, viewing, lighting and shading, mapping methods, graphics pipeline, shading languages, and interaction techniques. Programming projects are required. Computer Comm & Networks The study of the issues related to computer communications. Topics include physical topologies, switching, error detection and correction, routing, congestion control, and connection management for global networks (such as the Internet) and local area networks (such as Ethernet). In addition, network programming and applications will be considered. Cryptography This course will cover algorithms and concepts in cryptography and data security. We will undertake an examination of algorithms and concepts in cryptography and data security, such as symmetric ciphers, asymmetric ciphers, public-key cryptography, hash functions, message authentication codes, key management and distribution, etc. Digital Forensics Digital Forensics is an area of study that is rapidly growing in importance and visibility. It involves preserving, identifying, extracting, documenting and interpreting digital data. Though sometimes misunderstood, digital forensics is like other types of investigation. With the continuous rise of computer-related incidents and crimes, and the increased emphasis on homeland defense in this country, there is a growing need for computer science graduates with the skills to investigate these crimes. This course will introduce the topics of computer crime and digital forensics. Students will be required to learn different aspects of computer crime and ways in which to uncover, protect and exploit digital evidence. Software Security This course is an introduction to software security principles and practices. Topics for this course will include but not be limited to security architectures, defensive programming, web security, secure information flow, and common software vulnerabilities. Software Reverse Engineering Software Reverse Engineering is an area of study that is rapidly growing in importance and visibility. This course will reveal to students the challenges of monitoring and understanding software systems. During the course students will become familiar with the practice of software reverse engineering files by utilizing static and dynamic techniques, and methods in order to gain an understanding as to what impact a file may have on a computer system. Network Security Concepts concerning network security, including an examination of network security concepts, algorithms, and protocols. Data Science This course introduces fundamental concepts & techniques in data science as well as develops practical skills for data analysis in real-world applications. Given the multi-disciplinary nature of data science, the course will primarily focus on the advantages and disadvantages of various methods for different data characteristics, but will also provide some coverage on the statistical or mathematical foundations. Topics to cover include data preprocessing, data exploration, relationship mining, prediction, clustering, outlier detection, deep learning, spatial and spatiotemporal data analysis, text data analysis, and big data. Information Retrieval This course is an introduction to information retrieval principles and practices. The course will cover several aspects of Information Retrieval including; indexing, processing, querying, and classifying data. Also, retrieval models, algorithms, and implementations will be covered. Though the class will focus primarily on textual data, other media including images/videos, music/audio files, and geospatial information will be addressed. Topics for this course will include but not be limited to: text processing and classification, web search development techniques, and document clustering. Social Media Data Analytics The world is experiencing rapid growth in the amount of published data which come from different sources, including Social Media platforms. The availability of programming interfaces to these platforms allows for near real-time processing of these data for various purposes. This course will reveal to students the inherent challenges of analyzing Social Media data and introduce tools and techniques that are available to address them. Intro to Autonomous Robotics Issues involved with the implementation of robot control software including motion, kinematics, simulation testing, sensor incorporation and unmodeled factors. Brain Computer Interface This course involves the exploration of new forms of Human-Computer Interaction (HCI) based on passive measurement of neurophysiological states (cognitive and affective). These include the measurement of cognitive workload and affective engagement. Computer Vision This course is a broad introduction to computer vision. Topics include camera models, multi-view geometry, reconstruction, some low-level image processing, and high-level vision tasks like image classification and object detection. Artificial Intelligence The advanced study of topics under the umbrella of artificial intelligence including problem solving, knowledge representation, planning and machine learning. Mathematics for AI This course provides a comprehensive foundation in the mathematical concepts and techniques essential for understanding and developing artificial intelligence algorithms. Emphasizing both theoretical principles and practical applications, key areas including linear algebra, calculus, probability, and statistics will be explored. Computer Algorithms Construction of efficient algorithms for computer implementation. Formal Languages & Machines Regular expressions and finite automata. Context free grammars and pushdown automata. Recursively enumerable languages and the Turing machine. The Chomsky hierarchy. Computer Simulation Introduction to simulation and use of computer simulation models; simulation methodology, including generation of random numbers and variants, model design, and analysis of data generated by simulation experiments. High Performance Computing This course provides students with knowledge and fundamental concepts of high performance computing as well as hands-on experience of the core technology in the field. The objective of this class is to understand how to achieve high performance on a wide range of computational platforms. Topics include: optimizing the performance of sequential programs based on modern computer memory hierarchies, parallel algorithm design, developing parallel programs using MPI, analyzing the performance of parallel programs. Computational Foundations of Machine Learning This course offers a comprehensive overview of machine learning, encompassing both theoretical foundations and practical algorithmic approaches from multiple perspectives. The curriculum includes foundational learning theory, supervised learning with a particular emphasis on modern deep learning techniques, unsupervised learning, and reinforcement learning. Reinforcement Learning This course covers fundamental principles, algorithms, and implementations of reinforcement learning, including the design of computational agents based on machine learning and control theory. The typical methods include reinforcement algorithms, dynamic programming, approximate functions, and temporal difference learning for policy evaluation and control problems. The course will involve the application of these concepts and methods in simulation or real-world problems as well as potentially in the context of psychology and neuroscience. Special Topics Formal courses that cover new and innovative topics in computer science and do not yet have their own course numbers. Specific course titles will be announced from time to time. Special Prob (Area) Reading and research course designed to meet the needs of individual students. CS 492 can be used to satisfy only one of the required 400-level computer science electives. Special Problems in Software Engineering Reading, research, and development course designed to meet the needs of individual students. This course is specifically for students pursuing the Software Engineering Concentration. CyberCorps Scholarship For Service Seminar The CyberCorps© Scholarship for Service (SFS) Seminar is only for the students in the SFS@Bama program. This course will focus on important information necessary to be successful in a government cyber security career. The CyberCorps© SFS program prepares the next generation of cyber security employees to protect and defend the United States of America’s infrastructure from threats, attacks, and potential intrusions. The course will include briefings, presentations, job related tasks, job fairs, and guest speakers. Capstone Computing A culminating capstone project course that integrates the skills and abilities throughout the curriculum into a comprehensive design and development experience for computer science majors. Writing proficiency is required for a passing grade in this course. A student who does not write with the skill normally required of an upper-division student will not earn a passing grade, no matter how well the student performs in other areas of the course. Undergraduate Thesis Research Independent research and participation within a faculty member's research group. Permission of the supervising faculty member is required.
Markdown
- [Skip to Content](https://catalog.ua.edu/undergraduate/engineering/computer-science/courses/#content) - [AZ Index](https://catalog.ua.edu/azindex/) - [Catalog Home](https://catalog.ua.edu/) [![The University of Alabama](https://assetfiles.ua.edu/brand/logos/UA_Wordmark-White.svg)](https://www.ua.edu/.%20) Search Expand Search Input Area Menu Expand Universal Navigation Menu [![The University of Alabama](https://assetfiles.ua.edu/brand/logos/UA_Wordmark-White.svg)](https://www.ua.edu/) Close - [About](https://www.ua.edu/about/) - [Academics](https://www.ua.edu/academics/) - [Admissions](https://www.ua.edu/admissions/) - [Athletics](https://rolltide.com/) - [Campus Life](https://www.ua.edu/campus-life/) - [Research](https://research.ua.edu/) - [News](https://news.ua.edu/) - [myBama](https://mybama.ua.edu/) - [Directory](https://directory.ua.edu/) - [Students](https://mybama.ua.edu/page/46) - [Faculty & Staff](https://www.ua.edu/faculty-staff/) - [Alumni](https://alumni.ua.edu/) - [Map](https://ua.edu/map) - [Campus Calendar](https://calendar.ua.edu/) - [Alerts](https://www.ua.edu/alerts/) - [Make a Gift](https://give.ua.edu/) - [Catalog Archive](https://catalog.ua.edu/archive/) # Courses for Computer Science - [Catalog Home](https://catalog.ua.edu/) - [Undergraduate Catalog](https://catalog.ua.edu/undergraduate/) - [College of Engineering](https://catalog.ua.edu/undergraduate/engineering/) - [Department of Computer Science](https://catalog.ua.edu/undergraduate/engineering/computer-science/) - Courses for Computer Science [Catalog Navigation](https://catalog.ua.edu/undergraduate/engineering/computer-science/courses/) [College of Engineering](https://catalog.ua.edu/undergraduate/engineering) - [Department of Aerospace Engineering and Mechanics](https://catalog.ua.edu/undergraduate/engineering/aerospace-mechanics/) - [Department of Chemical and Biological Engineering](https://catalog.ua.edu/undergraduate/engineering/chemical-biological/) - [Department of Civil, Construction and Environmental Engineering](https://catalog.ua.edu/undergraduate/engineering/civil-construction-environmental/) - [Department of Computer Science](https://catalog.ua.edu/undergraduate/engineering/computer-science/) - [Computer Science, BS](https://catalog.ua.edu/undergraduate/engineering/computer-science/bs/) - [Cyber Security, BS](https://catalog.ua.edu/undergraduate/engineering/computer-science/cyber-security-bs/) - [Computer Science, Minor](https://catalog.ua.edu/undergraduate/engineering/computer-science/minor/) - [Computing Technology and Applications, Minor](https://catalog.ua.edu/undergraduate/engineering/computer-science/computing-technology-applications-minor/) - [Courses for Computer Science](https://catalog.ua.edu/undergraduate/engineering/computer-science/courses/) - [Department of Electrical and Computer Engineering](https://catalog.ua.edu/undergraduate/engineering/electrical-computer/) - [Department of Mechanical Engineering](https://catalog.ua.edu/undergraduate/engineering/mechanical/) - [Department of Metallurgical and Materials Engineering](https://catalog.ua.edu/undergraduate/engineering/metallurgical-materials/) - [Engineering Positive and Intentional Change, Minor](https://catalog.ua.edu/undergraduate/engineering/engineering-positive-and-intentional-change-minor/) [Current Students Log In](https://ssb.ua.edu/ssomanager/c/SSB?service=lf_asoc_external.null_login) [Print Options](https://catalog.ua.edu/undergraduate/engineering/computer-science/courses/#print-dialog) [Apply Now](https://www.ua.edu/apply) ## Computer Science Courses CS 100 Hours 4 CS I for Majors A first course in programming for students majoring in computer science. Language concepts include primitives, variables, sequences, function, selection, iteration and recursion. Software engineering concepts include testing and debugging. System concepts include directories, paths, files, and text editing. Prerequisite(s): UA Placement Mathematics 440 or UA ACT Subject Math Placement 565 or ACT Mathematics 30 or SAT Mathematics 680 or SAT Mathematics (New) 710 or (C- or higher in ([MATH 112](https://catalog.ua.edu/search/?P=MATH%20112) and [MATH 113](https://catalog.ua.edu/search/?P=MATH%20113)) or [MATH 115](https://catalog.ua.edu/search/?P=MATH%20115)) or (([MATH 125](https://catalog.ua.edu/search/?P=MATH%20125) or [MATH 145](https://catalog.ua.edu/search/?P=MATH%20145) or [MATH 126](https://catalog.ua.edu/search/?P=MATH%20126) or [MATH 146](https://catalog.ua.edu/search/?P=MATH%20146)) with Concurrency) Prerequisite(s) with concurrency: [MATH 125](https://catalog.ua.edu/search/?P=MATH%20125) or [MATH 145](https://catalog.ua.edu/search/?P=MATH%20145) or [MATH 126](https://catalog.ua.edu/search/?P=MATH%20126) or [MATH 146](https://catalog.ua.edu/search/?P=MATH%20146) CS 101 Hours 4 CS II for Majors A second course in programming for students majoring in computer science. Using a high-level language, students use object-oriented practices to study fundamental data structures and algorithms. Issues such as computability, problem complexity and algorithm analysis, efficient searching and sorting, data structures, and the object-oriented programming paradigm are introduced and explained. Computing proficiency is required for a passing grade in this course. Prerequisite(s): ([CS 100](https://catalog.ua.edu/search/?P=CS%20100) or [CS 110](https://catalog.ua.edu/search/?P=CS%20110)) and ([MATH 125](https://catalog.ua.edu/search/?P=MATH%20125) or [MATH 145](https://catalog.ua.edu/search/?P=MATH%20145)) Computer Science CS 102 Hours 3 Computer Applications Familiarization with Windows, fundamental and intermediate word processing commands, spreadsheet applications, and database management. Computing proficiency is required for a passing grade in this course. Computer Science CS 104 Hours 3 Computer Science Principles An introductory course that includes a broad overview of five core principles of computer science. The course content is focused on computing and its relation to innovation, abstraction, algorithms and programming, computing systems and networks, and data. Course projects encourage creativity. In the course, students will consider the impact made by computing innovations, create simple programs in the Python programming language, and collaborate to conduct data analysis. Computing proficiency is required for a passing grade in this course. Prerequisite(s) with concurrency: [MATH 112](https://catalog.ua.edu/search/?P=MATH%20112) or [MATH 115](https://catalog.ua.edu/search/?P=MATH%20115) or [MATH 125](https://catalog.ua.edu/search/?P=MATH%20125) or [MATH 126](https://catalog.ua.edu/search/?P=MATH%20126) or [MATH 145](https://catalog.ua.edu/search/?P=MATH%20145) or [MATH 146](https://catalog.ua.edu/search/?P=MATH%20146) Computer Science CS 110 Hours 4 Honors CS I for Majors This course covers the same material as [CS 100](https://catalog.ua.edu/search/?P=CS%20100) but in a depth appropriate for honors students. It is an honors version of the first course in programming for students majoring in computer science. Prior knowledge of programming is not required, but the course is appropriate for students with prior programming experience. Language concepts include primitives, variables, sequences, function, selection, iteration and recursion. Software engineering concepts include testing and debugging. System concepts include directories, paths, files, and text editing. Prerequisite(s): UA Placement Mathematics 440 or UA ACT Subject Math Placement 565 or ACT Mathematics 30 or SAT Mathematics 680 or SAT Mathematics (New) 710 or (C- or higher in ([MATH 112](https://catalog.ua.edu/search/?P=MATH%20112) and [MATH 113](https://catalog.ua.edu/search/?P=MATH%20113)) or [MATH 115](https://catalog.ua.edu/search/?P=MATH%20115)) or (([MATH 125](https://catalog.ua.edu/search/?P=MATH%20125) or [MATH 145](https://catalog.ua.edu/search/?P=MATH%20145) or [MATH 126](https://catalog.ua.edu/search/?P=MATH%20126) or [MATH 146](https://catalog.ua.edu/search/?P=MATH%20146)) with Concurrency) Prerequisite(s) with concurrency: [MATH 125](https://catalog.ua.edu/search/?P=MATH%20125) or [MATH 145](https://catalog.ua.edu/search/?P=MATH%20145) or [MATH 126](https://catalog.ua.edu/search/?P=MATH%20126) or [MATH 146](https://catalog.ua.edu/search/?P=MATH%20146) University Honors CS 111 Hours 4 Honors CSII for Majors This course covers the same material as [CS 101](https://catalog.ua.edu/search/?P=CS%20101) but in a depth appropriate for honors students. It is an honors version of the second course in programming for students majoring in computer science. Using a high-level language, students use object-oriented practices to study fundamental data structures and algorithms. Issues such as computability, problem complexity and algorithm analysis, efficient searching and sorting, data structures, and the object-oriented programming paradigm are introduced and explained. Prerequisite(s): ([CS 110](https://catalog.ua.edu/search/?P=CS%20110) or [CS 100](https://catalog.ua.edu/search/?P=CS%20100) or [RRS 102](https://catalog.ua.edu/search/?P=RRS%20102)) and ([MATH 125](https://catalog.ua.edu/search/?P=MATH%20125) or [MATH 145](https://catalog.ua.edu/search/?P=MATH%20145)) University Honors CS 112 Hours 3 Digital Literacy This course is designed to help the students acquire various competencies that will enable them to safely and effectively use and create digital technologies and Internet resources in personal, academic, and professional contexts. Students will demonstrate their learning by creating a digital literacy portfolio. Computing proficiency is required for a passing grade in this course. Computer Science CS 140 Hours 3 Introduction to Cyber Security This course provides an introduction to cyber security. It covers fundamental concepts necessary to understand the threats to security as well as various defenses against those threats. The material includes an understanding of existing threats, planning for security, technology used to defend a computer system, and implementing security measures and technology. Prerequisite(s): [CS 100](https://catalog.ua.edu/search/?P=CS%20100) CS 200 Hours 4 Software Design and Engineering Introduction to software engineering: the software crisis, program life cycle, software systems analysis techniques, software modeling, theory and practice of design, program testing methodologies, programmer team organization, and program verification and synthesis. Computing proficiency is required for a passing grade in this course. Prerequisite(s): [CS 101](https://catalog.ua.edu/search/?P=CS%20101) or [CS 111](https://catalog.ua.edu/search/?P=CS%20111) Computer Science CS 201 Hours 4 Data Structures and Algorithms Data structures including balanced search trees, heaps, hash tables, and graphs. Algorithm design techniques including divide-and-conquer, greedy method, and dynamic programming. Emphasis on problem solving, design, analysis, and reasoning about data structures and algorithms. Computing proficiency is required for a passing grade in this course. Prerequisite(s): (([CS 101](https://catalog.ua.edu/search/?P=CS%20101) or [CS 111](https://catalog.ua.edu/search/?P=CS%20111)), [MATH 301](https://catalog.ua.edu/search/?P=MATH%20301), ([UA 101](https://catalog.ua.edu/search/?P=UA%20101) or [UA 201](https://catalog.ua.edu/search/?P=UA%20201)) and (([ENGR 101](https://catalog.ua.edu/search/?P=ENGR%20101) and [ENGR 104](https://catalog.ua.edu/search/?P=ENGR%20104)) or [AS 110](https://catalog.ua.edu/search/?P=AS%20110) or [AS 310](https://catalog.ua.edu/search/?P=AS%20310))) or (([CS 101](https://catalog.ua.edu/search/?P=CS%20101) or [CS 111](https://catalog.ua.edu/search/?P=CS%20111)), [MATH 301](https://catalog.ua.edu/search/?P=MATH%20301), and ([ENGR 103](https://catalog.ua.edu/search/?P=ENGR%20103) or [ENGR 123](https://catalog.ua.edu/search/?P=ENGR%20123))) Computer Science CS 202 Hours 3 Web Foundations Introduces the student to the fundamentals of the internet and web page design and development. Students will be shown how to use the internet, text editors, and build basic web pages using HTML coding. This will include, but not be limited to hyperlinks, tables, basic CSS styling, frames and forms. The student will also be given demonstrations and assignments using a WYSIWYG editor. Computer Science CS 223 Hours 3 Introduction to Python Programming A course designed to introduce programming and problem solving using Python. Computing proficiency is required for a passing grade in this course. Prerequisite(s): [MATH 112](https://catalog.ua.edu/search/?P=MATH%20112) or currently enrolled in [MATH 113](https://catalog.ua.edu/search/?P=MATH%20113) or [MATH 115](https://catalog.ua.edu/search/?P=MATH%20115) or higher Computer Science CS 240 Hours 3 Hands-On Cyber Security This immersive course is designed to equip students with practical cyber security skills through a dynamic blend of Capture the Flag (CTF) challenges and hands-on lab exercises. The material will cover common topics encountered in CTF competitions such as OSINT, Password Cracking, Forensics, Network Traffic Analysis, and Web App Exploitation. The labs will cover the use of essential cyber security tools and techniques, providing invaluable hands-on experience. Prerequisite(s): [CS 140](https://catalog.ua.edu/search/?P=CS%20140) CS 247 Hours 3 Cyber Law and Ethics Students will analyze advanced legal and ethical issues confronting the usage of new technologies and how these issues impact society. Students will examine past, contemporary and emerging cases that have a connection to computing technology. Human values and ethics will be at the forefront of our approach, and students will study the intersection of human values, law and professional ethics. Prerequisite(s): [CS 100](https://catalog.ua.edu/search/?P=CS%20100) or [CS 110](https://catalog.ua.edu/search/?P=CS%20110) or [CS 223](https://catalog.ua.edu/search/?P=CS%20223) Humanities CS 285 Hours 3 Intro to Spreadsheet Applications Use of spreadsheets and other environments to build business and scientific applications. Course includes development of problem-solving skills and an introduction to the object-oriented paradigm. Computing proficiency is required for a passing grade in this course. Computer Science CS 301 Hours 3 Database Management Systems Constituent parts of database management (design, creation, and manipulation of databases), including the conceptual and relational data models, SQL, normalization and security. Writing proficiency is required for a passing grade in this course. A student who does not write with the skill normally required of an upper-division student will not earn a passing grade, no matter how well the student performs in other areas of the course. Prerequisite(s): [CS 201](https://catalog.ua.edu/search/?P=CS%20201) and ([CS 200](https://catalog.ua.edu/search/?P=CS%20200) or [MATH 355](https://catalog.ua.edu/search/?P=MATH%20355)) Writing CS 302 Hours 3 Database Applications An introduction to commercial database packages. Students will gain familiarity with both creating and using standard database software packages to solve real-world problems. Computing proficiency is required for a passing grade in this course. Computer Science CS 305 Hours 3 Advanced Database Applications and Design This course is a follow-up course to [CS 302](https://catalog.ua.edu/search/?P=CS%20302) for non-majors wishing to learn more about the design and use of database systems. Now that the underpinnings of data, data representation, and data visualization are in place from [CS 302](https://catalog.ua.edu/search/?P=CS%20302), students will undertake an investigation into the uses of data and the construction of and understanding of databases design principles. Computing proficiency is required for a passing grade in this course. Prerequisite(s): [CS 302](https://catalog.ua.edu/search/?P=CS%20302) with a grade of C- or higher Computer Science CS 312 Hours 3 Website Design A course designed to teach website design principles and implementation techniques. The course requires prior knowledge of the fundamentals of the internet and web page design and development. This class is not cross-listed as a graduate course. Computing proficiency is required for a passing grade in this course. Prerequisite(s): [CS 202](https://catalog.ua.edu/search/?P=CS%20202) with a grade of C- or higher Computer Science CS 323 Hours 3 Intermediate Python Programming A course designed to build upon topics from the Introduction to Python Programming course and introduces advanced programming and problem-solving topics using the Python language. Computing proficiency is required for a passing grade in this course. Prerequisite(s): [CS 223](https://catalog.ua.edu/search/?P=CS%20223) or [CS 100](https://catalog.ua.edu/search/?P=CS%20100) or by permission of instructor Computer Science CS 330 Hours 3 Full-Stack Development The study and application of common design patterns, frameworks, and best practice to the process of systematic web-based software development. Students build enterprise applications using industry-wide standardized tools and frameworks. Prerequisite(s) with concurrency: [CS 301](https://catalog.ua.edu/search/?P=CS%20301) CS 338 Hours 3 Networking and Operating Systems Introduction to system support for application programs, both on single node and over network: OS application interface, inter-process communication, introduction to system and network programming, and simple computer security concepts; hands-on lab assignments. Prerequisite(s): [CS 201](https://catalog.ua.edu/search/?P=CS%20201) and ([CS 200](https://catalog.ua.edu/search/?P=CS%20200) or [CS 240](https://catalog.ua.edu/search/?P=CS%20240)) CS 340 Hours 3 Legal & Ethical Issues in Comp By way of case study, the course finds and frames issues related to legal and ethical issues in computing. Topics include privacy, free speech, intellectual property, security, and software reliability and liability issues. Computing proficiency is required for a passing grade in this course. Computer Science CS 345 Hours 3 Adv. Legal & Ethical Issues By way of case study and fact pattern analysis, we will find and frame advanced legal and ethical issues presented by past, contemporary and emerging technology. Cases and events will be examined. At the conclusion of the semester, students will be able to identify and discuss legal and ethical issues presented by technology. Students will create a seminal project showcasing their understanding of a chosen issue as well as the student's ability to use computing technology to communicate, share and display their work. Computing proficiency is required for a passing grade in this course. Prerequisite(s): [CS 340](https://catalog.ua.edu/search/?P=CS%20340) with a grade of C- or higher Computer Science CS 385 Hours 3 Advanced Spreadsheet Applications Design and construction of standard user interfaces using a visual programming environment. Course includes the prototyping of several standard user interface mechanisms. Computing proficiency is required for a passing grade in this course. Prerequisite(s): [CS 285](https://catalog.ua.edu/search/?P=CS%20285) with a grade of C- or higher Computer Science CS 391 Hours 3 Special Topics Special topics in computing. Special Topics Course CS 393 Hours 3 Software Practicum Software development course designed to meet the needs of individual students. This course is specifically for students developing software for an enterprise, such as those at The Edge Incubator and Accelerator. Prerequisite(s) with concurrency: [CS 301](https://catalog.ua.edu/search/?P=CS%20301) CS 403 Hours 3 Programming Languages Formal study of programming language specification, analysis, implementation, and run-time support structures; organization of programming languages with emphasis on language constructs and mechanisms; and study of non-procedural programming paradigms. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 404 Hours 3 CS Curriculum for Math Educators Building upon the concepts from [CS 104](https://catalog.ua.edu/search/?P=CS%20104), students will explore in-depth how computer science education is presented in the secondary education setting. Students will get the opportunity to explore current computer science curriculum and develop resources for future teaching, with a specific emphasis on the College Board’s AP CS Principles (AP CSP) curriculum. Prerequisite(s): [CS 104](https://catalog.ua.edu/search/?P=CS%20104) CS 407 Hours 3 Software Interface Desgn Basic concepts of human-computer interaction, including guidelines for interface design, evaluation of interface designs, virtual environments, menus, forms, natural language interactions, novel interaction devices, information search and information visualization. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 416 Hours 3 Testing and Quality Assurance Study of verification & validation and related processes. Topics include techniques and tools for software analysis, testing, and quality assurance. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 417 Hours 3 Requirements Engineering Study of requirements engineering and it's phases. Topics include formal, semi-formal, and informal paradigms for elicitation, documentation, and management of software system requirements. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 420 Hours 3 Software Evolution Study of techniques and tools for design-time and run-time software adaptation, including principles of reflection and metaprogramming, software modularity, metamodeling and software language engineering. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 423 Hours 3 Python for Big Data Students in this course will utilize Python libraries such as Pandas, NumPy, and Dask for data manipulation and analysis, along with tools like Apache Spark for handling large datasets efficiently. The course will cover key concepts such as data ingestion, processing, and visualization, ensuring students can transform raw data into meaningful insights. Hands-on projects and real-world case studies provide students with practical experience, in order to address the challenges in data processing and analytics. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) CS 428 Hours 3 Computer Security An examination of computer security concepts, such as cryptographic tools, user authentication, access control, database security, intrusion detection, malicious software, denial of service, firewalls and intrusion prevention systems, trusted computing and multilevel security, buffer overflow, software security, physical and infrastructure security, human factors, and security auditing. Prerequisite(s): [CS 140](https://catalog.ua.edu/search/?P=CS%20140) and (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 434 Hours 3 Compiler Construction Syntax and semantics of procedure-oriented languages and translation techniques used in their compilation; includes computer implementation. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 435 Hours 3 Computer Graphics Fundamentals of interactive 3-D computer graphics, including modeling and transformations, viewing, lighting and shading, mapping methods, graphics pipeline, shading languages, and interaction techniques. Programming projects are required. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 438 Hours 3 Computer Comm & Networks The study of the issues related to computer communications. Topics include physical topologies, switching, error detection and correction, routing, congestion control, and connection management for global networks (such as the Internet) and local area networks (such as Ethernet). In addition, network programming and applications will be considered. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 442 Hours 3 Cryptography This course will cover algorithms and concepts in cryptography and data security. We will undertake an examination of algorithms and concepts in cryptography and data security, such as symmetric ciphers, asymmetric ciphers, public-key cryptography, hash functions, message authentication codes, key management and distribution, etc. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 443 Hours 3 Digital Forensics Digital Forensics is an area of study that is rapidly growing in importance and visibility. It involves preserving, identifying, extracting, documenting and interpreting digital data. Though sometimes misunderstood, digital forensics is like other types of investigation. With the continuous rise of computer-related incidents and crimes, and the increased emphasis on homeland defense in this country, there is a growing need for computer science graduates with the skills to investigate these crimes. This course will introduce the topics of computer crime and digital forensics. Students will be required to learn different aspects of computer crime and ways in which to uncover, protect and exploit digital evidence. Prerequisite(s): [CS 428](https://catalog.ua.edu/search/?P=CS%20428) CS 444 Hours 3 Software Security This course is an introduction to software security principles and practices. Topics for this course will include but not be limited to security architectures, defensive programming, web security, secure information flow, and common software vulnerabilities. Prerequisite(s): [CS 428](https://catalog.ua.edu/search/?P=CS%20428) CS 445 Hours 3 Software Reverse Engineering Software Reverse Engineering is an area of study that is rapidly growing in importance and visibility. This course will reveal to students the challenges of monitoring and understanding software systems. During the course students will become familiar with the practice of software reverse engineering files by utilizing static and dynamic techniques, and methods in order to gain an understanding as to what impact a file may have on a computer system. Prerequisite(s): [CS 428](https://catalog.ua.edu/search/?P=CS%20428) CS 448 Hours 3 Network Security Concepts concerning network security, including an examination of network security concepts, algorithms, and protocols. Prerequisite(s): [CS 438](https://catalog.ua.edu/search/?P=CS%20438) CS 451 Hours 3 Data Science This course introduces fundamental concepts & techniques in data science as well as develops practical skills for data analysis in real-world applications. Given the multi-disciplinary nature of data science, the course will primarily focus on the advantages and disadvantages of various methods for different data characteristics, but will also provide some coverage on the statistical or mathematical foundations. Topics to cover include data preprocessing, data exploration, relationship mining, prediction, clustering, outlier detection, deep learning, spatial and spatiotemporal data analysis, text data analysis, and big data. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) and ([MATH 355](https://catalog.ua.edu/search/?P=MATH%20355) or [GES 255](https://catalog.ua.edu/search/?P=GES%20255)) and [MATH 237](https://catalog.ua.edu/search/?P=MATH%20237) CS 452 Hours 3 Information Retrieval This course is an introduction to information retrieval principles and practices. The course will cover several aspects of Information Retrieval including; indexing, processing, querying, and classifying data. Also, retrieval models, algorithms, and implementations will be covered. Though the class will focus primarily on textual data, other media including images/videos, music/audio files, and geospatial information will be addressed. Topics for this course will include but not be limited to: text processing and classification, web search development techniques, and document clustering. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) CS 455 Hours 3 Social Media Data Analytics The world is experiencing rapid growth in the amount of published data which come from different sources, including Social Media platforms. The availability of programming interfaces to these platforms allows for near real-time processing of these data for various purposes. This course will reveal to students the inherent challenges of analyzing Social Media data and introduce tools and techniques that are available to address them. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) CS 460 Hours 3 Intro to Autonomous Robotics Issues involved with the implementation of robot control software including motion, kinematics, simulation testing, sensor incorporation and unmodeled factors. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 461 Hours 3 Brain Computer Interface This course involves the exploration of new forms of Human-Computer Interaction (HCI) based on passive measurement of neurophysiological states (cognitive and affective). These include the measurement of cognitive workload and affective engagement. Prerequisite(s): ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383)) or permission of instructor for non-CS majors CS 463 Hours 3 Computer Vision This course is a broad introduction to computer vision. Topics include camera models, multi-view geometry, reconstruction, some low-level image processing, and high-level vision tasks like image classification and object detection. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) CS 465 Hours 3 Artificial Intelligence The advanced study of topics under the umbrella of artificial intelligence including problem solving, knowledge representation, planning and machine learning. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) CS 466 Hours 3 Mathematics for AI This course provides a comprehensive foundation in the mathematical concepts and techniques essential for understanding and developing artificial intelligence algorithms. Emphasizing both theoretical principles and practical applications, key areas including linear algebra, calculus, probability, and statistics will be explored. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 470 Hours 3 Computer Algorithms Construction of efficient algorithms for computer implementation. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) CS 475 Hours 3 Formal Languages & Machines Regular expressions and finite automata. Context free grammars and pushdown automata. Recursively enumerable languages and the Turing machine. The Chomsky hierarchy. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 480 Hours 3 Computer Simulation Introduction to simulation and use of computer simulation models; simulation methodology, including generation of random numbers and variants, model design, and analysis of data generated by simulation experiments. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) CS 481 Hours 3 High Performance Computing This course provides students with knowledge and fundamental concepts of high performance computing as well as hands-on experience of the core technology in the field. The objective of this class is to understand how to achieve high performance on a wide range of computational platforms. Topics include: optimizing the performance of sequential programs based on modern computer memory hierarchies, parallel algorithm design, developing parallel programs using MPI, analyzing the performance of parallel programs. Prerequisite(s): ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383)) or permission of instructor. CS 483 Hours 3 Computational Foundations of Machine Learning This course offers a comprehensive overview of machine learning, encompassing both theoretical foundations and practical algorithmic approaches from multiple perspectives. The curriculum includes foundational learning theory, supervised learning with a particular emphasis on modern deep learning techniques, unsupervised learning, and reinforcement learning. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) and ([MATH 355](https://catalog.ua.edu/search/?P=MATH%20355) or [GES 255](https://catalog.ua.edu/search/?P=GES%20255)) CS 484 Hours 3 Reinforcement Learning This course covers fundamental principles, algorithms, and implementations of reinforcement learning, including the design of computational agents based on machine learning and control theory. The typical methods include reinforcement algorithms, dynamic programming, approximate functions, and temporal difference learning for policy evaluation and control problems. The course will involve the application of these concepts and methods in simulation or real-world problems as well as potentially in the context of psychology and neuroscience. Prerequisite(s): [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and ([MATH 359](https://catalog.ua.edu/search/?P=MATH%20359) or ((CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383))) and ([GES 255](https://catalog.ua.edu/search/?P=GES%20255) or [MATH 355](https://catalog.ua.edu/search/?P=MATH%20355)) CS 491 Hours 3 Special Topics Formal courses that cover new and innovative topics in computer science and do not yet have their own course numbers. Specific course titles will be announced from time to time. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) Special Topics Course CS 492 Hours 1-3 Special Prob (Area) Reading and research course designed to meet the needs of individual students. [CS 492](https://catalog.ua.edu/search/?P=CS%20492) can be used to satisfy only one of the required 400-level computer science electives. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) Special Topics Course CS 493 Hours 3 Special Problems in Software Engineering Reading, research, and development course designed to meet the needs of individual students. This course is specifically for students pursuing the Software Engineering Concentration. Prerequisite(s): (CS 300 or [CS 338](https://catalog.ua.edu/search/?P=CS%20338)) and [CS 301](https://catalog.ua.edu/search/?P=CS%20301) and [ECE 383](https://catalog.ua.edu/search/?P=ECE%20383) Special Topics Course CS 494 Hours 1 CyberCorps Scholarship For Service Seminar The CyberCorps© Scholarship for Service (SFS) Seminar is only for the students in the SFS@Bama program. This course will focus on important information necessary to be successful in a government cyber security career. The CyberCorps© SFS program prepares the next generation of cyber security employees to protect and defend the United States of America’s infrastructure from threats, attacks, and potential intrusions. The course will include briefings, presentations, job related tasks, job fairs, and guest speakers. CS 495 Hours 3 Capstone Computing A culminating capstone project course that integrates the skills and abilities throughout the curriculum into a comprehensive design and development experience for computer science majors. Writing proficiency is required for a passing grade in this course. A student who does not write with the skill normally required of an upper-division student will not earn a passing grade, no matter how well the student performs in other areas of the course. Prerequisite(s): ([CS 403](https://catalog.ua.edu/search/?P=CS%20403) or [CS 470](https://catalog.ua.edu/search/?P=CS%20470)) and ([CS 407](https://catalog.ua.edu/search/?P=CS%20407) or [CS 416](https://catalog.ua.edu/search/?P=CS%20416) or [CS 420](https://catalog.ua.edu/search/?P=CS%20420) or [CS 428](https://catalog.ua.edu/search/?P=CS%20428) or [CS 435](https://catalog.ua.edu/search/?P=CS%20435) or [CS 438](https://catalog.ua.edu/search/?P=CS%20438) or [CS 442](https://catalog.ua.edu/search/?P=CS%20442) or CS443 or [CS 444](https://catalog.ua.edu/search/?P=CS%20444) or [CS 445](https://catalog.ua.edu/search/?P=CS%20445) or [CS 448](https://catalog.ua.edu/search/?P=CS%20448) or [CS 451](https://catalog.ua.edu/search/?P=CS%20451) or [CS 452](https://catalog.ua.edu/search/?P=CS%20452) or [CS 455](https://catalog.ua.edu/search/?P=CS%20455) or [CS 460](https://catalog.ua.edu/search/?P=CS%20460) or [CS 461](https://catalog.ua.edu/search/?P=CS%20461) or [CS 465](https://catalog.ua.edu/search/?P=CS%20465) or [CS 475](https://catalog.ua.edu/search/?P=CS%20475) or [CS 480](https://catalog.ua.edu/search/?P=CS%20480) or [CS 481](https://catalog.ua.edu/search/?P=CS%20481) or [CS 483](https://catalog.ua.edu/search/?P=CS%20483) or [CS 484](https://catalog.ua.edu/search/?P=CS%20484)) with grade of C- or higher Experiential Learning, Writing CS 499 Hours 3 Undergraduate Thesis Research Independent research and participation within a faculty member's research group. Permission of the supervising faculty member is required. Prerequisite(s): ([CS 403](https://catalog.ua.edu/search/?P=CS%20403) or [CS 470](https://catalog.ua.edu/search/?P=CS%20470)) Minimum Grade of C- AND three additional hours of 400-level CS classes Experiential Learning ## Contact The University of Alabama Tuscaloosa, AL 35487 [(205) 348-6010](<tel:(205) 348-6010>) Visit our [contact page](https://www.ua.edu/contact/) for more information - [Instagram](https://www.instagram.com/univofalabama/?hl=en) - [X](https://www.twitter.com/UofAlabama) - [Facebook](https://www.facebook.com/universityofalabama/) - [UA on TikTok](https://www.tiktok.com/@uofalabama) - [LinkedIn](https://www.linkedin.com/school/7472) - [YouTube](https://www.youtube.com/universityofalabama) ## Resources - [Alumni](https://alumni.ua.edu/) - [Jobs](https://careers.ua.edu/home) - [Libraries](https://www.lib.ua.edu/#/home) - [Policies](https://ua-public.policystat.com/) - [Information Technology](http://oit.ua.edu/) - [Emergency Management](http://ready.ua.edu/) - [University Police](http://police.ua.edu/) ## Tools - [myBama](http://mybama.ua.edu/) - [Blackboard](https://ualearn.blackboard.com/) - [Student Email](https://oit.ua.edu/services/email/student/) - [Campus Map](https://www.ua.edu/map) - [Directory](https://directory.ua.edu/) - [Social Media](https://www.ua.edu/social-media-directory/) [![Part of the University of Alabama System](https://assetfiles.ua.edu/brand/logos/UA_System.svg)](https://uasystem.edu/) ![Illustration of Denny Chimes](https://assetfiles.ua.edu/brand/logos/Denny_Chimes-Crimson.svg) ![The University of Alabama Logo](https://assetfiles.ua.edu/brand/logos/Capstone_A-White.svg) [Copyright © 2024](https://www.ua.edu/copyright) [The University of Alabama](https://www.ua.edu/) [(205) 348-6010](tel:+12053486010) [Contact UA](https://www.ua.edu/contact) - [Accessibility](http://accessibility.ua.edu/) - [SACSCOC](https://oie.ua.edu/accreditation) - [Taskstream](https://login.ua.edu/cas/login?service=https%3A%2F%2Fw.taskstream.com%2FCas%2FLogin%3FpartnerId%3Dksh0hphohk) - [Equal Opportunity](http://eop.ua.edu/) - [Data Access Request](https://compliance.ua.edu/privacy/data-subject-access-request/) - [Disclaimer](https://www.ua.edu/disclaimer) - [Privacy](https://www.ua.edu/privacy) ## Print Options [Send Page to Printer](https://catalog.ua.edu/undergraduate/engineering/computer-science/courses/) *Print this page.* [Download Page (PDF)](https://catalog.ua.edu/undergraduate/engineering/computer-science/courses/courses.pdf) *The PDF will include all information unique to this page.* [Download 2025-26 Graduate PDF](https://catalog.ua.edu/pdf/2025-2026-Graduate.pdf) *All pages in the Graduate catalog.* [Download 2025-26 Undergraduate PDF](https://catalog.ua.edu/pdf/2025-2026-Undergraduate.pdf) *All pages in the Undergraduate catalog.* [Download 2025-26 Law PDF](https://catalog.ua.edu/pdf/2025-2026-Law.pdf) *All pages in the Law catalog.* [Cancel](https://catalog.ua.edu/undergraduate/engineering/computer-science/courses/) This website uses cookies to collect information to improve your browsing experience. Please review our [Privacy Statement](https://www.ua.edu/privacy) for more information. I Understand
Readable Markdownnull
Shard167 (laksa)
Root Hash8638000032767748167
Unparsed URLedu,ua!catalog,/undergraduate/engineering/computer-science/courses/ s443