• CS 2100

    Data Structures and Algorithms 1
     Rating

    3.27

     Difficulty

    3.07

     GPA

    3.62

    Last Taught

    Spring 2026

    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 4501

    Special Topics in Computer Science
     Rating

    3.81

     Difficulty

    3.00

     GPA

    3.62

    Last Taught

    Spring 2026

    Content varies annually, depending on instructor interests and the needs of the department. Similar to CS 5501 and CS 7501, but taught strictly at the undergraduate level. Prerequisite: Must have completed CS 2100 with a grade of C- or better. Additional specific requirements vary with topics.

  • CS 4710

    Artificial Intelligence
     Rating

    3.35

     Difficulty

    3.19

     GPA

    3.63

    Last Taught

    Spring 2026

    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 3100 with a grade of C- or better

  • CS 4720

    Mobile Application Development
     Rating

    3.05

     Difficulty

    3.14

     GPA

    3.67

    Last Taught

    Spring 2026

    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 3140 with a grade of C- or better

  • CS 3240

    Software Engineering
     Rating

    3.34

     Difficulty

    2.65

     GPA

    3.70

    Last Taught

    Spring 2026

    Analyzes modern software engineering practice for multi-person projects; methods for requirements specification, design, implementation, verification, and maintenance of large software systems; advanced software development techniques and large project management approaches; project planning, scheduling, resource management, configuration control, and documentation. Prerequisite: CS 3140 with a grade of C- or better

  • CS 3710

    Introduction to Cybersecurity
     Rating

    4.20

     Difficulty

    1.87

     GPA

    3.74

    Last Taught

    Spring 2026

    Introduces students to the fields of cybersecurity. Both non-technical issues, such as ethics and policy, and technical issues are covered. Students see and experiment with a wide range of areas within cybersecurity, including: binary exploitation, encryption, digital forensics, networks, and modern threats. Prerequisites: CS 2100 and CS 2130 or (CS 2100 place out test and CS 2130) with a grade of C- or better.

  • CS 4750

    Database Systems
     Rating

    3.47

     Difficulty

    2.29

     GPA

    3.74

    Last Taught

    Spring 2026

    Introduces the fundamental concepts for design and development of database systems. Emphasizes relational data model and conceptual schema design using ER model, practical issues in commercial database systems, database design using functional dependencies, and other data models. Develops a working relational database for a realistic application. Prerequisite: CS 2120 and 3140 with a grade of C- or better

  • CS 4774

    Machine Learning
     Rating

    3.28

     Difficulty

    3.05

     GPA

    3.75

    Last Taught

    Spring 2026

    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 3100 with a grade of C- or better. Background in topics covered in Probability and Linear Algebra is required.

  • CS 4993

    Independent Study
     Rating

    5.00

     Difficulty

    4.00

     GPA

    3.77

    Last Taught

    Spring 2026

    In-depth study of a computer science or computer engineering problem by an individual student in close consultation with departmental faculty. The study is often either a thorough analysis of an abstract computer science problem or the design, implementation, and analysis of a computer system (software or hardware). Prerequisite: Instructor permission.

  • CS 6501

    Special Topics in Computer Science
     Rating

    3.19

     Difficulty

    2.43

     GPA

    3.80

    Last Taught

    Spring 2026

    Course content varies by section and is selected to fill timely and special interests and needs of students. See CS 7501 for example topics. May be repeated for credit when topic varies. Prerequisite: Instructor permission.