Please update your web browser or disable Compatibility View.

oldCourseDescriptions

130 Computing: Science and Applications
Credits:
 4
Prerequisite: Math proficiency

An overview of computing and its applications from a scientific perspective, designed to equip students with the basic tools needed to understand computers and use them effectively. Students will study the basic architecture of computers, the structure of programming, and the design of spreadsheets and databases. Through regularly scheduled labs they will gain hands-on experience with applications to scientific and business problems. Not intended for students majoring in the sciences.

161 Introduction to Problem-Solving and Programming. 
Credits: 4
Prerequisite: Math proficiency

Introduces the fundamental concepts of problem-solving and programming from an object-oriented perspective. Through the study of object-oriented design, this course also introduces the basics of human-computer interfaces, graphics, and the social implications of computing.

162 Problem Solving, Programming and Data Representation
Credits: 4
Prerequisite: 161

Continues the introduction to object-oriented problem-solving begun in CSCI 161, with an emphasis on algorithms, data structures and the social context of computing, along with significant coverage of software development.

217 Topics in Computer Science
Credits: 1-4
Prerequisite: Consent of instructor

Selected computer science topics such as enrichment courses in particular programming languages.

230 Software Development
Credits:
 4
Prerequisites: 162, MATH 118 or 119 or 120

Provides an intensive, implementation-oriented introduction to the software-development techniques used to create medium-scale interactive applications, focusing on standard techniques and skills for software design such as the Unified Modeling Language(UML) and design pattern, and for software coding such as class design by contract(DBC), package design, code documentation, debugging, testing, version controlling, and refactoring.

239 Discrete Computational Structures
Credits: 4
Prerequisites: MATH 118 or 119 or 120

Offers an intensive introduction to discrete mathematical structures as they are used in computer science. Topics include functions, relations, sets, propositional and predicate logic, simple circuit logic, proof techniques, elementary combinatorics, discrete probability and functional programming.

271 Individual Learning Project
Credits: 1 to 4
Prerequisite: not available to first-year students

Supervised reading or research at the lower-division level. Permission of department chair required. Consult department for applicability towards major requirements.

310 Computer Organization
Credits:
 4
Prerequisite: 162 and either 239 or MATH 239

Introduction to computer systems and architecture. Topics include digital systems, machine level data representation, processor design, assembly level machine organization, memory systems, system control, organization of operating systems, concurrency and scheduling.

312 Data Communications and Networks
Credits: 4
Prerequisite: 310

Introduction to the concepts, terminology and approaches used in data communication systems. Topics include protocol stacks as models and implementations, signal encoding, media for transmission, analysis of network architectures, addressing and routing, error and flow control, connection management and security.

317 Topics in Computer Science
Credits:
 1 to 4
Prerequisite: Consent of instructor

Selected computer science topics such as distributed processing systems, graphics or artificial intelligence. May be repeated for credit.

318 Topics in Software Development
Credits:
 1 to 4
Prerequisite: Consent of instructor

Selected computer science topics requiring a major software development project. May be repeated for credit.

321 Computer Graphics
Credits:
 4
Prerequisite: 230 and either 239 or Math 239

This course will survey programming techniques for producing three-dimensional computer graphics. Topics will include event-driven programming, geometric objects and transformations, viewing, shading, and animation.

330 Software Engineering
Credits:
 4
Prerequisite: 230

Examines the methods and tools used to determine information requirements of a business, construct logical models of business processes, prepare specifications for program development, prepare procedures and documentation, and test, install and maintain an information system.

331 Database Systems
Credits: 4
Prerequisite: 230

Introduction to physical file organization and data organization techniques, including an examination of data models, file security, data integrity and query languages. Discussion will focus on examples which illustrate various data models.

338 Algorithms, Concurrency and the Limits of Computation
Credits: 4
Prerequisite: 162 and either 239 or MATH 239

Introduction to formal methods for the design and analysis of complex algorithms, with an emphasis on developing students' problem-solving abilities. Focuses on computational resources and ways of conserving both time and memory.

339 Theoretical Foundations of Computer Science
Credits:
 4
Prerequisite: 161 and either 239 or MATH 239

Introduction to the theoretical structures of programming languages and computers. Topics include regular expressions, formal grammars, abstract automata and computability.

340 Organization of Programming Languages
Credits: 4
Prerequisite: 339

The structure, design and application of various programming language paradigms, with emphasis on the principles and semantics of languages.

341 Compiler Theory
Credits: 4
Prerequisite: 339

Introduction to the design and construction techniques of modern language compilers, including both parsing and code generation.

350 Operating Systems
Credits: 4
Prerequisite: 310

The fundamentals of the software that drives the computer, including single-user, multi-user and multi-tasking systems. Topics include networks, file systems, task scheduling, multiprocessing, memory management, user interfaces and peripheral devices.

369 Ethical Issues in Computing
Credits:
 4
Prerequisite: 230 or 310 or 339

Examines a variety of philosophical and ethical questions that arise within the development and use of computer technology. Students will become familiar with several models of ethical reasoning and will apply these approaches to questions in a variety of areas of computer science, including artificial intelligence, nanotechnology, software development, and cyberspace.

371 Individual Learning Project
Credits: 1 to 4
Prerequisite: Not available to first-year students

Supervised reading or research at the upper-division level. Permission of department chair and completion and/or concurrent registration of 12 credits within the department required. Consult department for applicability towards major requirements.

372 Individual Senior Research
Credits: 0 to 4

Individualized experimental, theoretical or applied projects for seniors. Each student intensively explores a topic, writes a major research paper, and makes a formal presentation to the department. May be repeated for up to 4 credits.

373 Senior Research in Computer Science Topics
Credits: 4
Prerequisite: senior standing

Directed research in computer science organized around a selected topic and conducted in a seminar format. Includes consideration of computer science research methodology and analysis of current research in the seminar topic. Each student intensively explores a topic, writes a major research paper and makes a formal presentation to the department.

398 Honors Senior Essay, Research or Creative Project
Credits: 4
Prerequisite: HONR 396 and approval of the department chair and director of the honors program

Required for graduation with "All-College Honors'' and "Departmental Distinction in Computer Science'' and "Departmental Distinction in Numerical Computation''.