• CS 4774

    Machine Learning
     Rating

    3.35

     Difficulty

    3.06

     GPA

    3.75

    Last Taught

    Fall 2025

    An introduction to machine learning: the study of algorithms that improve their performance through experience. Covers both machine learning theory and algorithms. Introduces algorithms, theory, and applications related to both supervised and unsupervised learning, including regression, classification, and optimization and major algorithm families for each.Prerequisites: CS 2150 or CS 3100 with a grade of C- or better; APMA 3100, APMA 3110, MATH 3100, or equivalent and Math 3350 or APMA 3080 or equivalent

  • CS 2100

    Data Structures and Algorithms 1
     Rating

    3.27

     Difficulty

    3.07

     GPA

    3.62

    Last Taught

    Fall 2025

    A second course in computing with an emphasis on foundational data structures and program analysis. The course provides a introduction to object oriented programming and the Java programming language, concurrency, and inheritance / polymorphism. Additionally, foundational data structures and related algorithms / analysis are studied. These include lists, stacks, queues, trees, hash tables, and priority queues. Prereq: CS 1110 or CS 1111 or CS 1112 or CS 1113 or place out test for CS 1110 or CS 2100  

  • CS 1110

    Introduction to Programming
     Rating

    3.97

     Difficulty

    3.13

     GPA

    3.41

    Last Taught

    Fall 2025

    A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. No previous programming experience required. Note: CS 1110, 1111, 1112, 1113, and 1120 provide different approaches to teaching the same core material; students may only receive credit for one of these courses. Students may not enroll if CS 2100 or CS 3140 has been completed.

  • CS 4720

    Mobile Application Development
     Rating

    3.05

     Difficulty

    3.14

     GPA

    3.67

    Last Taught

    Fall 2025

    Mobile computing devices have become ubiquitous in our communities. In this course, we focus on the creation of mobile solutions for various modern platforms, including major mobile operating systems. Topics include mobile device architecture, programming languages, software engineering, user interface design, and app distribution. Prerequisite: CS 2150 or CS 3140 with a grade of C- or better

  • CS 4710

    Artificial Intelligence
     Rating

    3.38

     Difficulty

    3.20

     GPA

    3.63

    Last Taught

    Fall 2025

    Introduces artificial intelligence. Covers fundamental concepts and techniques and surveys selected application areas. Core material includes state space search, logic, and resolution theorem proving. Application areas may include expert systems, natural language understanding, planning, machine learning, or machine perception. Provides exposure to AI implementation methods, emphasizing programming in Common LISP. Prerequisite: CS 2150 or CS 3100 with a grade of C- or better

  • CS 3140

    Software Development Essentials
     Rating

    3.43

     Difficulty

    3.27

     GPA

    3.26

    Last Taught

    Fall 2025

    A first course in software engineering and software construction, this course focuses on bringing the programming concepts learned in a first course in data structures and algorithms together to begin to teach students how to build more complex systems. The course covers introductory topics in testing, software design principles, design patterns, functional programming, and data storage and manipulation. Completed CS 2100 with a C- or better.

  • CS 4640

    Programming Languages for Web Applications
     Rating

    3.52

     Difficulty

    3.27

     GPA

    3.56

    Last Taught

    Spring 2025

    Presents programming languages and implementations used in developing web applications. Both client and server side languages are presented as well as database languages. In addition, frameworks that enable interactive web pages are discussed as well as formatting languages. Language features and efficiencies including scoping, parameter passing, object orientation, just in time compilation and dynamic binary translation are included. Prerequisite: CS 2150 or CS 3140 with a grade of C- or better

  • CS 4630

    Defense Against the Dark Arts
     Rating

    3.23

     Difficulty

    3.31

     GPA

    3.32

    Last Taught

    Fall 2025

    Viruses, worms, and other malicious software are an ever-increasing threat to computer systems. There is an escalating battle between computer security specialists and the designers of malicious software. This course provides an essential understanding of the techniques used by both sides of the computer security battle. Prerequisite: CS 3710 with a grade of C- or better

  • CS 4610

    Programming Languages
     Rating

    3.33

     Difficulty

    3.44

     GPA

    3.48

    Last Taught

    Fall 2025

    Presents the fundamental concepts of programming language design and implementation. Emphasizes language paradigms and implementation issues. Develops working programs in languages representing different language paradigms. Many programs oriented toward language implementation issues. Prerequisite: CS 2150 or (CS 2120 and 3140) with a grade of C- or better

  • CS 4620

    Compilers
     Rating

    3.50

     Difficulty

    3.50

     GPA

    3.65

    Last Taught

    Fall 2024

    Provides an introduction to the field of compilers, which translate programs written in high-level languages to a form that can be executed. The course covers the theories and mechanisms of compilation tools. Students will learn the core ideas behind compilation and how to use software tools such as lex/flex, yacc/bison to build a compiler for a non-trivial programming language.Prerequisite: CS 2150 or (CS 2120 and 3140) with a grade of C- or better