Course Offerings

Winter 2023

See complete information about these courses in the course offerings database. For more information about a specific course, including course type, schedule and location, click on its title.

Fundamentals of Programming I

CSCI 111 - Sprenkle, Sara E.

A disciplined approach to programming with Python. Emphasis is on problem-solving methods, algorithm development, and object-oriented concepts. Lectures and formal laboratories.

Fundamentals of Programming I

CSCI 111 - Matthews, Elizabeth A. (Liz)

A disciplined approach to programming with Python. Emphasis is on problem-solving methods, algorithm development, and object-oriented concepts. Lectures and formal laboratories.

Fundamentals of Programming I

CSCI 111 - / Khan, Mohammad Taha (Taha)

A disciplined approach to programming with Python. Emphasis is on problem-solving methods, algorithm development, and object-oriented concepts. Lectures and formal laboratories.

Fundamentals of Programming II

CSCI 112 - Matthews, Geoffrey

A continuation of CSCI 111. Emphasis is on the use and implementation of data structures, introductory algorithm analysis, and object-oriented design and programming with Python.

Fundamentals of Programming II

CSCI 112 - Lu, Kefu

A continuation of CSCI 111. Emphasis is on the use and implementation of data structures, introductory algorithm analysis, and object-oriented design and programming with Python.

Computer Organization

CSCI 210 - Khan, Mohammad Taha (Taha)

Multilevel machine organization studied at the levels of digital logic, microprogramming, conventional machine, operating system, and assembly language.

Algorithm Design and Analysis

CSCI 211 - Lu, Kefu

Methods for designing efficient algorithms, including divide-and-conquer, dynamic programming, and greedy algorithms. Analysis of algorithms for correctness and estimating running time and space requirements. Topics include advanced data structures, graph theory, network flow, and computational intractability.

Programming Language Design

CSCI 312 - Matthews, Geoffrey

Formal language description tools, semantic concepts and syntactic constructs appropriate to diverse applications. Comparison of several high-level languages, such as Haskell, Erlang, Java, and PROLOG, and the implementations of these syntactic and semantic elements. Students also learn several programming paradigms, such as the function-oriented, object-oriented, and logic-oriented.

Artificial Intelligence

CSCI 315 - Levy, Simon D.

Basic concepts of heuristic search, game playing, natural language processing, and intelligent systems, with a focus on writing programs in these areas. Course combines a discussion of philosophical issues with hands-on problem solving.

Computer Graphics

CSCI 340 - Matthews, Elizabeth A. (Liz)

In this course we develop several graphical systems via programming. The course covers, among other topics, the application of linear algebra for the creation of graphical images, raytracing, and polygonal graphics. Knowledge is developed about the computer generation of shapes, lighting, textures, material properties, camera parameters, and perspective. The necessary mathematical background is developed during the course.

Directed Individual Study: Indexing Graffiti of Ancient Rome

CSCI 401B - Sprenkle, Sara E.

Individual conferences.

Honors Thesis

CSCI 493 - Levy, Simon D.

Honors Thesis.

Fall 2022

See complete information about these courses in the course offerings database. For more information about a specific course, including course type, schedule and location, click on its title.

Survey of Computer Science

CSCI 101 - / Tolley, William J.

An overview of the discipline of computer science achieved through an introductory-level survey of a number of major areas of computer science. Topics include algorithms used for computer solutions of important practical problems, computer programming, digital logic applied to computer circuitry, computer architecture, data representation and organization, Web page basics, computer networks, and theoretical limits of computation. Lectures and formal laboratories.

Fundamentals of Programming I

CSCI 111 - / Ahmad, Hammad

A disciplined approach to programming with Python. Emphasis is on problem-solving methods, algorithm development, and object-oriented concepts. Lectures and formal laboratories.

Fundamentals of Programming I

CSCI 111 - Matthews, Geoffrey

A disciplined approach to programming with Python. Emphasis is on problem-solving methods, algorithm development, and object-oriented concepts. Lectures and formal laboratories.

Fundamentals of Programming I

CSCI 111 - Matthews, Elizabeth A. (Liz)

A disciplined approach to programming with Python. Emphasis is on problem-solving methods, algorithm development, and object-oriented concepts. Lectures and formal laboratories.

Fundamentals of Programming II

CSCI 112 - Levy, Simon D.

A continuation of CSCI 111. Emphasis is on the use and implementation of data structures, introductory algorithm analysis, and object-oriented design and programming with Python.

Software Development

CSCI 209 - Sprenkle, Sara E.

An examination of the theories and design techniques used in software development. Topics include the software life cycle, design patterns, the Unified Modeling Language, unit testing, refactoring, rapid prototyping, and program documentation.

Introduction to Machine Learning and Big Data

CSCI 230 - / Watson, Cody A.

This course is an intermediate-level computer science course that gives an overview of machine learning algorithms, concepts, and applications. We will begin with an understanding of how to systematically extract and prepare data for these types of models. We will explore common machine learning models such as linear regression, logistic regression, support vector machines, k-nearest neighbors, random forest, hidden Markov models, Bayesian networks, and others. Students will be exposed to how to train and evaluate the quality of their models. This evaluation includes a thorough investigation into whether the models present bias and what techniques can be employed to mitigate these limitations.

Theory of Computation

CSCI 313 - Levy, Simon D.

A study of the principles of computer science embodied in formal languages, automata, computability, and computational complexity. Topics include context-free grammars, Turing machines, and the halting problem.

Database Systems

CSCI 317 - / Khan, Mohammad Taha (Taha)

This course will provide a theoretical and practical implementation of database systems. Students will learn how databases work, particularly how they store, index, and query data. Broadly, the course will focus on the fundamentals of database design, data models, relational algebra and the description and semantics of query languages including SQL and NoSQL. Advanced topics will include database security, distributed and Internet databases, and large-scale data analysis.

Directed Individual Study: Social Media Algorithms

CSCI 401A - Sprenkle, Sara E.

Honors Thesis

CSCI 493 - / Levy, Simon D.

Honors Thesis.

Spring 2022

See complete information about these courses in the course offerings database. For more information about a specific course, including course type, schedule and location, click on its title.

A WALK THROUGH THE AGES

CSCI 257 - Watson, Cody A. / Toporikova, Natalia

ADVANCED TOPICS IN ROBOTICS

CSCI 316 - Levy, Simon D.

CLOUD COMPUTING

CSCI 326 - Lu, Kefu