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 CBH 102 or (CS 150 and ECE 285)) and (MATH 125 or MATH 145)
Computer Science
CS
102
Hours
3
Microcomputer Applications

Familiarization with Windows, fundamental and intermediate word processing commands, spreadsheet applications, and database management. (Credit for this course will not be applied to the requirements for a computer science degree).

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. This course is restricted to Math and Math Education majors only.

Prerequisite(s) with concurrency: MATH 112 or MATH 115 or MATH 125 or MATH 126 or MATH 145 or MATH 146
CS
120
Hours
3
Business Programming I

An introduction to programming. The topics include procedural information enabled problem formulation, design and development of business computer solutions. This course concentrates on the construction and testing of individual programs.

Prerequisite(s): MATH 112 or MATH 115 or MATH 121 or MATH 125
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
150
Hours
2
Programming I

An introductory course that teaches programming and program development. The emphasis of the course is the rapid acquisition of programming, testing, debugging and system skills. Topics include sequence, selection, iteration, arrays, functions and recursion.

Prerequisite(s): (MATH 112 and MATH 113) or MATH 115 or UA Subject Math Placement Test Score (PLAC) of 565 or UA Math Placement Test Score (PLMA) of 440
Prerequisite(s) with concurrency: MATH 125 and MATH 126 and MATH 145 and MATH 146
CS
160
Hours
1
Computer Science Concepts

Introductory programming laboratory that focuses on basic problem solving concepts.

Prerequisite(s): Credit for MATH 112 or placement into MATH 115 or above.
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
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 and MATH 301
Prerequisite(s) with concurrency: MATH 302
Computer Science
CS
202
C
Hours
3
Intro to the Internet

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.

Prerequisite(s): Grade of D- or higher in CS 102 or CS 150 or CBH 101 or CS 100, or PLCS of 380
Computer Science
CS
205
C
Hours
3
Web Site Design

A course designed to teach website design principles and implementation techniques. 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
220
C
Hours
3
Business Programming II

This course builds on the concepts and expertise gained in data driven problem solving and computer programming. It explores problem formulation, solution designing and object-oriented construction of business applications. This course concentrates on problem decomposition, design, construction and testing of individual programs. Computing proficiency is required for a passing grade in this course.

Prerequisite(s): CS 120 or CBH 101
Computer Science
CS
250
C
Hours
2
Programming II

A second course in programming that builds upon the concepts covered in CS 150. The emphasis is to improve and solidify program development skills as well as to introduce students to multimedia programming. Computing proficiency is required for a passing grade in this course.

Prerequisite(s): CS 150 or CS 100
Computer Science
CS
260
C
Hours
3
Foundations of Comp Science

An introduction to the science of Computer Science. Topics include: introduction to complexity, O(n), searching, sorting, design strategies, problem solving, arrays, linked lists, stacks, queues, and binary search trees.

Prerequisite(s): CS 150 or CS 100 or CBH 101 and (CS 160 or ECE 285)
Computer Science
CS
285
C
Hours
3
Microcomputer Appl II

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.

Prerequisite(s): Grade of D- or higher in CS 102 or CS 150 or CBH 101 or CS 100, or PLCS of 380
Computer Science
CS
302
C
Hours
3
Computerized Database Systems

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.

Prerequisite(s): Grade of D- or higher in CS 102 or CS 150 or CBH 101 or CS 100, or PLCS of 380
Computer Science
CS
305
C
Hours
3
Advanced Computerized Database Systems

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.

Prerequisite(s): CS 302 with a grade of D- or higher
Computer Science
CS
315
Hours
3
Software 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 260 and (CS 250 or ECE 285)
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.

Prerequisite(s): Grade of D- or higher in CS 102 or CS 150 or CBH 101 or CS 100, or PLCS of 380
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.

Prerequisite(s): CS 340 with a grade of D- or higher
Computer Science
CS
350
C
Hours
2
Programming III: Java

The third course in programming that builds upon the concepts covered in CS 250 and transitions to the Java programming language. The emphasis is on building larger projects using production languages and development environments. Computing proficiency is required for a passing grade in this course.

Prerequisite(s): CS 250 or ECE 285
Computer Science
CS
351
C
Hours
2
Programming III: C++

The third course in programming that builds upon the concepts covered in CS 250 and transitions to the C++ programming language. The emphasis is on building larger projects using production languages and development environments. Computing proficiency is required for a passing grade in this course.

Prerequisite(s): CS 250 or ECE 285
Computer Science
CS
360
C
Hours
4
Data Structures & Algorithms

Basic concepts of data, linear lists, strings, arrays, trees, graphs, and the related storage of representations and structures. Applications include expression conversion, sorting, searching and dynamic storage allocation. Computing proficiency is required for a passing grade in this course.

Prerequisite(s): MATH 301; and CS 250 or ECE 285; and CS 260;
Prerequisite(s) with concurrency: MATH 302 and CS 350 and CS 351 and CS 352
Computer Science
CS
385
C
Hours
3
Prototyping In Visual Environm

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
395
Hours
1
Competitive Programming I

A study of techniques and practices that promote success in competitive programming contests.

CS
396
Hours
1
Competitive Programming II

Advanced study of techniques and practices that promote success in competitive programming contests. Must have 3 hours of credit in CS 395.

Prerequisite(s): CS 395
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 200 or CS 315)Minimum Grade of C- AND (CS 201 or CS 360)Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352)Minimum Grade of C- AND (ECE 383)Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
CS
415
Hours
3
Software Design & Development

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

Prerequisite(s): (CS 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
CS
426
Hours
3
Intro Operating Systems

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

Prerequisite(s): (CS 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 315; and CS 350 or CS 351 or CS 352; and CS 360; 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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
CS
448
Hours
3
Network Security

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

Prerequisite(s): (CS 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
CS
457
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 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
Writing
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 426
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
CS
470
Hours
3
Computer Algorithms

Construction of efficient algorithms for computer implementation.

Prerequisite(s): (CS 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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.

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 315 or CS 200; and CS 360 or CS 201; 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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
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 200 or CS 315) Minimum Grade C- AND (CS 201 or CS 360) Minimum Grade of C- AND (CS 101 or CS 350 or CS 351 or CS 352) Minimum Grade of C- AND (ECE 383) Minimum Grade of C-
Writing