Computer Science

Computer Programming 1

Credit: 1

Length: 1 semester

Prerequisites: College Algebra(MATH 1403) or exemption by placement in a higher math class.

Fulfills: Concurrent Credit Core - Science

Concurrent Credit: UAFS CS 1014 - Foundations of Programming 1 - 4 hours

Computer Programming 1 is an introductory computer science course. Because the development of computer programs to solve problems is a skill fundamental to the study of computer science and is increasingly important in all fields of applied sciences, a large part of the course is built around the development of computer programs or parts of programs that correctly solve a given problem.

Computer Programming 2

Credit: 1

Length: 1 semester

Prerequisites: Computer Programming 1 (CS 1014) and College Algebra (MATH 1403) or exemption by placement in a higher math course.

Fulfills: Concurrent Credit Core - Science

Concurrent Credit: UAFS CS 1024 - Foundations of Programming 2 - 4 hours

Computer Programming 2 is designed to provide a challenging course that will improve students’ computing skills and expose them to more in-depth material on topics covered in the Computer Programming 1 course such as abstraction, logic, and data structures. Programming methodology will be the focus of this course with a stronger emphasis on problem solving and algorithm development. This course is primarily designed for students considering Computer Science or Engineering as major areas of college study. Students completing this course will be prepared to pass the AP Computer Science A exam.

Computer Programming 3

Credit: 1

Length: 1 semester

Prerequisites: Computer Programming 2 and Calculus 1 (MATH 2804)

Fulfills: Concurrent Credit Core - Science

Concurrent Credit: UAFS CS 2003 - Data Structures - 3 hours

The Computer Programming 3 course is an extension of the Computer Programming II course. It extends a more rigorous study of topics covered in the “CP2” course with the inclusion of additional topics such as linked lists, stacks, binary trees, recursive data structures, dynamically allocated structures and invariants. It is recommended for students considering the study of Computer Science as a major in college.

Introduction to Web Application Development

Credit: 1

Length: 1 semester

Prerequisites: Computer Programming 2 (CS 1024)

Fulfills: Concurrent Credit Core - Science

Concurrent Credit: UAFS CS 2033 - Web Systems - 3 hours

Introduction to Web Application Development will provide the foundations for creating dynamic pages using both server side and client side scripting. Students will learn how to make dynamic pages that can react to user input, access information in databases, and generate custom output. 

Game Programming

Credit: 1/2

Length: 1 semester

Co-requisites: Computer Programming 1 or Computer Programming 2, or Instructor Approval

Fulfills: STEM elective

Concurrent Credit: None

Students will create, test, and utilize a 2D game engine. Topics include: game loops, sprites, rigid body simulations, animations, user input, particles.

Graphics Programming

Credit: 1/2

Length: 1 semester

Prerequisites: None

Fulfills: STEM elective

Concurrent Credit: None

Introduction to the theory and algorithms used in computer graphics systems and applications. Topics include: 2D and 3D geometric models (points, lines, polygons, surfaces), affine transformations (rotation, translation, scaling), viewpoint calculation (clipping, projection), lighting models (light-material interactions, illumination and shadow calculation), machine vision. Students will implement their own graphics pipeline to demonstrate many of these techniques. 

 Cryptography

Credit: 1/2

Length: 1 semester

Prerequisites: College Algebra(MATH 1403), Discrete Mathematics is recommended but not required

Fulfills: STEM elective

Concurrent Credit: none

Cryptography is the science of secret writing with the goal of protecting the meaning of a message. This course will be a hybrid math and computer science course. Topics include Substitution Ciphers, Block Ciphers, RSA cryptography, the Diffie-Hellman and Elgamal Encryption systems, and Elliptic Curve cryptography. The mathematical principles behind these encryption methods include topics from algebra, number theory, and abstract algebra. Students will learn the pertinent mathematics and how to write programs that encrypt and decrypt messages using the various encryption systems covered in the course.