Course Offerings

Fall 2020

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 - Lambert, Kenneth A. (Ken)

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 - Watson, Cody A.

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 - Lu, Kefu

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 - STAFF / Lambert, Kenneth A. (Ken)

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. Laboratory course.

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.

Software Development

CSCI 209 - Levy, Simon D.

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.

Topics in Computer Science

CSCI 297A - Watson, Cody A.

Readings and conferences for a student or students on topics agreed upon by the directing staff. May be repeated for degree credit if the topics are different. A maximum of six credits may be used toward the major requirements. Offered when interest is expressed and departmental resources permit.

Fall 2020, CSCI 297A-01: Topic: An Exploration of Canonical Machine-Learning Methods (3). Prerequisite: CSCI 112. Analyzing and implementing traditional machine learning models to understand the relationships amongst the features of that data. Students learn the process of feature discovery and engineering, in conjunction with statistical algorithms, to "learn" from the data. These algorithms allow for automatically applying complex mathematical calculations over large datasets. Learning from data affords us the ability to identify patterns and make informed decisions without human intervention. We explore regression algorithms, supervised algorithms, naïve Bayes classifiers, unsupervised algorithms, dimensionality reduction, and clustering algorithms. C. Watson.

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.

Video Game Design

CSCI 319 - Matthews, Elizabeth A. (Liz)

In this course, students learn to design and program video games using Python and the Pygame module. Concepts covered include video game code organization utilizing object-oriented programming, OOP design patterns, 2D animation, artificial intelligence, and responding to user feedback.

Parallel Computing

CSCI 320 - Lu, Kefu

A survey of parallel computing including hardware, parallel algorithms, and parallel programming. The programming projects emphasize the message-passing paradigm.

Honors Thesis

CSCI 493 - Levy, Simon D.

Honors Thesis.

Spring 2020

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.

Modeling and Simulation

CSCI 256 - Watson, Cody A.

Standard practices and applications of modeling and simulation. We explore ways to model complex systems that incorporate disciplines of biology, chemistry, and physics. Students learn critical-thinking skills when reading, comprehending, and analyzing real-world systems that they then create models for. Readings are supplemented by projects which reflect scenarios where modeling and simulation would be useful. Students are evaluated on a series of coding projects, class discussion, weekly quizzes, and exams measuring the ability to identify opportunities for application and to simulate models and their environments. A final project focuses on an open-modeling opportunity in biology, chemistry, or physics

Advanced Topics in Robotics

CSCI 316 - Levy, Simon D.

A review of advanced topics in robotics, including well-established topics like Bayesian filtering and control theory and current trends like intelligent robots and neuromorphic control. Readings in these areas are reinforced by hands-on projects with robot hardware and simulators. Students present their final projects at the culminating annual Spring Term Festival. Each class meeting includes lecture, discussion, and project work done in teams of one to four students, with weekly quizzes on the readings.

Winter 2020

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 - Lu, Kefu

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, Elizabeth A. (Liz)

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. Laboratory course.

Computer Organization

CSCI 210 - Watson, Cody A.

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.

Neural Networks and Graphical Models

CSCI 252 - Levy, Simon D.

A survey of the major developments in neural and belief networks, from the early perception models of the 1940s through the probabilistic Bayesian networks that are a "hot topic" in artificial intelligence today. Topics include the back-propagation algorithm, simple recurrent networks, Hopfield nets, Kohonen's Self-Organizing Map, learning in Bayesian networks, and Dynamic Bayesian Networks, with readings from both popular textbooks and the scholarly literature. A major focus of the course is on writing programs to implement and apply these algorithms.

Programming Language Design

CSCI 312 - Levy, Simon D.

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.

Directed Individual Study

CSCI 401 - Levy, Simon D.

Individual conferences. May be repeated for degree credit if the topics are different.

Directed Individual Study

CSCI 401 - Sprenkle, Sara E.

Individual conferences. May be repeated for degree credit if the topics are different.

Directed Individual Study

CSCI 402 - Lambert, Kenneth A. (Ken)

Individual conferences. May be repeated for degree credit if the topics are different.

Directed Individual Study

CSCI 403 - Matthews, Elizabeth A. (Liz)

Individual conferences. May be repeated for degree credit if the topics are different.

Honors Thesis

CSCI 493 - Matthews, Elizabeth A. (Liz)

Honors Thesis.