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
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)
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 380
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
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
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.

Prerequisite(s): CS 101 and MATH 301
Prerequisite(s) with concurrency: MATH 302
CS
202
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): CS 102 or CS 150 or CBH 101 or CS 100 or PLCS of 380
CS
205
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
CS
220
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
CS
250
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
CS
260
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)
CS
285
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): CS 102 or CS 150 or CBH 101 or CS 100 or PLCS of 380
CS
302
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): CS 102 or CS 150 or CBH 101 or CS 100 or PLCS of 380
CS
305
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
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
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): CS 102 or CS 150 or CBH 101 or CS 100 or PLCS of 380
CS
345
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
CS
350
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
CS
351
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
CS
360
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
CS
385
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
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 315; and CS 350 or CS 351 or CS 352; and CS 360; 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 315, CS 360, and ECE 383; and CS 350 or CS 351 or CS 352
CS
415
Hours
3
Software Design & Development

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

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352; and CS 360; 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 315, (CS 350 or CS 351), CS 360, 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 315, (CS 350 or CS 351), CS 360, 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 315 and CS 350 or CS 351; and CS 360 and ECE 383
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 315 and CS 350 or CS 351 or CS 352; and CS 360 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 315 and ECE 383; and CS 350 or CS 351 or CS 352; and CS 360
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 315; and CS 350 or CS 351 or CS 352; and CS 360 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 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 315; and CS 350 or CS 351 or CS 352; and CS 360; and ECE 383
CS
440
Hours
3
Computers, Ethics and Society

Social, legal, and ethical aspects of computing: privacy, free speech, intellectual property, crimes, the work place, risks, and professional ethics and responsibilities.

Prerequisite(s): CS 315 and CS 360 and ECE 383 and CS 350 or CS 351 or CS 352
CS
448
Hours
3
Network Security

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

Prerequisite(s): CS 200, CS 201 and ECE 383
CS
457
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 315; and CS 350 or CS 351 or CS 352; and CS 360; 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 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 315; and CS 350 or CS 351 or CS 352; and CS 360; and ECE 383
CS
470
Hours
3
Computer Algorithms

Construction of efficient algorithms for computer implementation.

Prerequisite(s): CS 315; and CS 350 or CS 351 or CS 352; and CS 360; 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 315, CS 360, and ECE 383; and CS 350 or CS 351 or CS 352
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 360; and CS 315 and CS 350 or CS 351 or CS 352; and ECE 383
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 315; and CS 350 or CS 351 or CS 352; and CS 360; 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.

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
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 350 or CS 351 or CS 352; and CS 315 and CS 360 and ECE 383
CS
499
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 315; and CS 350 or CS 351; and CS 360 and ECE 383