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): (MATH 112 and MATH 113) or MATH 115 or UA ACT Subject Math Placement 565 or UA Placement Mathematics 440
Prerequisite(s) with concurrency: MATH 125 or MATH 126 or MATH 145 or MATH 146
CS
101
C
Hours
4
CS II for Majors

A second course in programming for students majoring in computer science. Using a high-level language, student 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 100 or CS 110 or RRS 102) and (MATH 125 or MATH 145)
Computer Science
CS
102
C
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 overviews the core principles of computer science from a broad spectrum of topics. The course content is focused on computing and its relation to creativity, abstraction, algorithms, programming, Big Data, Internet/networking, and societal impact. Students will work on team-based projects that explore topics in Big Data, investigate the impact of the internet, and create their own games and/or smartphone applications.

Prerequisite(s) with concurrency: MATH 112 or MATH 115 or MATH 125 or MATH 126 or MATH 145 or MATH 146
CS
110
UH
Hours
4
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.

Prerequisite(s): (MATH 112 and MATH 113) or MATH 115 or UA ACT Subject Math Placement 565 or UA Placement Mathematics 440
Prerequisite(s) with concurrency: MATH 125 or MATH 126 or MATH 145 or MATH 146
University Honors
CS
111
UH
Hours
4
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.

Prerequisite(s): (CS 110 or CS 100 or RRS 102) and (MATH 125 or MATH 145)
University Honors
CS
121
Hours
1
The Discipline of Computing

An introduction to the discipline of computing designed for students who are considering a major or minor in computer science.

Prerequisite(s): MATH 112 OR higher OR UA Math Placement Test Score of 370
Prerequisite(s) with concurrency: MATH 112
CS
200
C
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.

Prerequisite(s): CS 101 or CS 111
Computer Science
CS
201
C
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.

Prerequisite(s): (CS 101 or CS 111) and MATH 301
Prerequisite(s) with concurrency: MATH 302
Computer Science
CS
202
C
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 HMTL 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. Computing proficiency is required for a passing grade in this course.

Computer Science
CS
285
C
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
300
Hours
3
Operating Systems

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

Prerequisite(s): CS 200, CS 201
CS
301
W
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 within this discipline is required for a passing grade in this course.

Prerequisite(s): CS 200 and CS 201
Writing
CS
302
C
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
C
Hours
3
Advanced Database Applications and Design

This course is designed for non-majors wishing to learn more about the use of database systems in a wide variety of applications. Coverage includes advanced database topics such as advanced queries, custom forms and custom reports. Computing proficiency is required for a passing grade in this course.

Prerequisite(s): CS 302 with a grade of D or higher
Computer Science
CS
312
C
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 with a grade of D or higher
Computer Science
CS
340
C
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
C
Hours
3
Advanced Legal and Ethical Issues in Computing

Using case study and fact pattern analysis, students will find and frame legal and ethical issues presented by past, contemporary and emerging technology. Students will engage in service learning to enhance their sense of civic responsibility. Computing proficiency is required for a passing grade in this course.

Prerequisite(s): CS 340 with a grade of D or higher
Computer Science
CS
385
C
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 with a grade of D or higher
Computer Science
CS
391
Hours
3
Special Topics

Special topics in computing.

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, CS 301 and ECE 383
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, CS 301 and ECE 383
CS
415
Hours
3
Software Design & Development

Object-oriented design and development using UML and Java, design patterns, and architectural patterns.

Prerequisite(s): CS 300, CS 301 and ECE 383
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, CS 301 and ECE 383
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, CS 301 and ECE 383
CS
420
Hours
3
Software Mainten. & Evolution

Study of software and its phases. Topics include techniques and tools for concept location, impact analysis, actualization, refactoring, and validation.

Prerequisite(s): CS 300, CS 301 and ECE 383
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 300, CS 301 and ECE 383
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, CS 301 and ECE 383
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, CS 301 and ECE 383
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, CS 301 and ECE 383
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 300, CS 301, and ECE 383
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 300, CS 301, and ECE 383
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 300, CS 301, and ECE 383
CS
448
Hours
3
Network Security

Concepts concerning network security, including an examination of network security concepts, algorithms, and protocols.

Prerequisite(s): CS 300, CS 301 and ECE 383
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.

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 300, CS 301, ECE 383
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 300, CS 301, and ECE 383
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, CS 301 and ECE 383
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 300, CS 301 and ECE 383
CS
470
Hours
3
Computer Algorithms

Construction of efficient algorithms for computer implementation.

Prerequisite(s): CS 300, CS 301 and ECE 383
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, CS 301 and ECE 383
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, CS 301 and ECE 383
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, CS 301 and ECE 383) or permission of instructor.
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, CS 301 and ECE 383
CS
492
Hours
1-3
Special Prob (Area)

Reading and research course designed to meet the needs of individual students. This course cannot be used as a required 400-level computer science elective.

Prerequisite(s): CS 300, CS 301 and ECE 383
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, CS 301 and ECE 383
CS
495
W
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 within this discipline is required for a passing grade in this course, and ethical issues are applied to the students’ future professions.

Prerequisite(s): (CS 403 or CS 470 or CS 475) Minimum Grade of C- AND three additional hours of 400-level CS classes
Writing
CS
499
W
Hours
3
Undergraduate Thesis Research

Independent research and participation within a faculty member's research group. Writing proficiency within this discipline is required for a passing grade in this course. Permission of the supervising faculty member is required.

Prerequisite(s): (CS 403 or CS 470 or CS 475) Minimum Grade of C- AND three additional hours of 400-level CS classes
Writing