麻豆区

Skip To Content Skip To Menu Skip To Footer

Computer Science Current Courses

Fall 2025

Course Code Title/Instructor Meets
COMP 130-01 Introduction to Computing
Instructor: Matt Ferland
Course Description:
An introduction to computer science as a scientific discipline. The key elements of computer programming will be introduced, using the Python programming language. This leads to techniques for solving problems and conducting scientific investigations via computation. Core topics include: programming constructs such as conditionals, loops, functions, and parameters; data structures such as arrays and dictionaries; libraries and objects; algorithmic techniques such as recursion; and software engineering techniques such as testing and debugging. Additional topics include social, legal and ethical issues raised by computing and computing for the greater good.Students may not take this course for credit if they have already received credit for COMP 132 or COMP 232.
11:30 AM-12:20 PM, MWF
TOME 118
03:00 PM-05:00 PM, M
TOME 118
COMP 130-02 Introduction to Computing
Instructor: John MacCormick
Course Description:
An introduction to computer science as a scientific discipline. The key elements of computer programming will be introduced, using the Python programming language. This leads to techniques for solving problems and conducting scientific investigations via computation. Core topics include: programming constructs such as conditionals, loops, functions, and parameters; data structures such as arrays and dictionaries; libraries and objects; algorithmic techniques such as recursion; and software engineering techniques such as testing and debugging. Additional topics include social, legal and ethical issues raised by computing and computing for the greater good.Students may not take this course for credit if they have already received credit for COMP 132 or COMP 232.
03:00 PM-05:00 PM, R
TOME 118
09:30 AM-10:20 AM, MWF
TOME 118
COMP 130-03 Introduction to Computing
Instructor: Lev Fruchter
Course Description:
An introduction to computer science as a scientific discipline. The key elements of computer programming will be introduced, using the Python programming language. This leads to techniques for solving problems and conducting scientific investigations via computation. Core topics include: programming constructs such as conditionals, loops, functions, and parameters; data structures such as arrays and dictionaries; libraries and objects; algorithmic techniques such as recursion; and software engineering techniques such as testing and debugging. Additional topics include social, legal and ethical issues raised by computing and computing for the greater good.Students may not take this course for credit if they have already received credit for COMP 132 or COMP 232.
03:00 PM-05:00 PM, W
TOME 118
08:30 AM-09:20 AM, MWF
TOME 118
COMP 132-01 Principles of Object-Oriented Design
Instructor: Farhan Siddiqui
Course Description:
An introduction to object-oriented software design using Java. Topics include objects, classes, code modularity and reusability, abstraction, encapsulation, inheritance, polymorphism, and design patterns. Additional topics include unit testing, recursion, empirical and theoretical comparison of elementary algorithms. The lab component focuses on programming as a tool for solving problems and simulating real-world events. Prerequisite: Equivalent of one course of prior programming experience. See Advising Guide for placement advice for 130 and 132. Three hours classroom and two hours laboratory a week. Offered every semester.
03:00 PM-05:00 PM, T
TOME 118
10:30 AM-11:20 AM, MWF
TOME 118
COMP 180-01 Introduction to Data Science
Instructor: Lulu Wang
Course Description:
Cross-listed with DATA 180-01 and MATH 180-01. An introduction to theprinciples and tools of data science focusing on exploratory data analysis. Topics include types of variables, mathematical representations of data, data wrangling and transformations, data visualization and numerical summaries, and supervised and unsupervisedmachinelearning. The course includes an introduction to the R statistical programming language.Prerequisites: MATH 170 or department placement. This course is cross-listed as DATA 180 and MATH 180. Offered every semester.
09:00 AM-10:15 AM, TR
DENNY 104
COMP 180-02 Introduction to Data Science
Instructor: Lulu Wang
Course Description:
Cross-listed with DATA 180-02 and MATH 180-02. An introduction to theprinciples and tools of data science focusing on exploratory data analysis. Topics include types of variables, mathematical representations of data, data wrangling and transformations, data visualization and numerical summaries, and supervised and unsupervisedmachinelearning. The course includes an introduction to the R statistical programming language.Prerequisites: MATH 170 or department placement. This course is cross-listed as DATA 180 and MATH 180. Offered every semester.
10:30 AM-11:45 AM, TR
DENNY 104
COMP 190-01 Tools and Techniques for Software Development
Instructor: William Goble
Course Description:
An introduction to the Unix command line environment, shell scripting, system administration, debugging tools and version control. Skills developed will be applied in the context of a Humanitarian Free and Open Source Software (HFOSS) project. Case studies of social, legal and ethical issues raised by computing and computing for the greater good will complement the technical skill development. Prerequisite: 132, may be taken concurrently. One-half credit. Graded CR/NC. 75 minutes of classroom per week. Offered every fall.
10:30 AM-11:45 AM, R
TOME 227
COMP 200-01 Data Systems for Data Analytics
Instructor: Zach Kessler
Course Description:
Cross-listed with DATA 200-01. A comprehensive introduction to the access, structure, storage, and representation of data as it applies to data analytics. The tabular data model, relational data model, and hierarchical data model are studied. Topics include the use of structured query language (SQL) to extract and manipulate data from a relational database, APIs to extract information from web services, and methodologies for processing unstructured data. The primary programming language used in the course is Python.Prerequisite: COMP 130 or 132, and DATA/COMP/MATH 180. Cross-listed with DATA 200. Offered every semester.
01:30 PM-02:45 PM, TF
STERN 11
COMP 203-01 Agent-Based Simulation
Instructor: Zach Kessler
Course Description:
Cross-listed with DATA 201-01 and ECON 314-03. In this course, you will expand your data science skills to explore Agent-Based Modeling using languages like Python and NetLogo. Through the semester we will explore a variety of applications in economics, sociology, ecology, and more, emphasizing data-driven simulations of complex systems. This robust method will enable you to create highly detailed models covering critical areas like supply chains and trade networks, the impact of commercial fishing on aquatic environments, the rapid disappearance of historic civilizations, the emergence of wealth inequality in economies, and the spread of misinformation in social networks. In addition to this toolkit, you will learn various programming principles such as vectorized programming, object-oriented design, and key principles of visualization. By the end of the course you will have a fundamental understanding of the core ideas of complex systems analysis, the ability to build agent-based models across a variety of contexts, and a collection of core programming skills which will assist you in building other advanced models.
03:00 PM-04:15 PM, TF
STERN 11
COMP 232-01 Data Structures and Problem Solving
Instructor: William Goble
Course Description:
An advanced problem-solving course that focuses on the design, analysis and application of data structures including lists, stacks, queues, trees, and hash tables. Concepts in generic and functional programming are introduced. This course also further develops understanding and use of asymptotic analysis. Prerequisite: 132. Offered every fall.
09:30 AM-10:20 AM, MWF
TOME 121
COMP 290-01 Large-scale and Open Source Software Development
Instructor: Grant Braught
Course Description:
An introduction to large-scale software development through participation in a Humanitarian Free and Open Source Software (HFOSS) project. Readings and discussions will focus on FOSS and HFOSS philosophy, licensing, communication tools, project and community organization, and software engineering topics related to large-scale software development. Case studies of social, legal and ethical issues raised by computing and computing for the greater good will complement participation in the HFOSS project. Prerequisites: 132 and 190. One-half credit. Graded CR/NC. 75 minutes of classroom per week. Offered every spring.
01:30 PM-02:45 PM, W
TOME 118
COMP 331-01 Operations Research
Instructor: Dick Forrester
Course Description:
Cross-listed with MATH 331-01. An introduction to deterministic operations research, including linear programming, sensitivity analysis, and duality. Special topics may include transportation and assignment problems, network models, integer programming, and game theory. Prerequisite: 262. This course is cross-listed as MATH 331. Offered in odd numbered fall semesters.
12:30 PM-01:20 PM, MWF
TOME 121
COMP 332-01 Analysis of Algorithms
Instructor: Matt Ferland
Course Description:
A study of algorithmic approaches to problem-solving and techniques for analyzing and comparing algorithms. Algorithm design strategies such as divide-and-conquer, dynamic programming, and backtracking will be explored in conjunction with problems that they solve and the data structures that they use (e.g. graphs). Topics in computational complexity include formal use of upper, lower and tight asymptotic bounds, analysis of recursive algorithms and lower bound arguments.Prerequisite: 232, MATH 211. Offered every fall.
01:30 PM-02:45 PM, TF
TOME 231
COMP 354-01 Operating Systems
Instructor: Farhan Siddiqui
Course Description:
A study of the principles underlying the organization and implementation of computer operating systems. Topics include multiprogramming, time-sharing, mutual exclusion and synchronization, process scheduling, memory management, and file systems. Prerequisites: 232 and 256.
10:30 AM-11:45 AM, TR
TOME 231
COMP 378-01 Database Systems
Instructor: John MacCormick
Course Description:
A study of the conceptual, technical and social issues involved in organizing, storing and accessing large volumes of data. Topics may include data modeling, relational database design, relational algebra, data definition languages, data manipulation languages, and the storage and manipulation of unstructured data. Prerequisites: 232 and MATH 211.
03:00 PM-04:15 PM, TF
TOME 231
COMP 491-01 Fall Senior Seminar
Instructor: Grant Braught
Course Description:
A senior capstone course. Students identify and begin a year-long project with options including honors and independent research projects or participation in a Free and Open Source Software (FOSS) project. Class readings and discussions will focus on social, legal and ethical issues in computing, software engineering topics and contemporary issues in computer science. Written and oral presentation of technical and non-technical content will be required. Prerequisite: 290 and Senior standing. Offered every fall.
09:00 AM-10:15 AM, TR
TOME 231