An introduction to the principles, techniques, and tools used in the creation, organization, and manipulation of data in a modern computing environment. Topics will include: computer memory organization and binary data formats; files and filesystems; relational databases; modern "noSQL" datastores. Students will be introduced to some elementary programming in a language like Python. 3 credits.

CDS 142 Programming I

This course introduces the fundamentals of computer programming using the Java programming language. Control structures, types and the type system, and the design of methods and classes will be considered. 3 credits.

CDS 180 Language Lab

A self-paced, project-based approach to learning a computer programming language. Several different languages are available; students can take the course multiple times in order to develop familiarity with different languages. Graded pass/fail. This course may be repeated for credit as topic changes. Prerequisite: CDS 121, or other computer programming background and permission of the instructor. 1 credit.

CDS 241 Programming II

A continuation of CDS 142, students will extend and deepen their understanding of programming using Java. The course will cover three main topics: Object-oriented software organization; design and implementation of elementary data structures and algorithms; the mathematical tools and techniques required for complexity analysis. Prerequisite: CDS 142, or by permission of the instructor. 3 credits.

CDS 242 Algorithms and Data Structures

A study of the design, analysis, and application of data structures and algorithms. Trees, graphs, heaps, hash tables, and other structures will be considered. Several mathematical techniques (e.g., complexity analysis, recurrence relations, induction) will be studied and applied to understanding these algorithms and structures. The impact of modern computer hardware, especially caches and parallelism on the design and performance of data structures and algorithms will be considered. Prerequisite: CDS 142; MAS 111 or 161. 3 credits.

CDS 280 Introductory Data Analysis Lab

Projects in access to data and its analysis and manipulation, using the Java programming language. Prerequisite: CDS 121 and CDS 142. 1 credit.

One from the following:

MAS 111 Analysis I

A calculus sequence for department majors and other students desiring a rigorous introduction to elementary calculus. Fulfills general education requirement: Liberal Studies Area 4 (Mathematics). Corequisite: MAS-113. 4 credits.

MAS 161 Calculus I

A calculus sequence covering functions, limits, differentiation, integration and applications. Fulfills general education requirement: Liberal Studies Area 4 (Mathematics). 3 credits.

One from the following:

MAS 162 Calculus II

Second semester of a calculus sequence covering functions, limits, differentiation, integration and infinite series. Fulfills general education requirement: Liberal Studies Area 4 (Mathematics). Prerequisite: MAS 161. 3 credits.

MAS 270 Intermediate Statistics

A more advanced version of MAS 170 intended for students with some calculus background. Fulfills general education requirement: Liberal Studies Area 4 (Mathematics). A student may not receive credit for both MAS 170 and MAS 270. 3 credits.