Spring 2020

Course Code Title/Instructor Meets
COMP 130-01 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 taken another Dickinson Computer Science course. Three hours classroom and two hours laboratory a week. Offered every semester.
0830:MWF   TOME 118
1500:W   TOME 118
COMP 130-02 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 taken another Dickinson Computer Science course. Three hours classroom and two hours laboratory a week. Offered every semester.
1130:MWF   TOME 118
1500:R   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: None. See Advising Guide for placement advice for 130 and 132. Three hours classroom and two hours laboratory a week. Offered every semester.
0930:MWF   TOME 118
1300:W   TOME 118
COMP 241-01 Numerical Methods
Instructor: Dick Forrester
Course Description:
Cross-listed with MATH 241-01. An introduction to numerical methods for solving mathematical problems. Topics chosen from interpolation, numerical differentiation and integration, solutions to linear and nonlinear systems, numerical solutions to differential equations and related topics. Prerequisite: Completion of two of the following courses: MATH 170,171, 211 and 270. This course is cross-listed as MATH 241. Offered in even numbered spring semesters.
0930:MWF   TOME 121
COMP 241-02 Numerical Methods
Instructor: Dick Forrester
Course Description:
Cross-listed with MATH 241-02. An introduction to numerical methods for solving mathematical problems. Topics chosen from interpolation, numerical differentiation and integration, solutions to linear and nonlinear systems, numerical solutions to differential equations and related topics. Prerequisite: Completion of two of the following courses: MATH 170,171, 211 and 270. This course is cross-listed as MATH 241. Offered in even numbered spring semesters.
1030:MWF   TOME 121
COMP 256-01 Computing Abstractions
Instructor: Grant Braught
Course Description:
A broad examination of the role and evolution of the abstraction hierarchies that enable the construction of complex computing systems. Examples spanning the field of computer science will be used, including: machine organization and architecture, data representation, language translation, operating systems, concurrency, networks, and web application architectures. Prerequisite: 132. Three hours of classroom and two hours of laboratory a week. Offered every spring.
1030:MWF   TOME 118
1500:T   TOME 118
COMP 314-01 Computability and Complexity
Instructor: Allen Tucker
Course Description:
Cross-listed with MATH 314-01. An introduction to the theory of computation, addressing the fundamental question of what problems can be solved using computers, both in principle and when efficiency is taken into account. Topics may include: finite automata, undecidable problems (such as the halting problem), Turing machines, regular languages, context-free grammars, universal computation, elementary complexity classes, NP-completeness, and the P vs NP problem.Prerequisites: 132 and MATH 211. This course is cross-listed as MATH 314. Offered every spring.
1030:TR   TOME 231
COMP 354-01 Operating Systems
Instructor: Grant Braught, Shikha Mittal
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.
1500:MR   TOME 231
COMP 378-01 Database Systems
Instructor: Allen Tucker
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.
0900:TR   TOME 231
COMP 492-01 Spring Senior Seminar
Instructor: Farhan Siddiqui
Course Description:
A continuation of the senior capstone course. Students continue the year-long project begun in 491. Class readings and discussions will focus on additional 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 and a final public presentation of the completed project will be required. Prerequisite: 491. Offered every spring.
1330:TF   TOME 231