• 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 4750

    Database Systems
     Rating

    3.47

     Difficulty

    2.29

     GPA

    3.74

    Last Taught

    Fall 2025

    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 2150 or (CS 2120 and 3140) with a grade of C- or better

  • CS 4457

    Computer Networks
     Rating

    3.50

     Difficulty

    3.00

     GPA

    3.34

    Last Taught

    Fall 2025

    A first course in communication networks for upper-level undergraduate students. Topics include the design of modern communication networks; point-to-point and broadcast network solutions; advanced issues such as Gigabit networks; ATM networks; and real-time communications. Cross-listed as ECE 4457. Prerequisite: CS 3330 or CS 2501 topic "COA 2" or ECE 3430 or ECE 4435 or ECE 3502 topic "ECR II" or CS 3130. Must complete CS courses 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

  • 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 3501

    Special Topics in Computer Science
     Rating

    3.63

     Difficulty

    3.75

     GPA

    3.47

    Last Taught

    Spring 2025

    Content varies, depending on instructor interests and the needs of the Department. Taught strictly at the undergraduate level. Prerequisite: Instructor permission; additional specific requirements vary with topics.

  • CS 4444

    Introduction to Parallel Computing
     Rating

    3.67

     Difficulty

    4.33

     GPA

    3.04

    Last Taught

    Fall 2025

    Introduces the student to the basics of high-performance parallel computing and application development for massively parallel processors (e.g., GPUs). The course will also introduce the internal architecture of these parallel processors and its impact on performance.  Prerequisite:  CS 3100 and CS 3130 with a C- or better.

  • CS 6456

    Operating Systems
     Rating

    3.67

     Difficulty

    5.00

     GPA

    3.61

    Last Taught

    Spring 2025

    Covers advanced principles of operating systems. Technical topics include support for distributed OSs; microkernels and OS architectures; processes and threads; IPC; files servers; distributed shared memory; object-oriented OSs; reflection in OSs; real-time kernels; multiprocessing; multimedia and quality of service; mobile computing; and parallelism in I/O. Prerequisite: Undergraduate course in OS; CS 6354 or instructor permission.

  • CS 1010

    Introduction to Information Technology
     Rating

    3.69

     Difficulty

    2.12

     GPA

    3.61

    Last Taught

    Spring 2025

    How computers create, preserve, manipulate and communicate information and the concepts and tools used to that end. Units include how computers work, web technologies, creating web pages, algorithms and logic, basic programming, and solving problems with spreadsheets. Students will learn to recognize computational problems and develop basic skill sets to solve future problems in their discipline of study. No prior programming experience required. Cannot be taken for credit by students in SEAS.