Fall 2019

Course Code Title/Instructor Meets
COMP 130-01 Introduction to Computing
Instructor: Grant Braught
Course Description:
Please see the Computer Science Advising Guide for placement advice to determine if 130 or 132 is the correct course for you. https://www.dickinson.edu/homepage/319/computer_science_advising 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: Grant Braught, Lev Fruchter
Course Description:
Please see the Computer Science Advising Guide for placement advice to determine if 130 or 132 is the correct course for you. https://www.dickinson.edu/homepage/319/computer_science_advising 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.
1030:MWF   TOME 118
1500:T   TOME 118
COMP 132-01 Introduction to Computer Science II
Instructor: Farhan Siddiqui
Course Description:
Please see the Computer Science Advising Guide for placement advice to determine if 130 or 132 is the correct course for you. https://www.dickinson.edu/homepage/319/computer_science_advising A problem-solving course that utilizes object-based software design using Java. Topics include code modularity and reusability, recursion, data storage, and the 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: 131 or one year of object-oriented programming in Java and instructor's permission. Three hours classroom and two hours laboratory a week. Offered every semester.
0930:MWF   TOME 118
1330:M   TOME 118
COMP 203-01 Cyber and Information Security
Instructor: James Whitmore
Course Description:
Cross-listed with INST 290-03. Cybersecurity incidents represent a serious threat to governments, organizations and individuals. This course will explore the concepts and concerns that guide business executives, policy makers, and information technology professionals to address risks to computer systems and sensitive information. After reviewing industry, national and international security standards and practices, students will have the opportunity to analyze recent high impact incidents and craft cybersecurity plans for organizations and software development life cycles.
1500:MR   TOME 231
COMP 232-01 Data Structures and Problem Solving
Instructor: Michael Skalak
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.
1030:MWF   TOME 231
COMP 331-01 Operations Research
Instructor: Richard 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.
0930:MWF   TOME 121
COMP 332-01 Analysis of Algorithms
Instructor: Richard Forrester
Course Description:
Completion of both COMP 251 and COMP 332 fulfills the WID Requirement. 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.
1330:MR   TOME 231
COMP 356-01 Programming Language Structures
Instructor: Michael Skalak
Course Description:
An examination of the major programming language paradigms. The course also explores the basic properties and special facilities of languages representing each paradigm. Topics include data types, scope rules, block structures, procedure calls and parameter types, and storage allocation considerations. Prerequisite: 232. Offered every fall.
0900:TR   TOME 231
COMP 491-01 Fall Senior Seminar
Instructor: Farhan Siddiqui
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. 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.
1330:TF   TOME 231
COMP 500-01 Distributed & Cloud Computing
Instructor: Farhan Siddiqui
Course Description: