Graduate Coursework

Data Science

(Fall 2023)

Digital Forensics

(Fall 2023)

Machine Learning

(Fall 2023)

Computer Communications and Networks*

(Fall 2022)


Programming Languages*

(Fall 2022)

Computer Algorithms*

(Fall 2022)

Computer Security*

(Fall 2022)

Undergraduate Coursework

Intermediate Python Programming

(Spring 2023)


Capstone Computing

(Spring 2023)

Operating Systems

(Spring 2022)

Python Programming

(Spring 2022)

Database Management Systems

(Spring 2022)

Data Structure and Algorithms

(Fall 2021)

Microcomputers

(Spring 2021)

Software Engineering & Java Programming

(Spring 2021)

C++ Programming

(Fall 2020)

C Programming

(Spring 2020)

Public Speaking

(Spring 2020)

Honor's Moral Forum

(Fall 2019)

Course Descriptions (A-Z)

From The University of Alabama Course Catalog

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.

Computer Algorithms
Construction of efficient algorithms for computer implementation.

Computer Communications and Networks
The student 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.

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.

C++ Programming
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.

C Programming
A first course in programming for students majoring in computer science. Language concepts include primitives, variables, sequences, functions, selection, iteration, and recursion. Software engineering concepts include testing and debugging. System concepts include directories, paths, files, and text editing.

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.

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.

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.

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.

Honor's Moral Forum
This class seeks to introduce University Honors Program students to moral discourse and civil deliberation via the analysis of one particular controversial moral resolution. Student teams will participate in the Moral Forum Tournament, where they will be required to use ethical theories to argue for and against the resolution. The moral issue debated is based on current events that offer varied, balanced arguments from multiple ethical perspectives.

Microcomputers
Microprocessors, microcontrollers, assembly-language programming, interrupts, polling, and hardware interfaces. Computing proficiency is required for a passing grade in this course. Includes laboratory experiments.

Operating Systems
Study of basic operating system concepts with an emphasis on memory, processor, device, and information management.

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-programming paradigms.

Public Speaking
Theory and practice of basic principles of public speaking, with emphasis on the compositional and presentational aspects of communication in formal speaking situations.

Python Programming
A course designed to introduce programming and problem solving using Python. 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.

Software Engineering & Java Programming
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.



*Credit also applied to undergraduate course requirements