Skip to Center for Data, Mathematical, and Computational Sciences site navigationSkip to main content

Curriculum

Undergraduate Programs

All of the undergraduate programs below can lead to a graduate degree in any of the disciplines the Center supports. If you are just starting out in your college career, take a look!  Students enrolled in these majors might want to consider the 4+1 BS to MS Degree option.

Ramapo

Graduate Programs

The Center supports three Master of Science degrees, all of which share resources and faculty. Students in all three programs take many similar courses. See below for specific degree requirements.

Ramapo

Graduate Course Catalog

CMPS 530 – Python for Data Science

This course introduces students to the fundamental programming concepts and skills utilized by Data Scientists » in particular parallel computing, input/output, and visualization – all through the Python programming language and associated libraries (i.e. numpy, pandas, etc). The course is suitable for students with a basic knowledge of programming, and prepares students to take more advanced computing courses in databases, big data analytics, machine learning, and other DATA and CMPS electives.

CMPS 531 – Data Structures and Algorithms

The first part covers data structures to efficiently store, organize, modify, and access data. Topics include: arrays, stacks, queues, linked lists, trees, hash tables, priority queues, and graphs. The second part covers the design and analysis of algorithms for solving computer science problems. Topics include: algorithm analysis, exhaustive search algorithms, divide-and-conquer algorithms, greedy algorithms, and dynamic programming algorithms.

CMPS 547 – Foundations of Computer Science

This course provides a foundational overview of programming language design, including compiled languages as well as higher level scripting languages. The course introduces students to concepts such as grammars, binding, scope, flow control, and data abstraction – through the lense of multiple languages. Students will also gain experience programming across language interfaces.

CMPS 611 – Operating System Design

An advanced study of the design, use, and analysis of operating systems. The course will include a study of the supportive computer architecture, memory management, process management, multi-core application design, device control, and evaluation of modern operating system design.

CMPS 620 – Machine Learning

This course provides students with the mathematical underpinnings of machine learning along with the software development skills to develop models and integrate machine learning into practical applications. Topics include foundational techniques such as linear and logistic regression and extend to deep learning and other state of the art techniques. Students will also obtain an understanding of both the capabilities and limitations of machine learning, and its responsible applications.

CMPS 631 – Computer Architecture

Topics in processor design and architecture, addressing modes, design and management of memory hierarchies, and virtual memory, multiprocessing, multitasking, process communications, principles of pipeline processing, classification of parallel architectures and data flow architectures. This course will provide the insight necessary to develop more effective software. The key goal of the course is to provide students a deep background in how digital microprocessors work on a fundamental level. Students will learn how architecture, instructions, and data flow in modern CPUs are implemented in hardware, and how these map to higher level programming languages and the operating system, which are covered in other courses within the curriculum. An emphasis on simulation and design will expose students to the types of problem solving and programming skills required at the hardware level of a computer system.

CMPS 645 – Analysis of Algorithms

This course provides a study of computer algorithms at an advanced level. The emphasis is on the design of efficient algorithms and data structures, proofs of their correctness, and analysis of their complexity. A number of algorithmic concepts and techniques are covered, including recursion, incremental design, divide-and-conquer, greedy algorithms, amortized analysis, and dynamic programming. Advanced data structures such as AVL trees, red-black trees, and B trees are discussed. Applications of algorithms will come from a variety of fields, such as data compression, encoding digital images, feature extraction as used in machine learning, efficient database access, and bioinformatics. The topics of NP-hard and NP-complete problems will be examined.

CMPS 664 – Big Data and Database Design

The study of the design and implementation of both relational and distributed databases. The course will include parallel programming models for large-scale data processing on a large number of computing systems, file systems to store large data sets across a network of machines, tools to create and manage clusters of large number of processing units. Methods to maintain data consistency during large-scale l/O operation on disk are also covered.

CMPS 688 – Networks

The design and implementation of network applications will be presented in this course. TCP/IP using Berkeley Sockets will provide the network interface.

CMPS 730 – Fieldwork Experience

This is a projects-based course, developed in conjunction with industry sponsors and faculty. Students work closely with faculty and sponsors over one or more semesters on a Computer Science project. The program merges aspects of a co-op or internship and faculty-mentored independent study or thesis. Students will be required to file progress reports with the faculty project mentor, along with a final presentation submitted to the project stakeholders and Computer Science convening group.

Opportunities to enroll in this course are subject to the availability of projects sponsored by the College, industry or government representatives, or faculty. Availability will be announced prior to each semester, and students may enroll in the course to fulfill one of their Category 1 electives. Enrollment will be granted at the discretion of participating faculty and the Computer Science program director.

CMPS 750 – Computer Science Thesis

All M.S. students will be required to complete a Master’s Thesis under the advisement of a faculty member. This requirement is distinct from any Fieldwork Experiences the students participate in – however students participating in Fieldwork Experiences for more than one semester may have their thesis requirement waived.

Thesis projects represent independent research, developed and implemented by the student. Thesis projects require a written thesis to be submitted to the faculty advisor, along with a panel of Computer Science faculty. The project also requires an oral presentation, made to the faculty advisor and panel. Grading is P/F for this course.

Enrollment requires students to meet with the Computer Science Graduate Program Director, obtain approval of a project idea, and select a faculty advisor prior to registration. Registration for Spring semester requires project approval and advisor selection prior to the end of October, registration for Fall semester requires project approval and advisor selection prior to the end of April.

DATA 601 – Introduction to Data Science

This course serves as the foundation for all DATA graduate level coursework. It will cover programming, data analysis, data visualization, ethics and security/privacy concerns surrounding data and other topics students are expected to master in the program. The course will also feature a Seminar component designed to acclimate students to working with industry Sponsors and to hear first hand from people working in Data Science.

DATA 620 – Ethics in Data and Computing

This course is focused on ethical concerns around the acquisition, preparation, storage, and usage of data, and the applications of computing. The course may include topics such as: fairness in machine learning, technical bias, data protection (including privacy-preserving mechanisms), regulatory frameworks, transparency and interpretability, and proper use vs. misuse of collected data. In discussing these topics, students will consider varying stakeholder perspectives and weigh the inherent trade-offs faced by decision makers.

DATA 670 – Data Visualization

The course provides students with the fundamental concepts and tools needed to understand the emerging role of data visualization in organizations. Students will learn techniques and algorithms for creating effective visualizations based on principles from graphic design, visual art, perceptual psychology, and cognitive science. The course will also provide a tool based exposure for visualization and communication of the visual analysis. This course is cross listed with MBAD670.

DATA 687 – Time Series Data

This course will cover sequential and time series data analysis techniques. Students will apply mathematical models aimed at describing time series processes and using these models to create visualizations, predictions, and insights into the data. Practical applications of these concepts will be supported though lab sessions utilizing common programming languages is the field, such as R or Python.

DATA 730 – Fieldwork Experience

This is a projects-based course, developed in conjunction with industry sponsors and faculty. Students work closely with faculty and sponsors over one or more semesters on a domain-specific Data Science project. The program merges aspects of a co-op or internship and faculty-mentored independent study or thesis Students will be required to file progress reports with the faculty project mentor, along with a final presentation submitted to the project stakeholders and Data Science convening group. Opportunities to enroll in this course are subject to the availability of projects sponsored by the College. industry or government representatives, or faculty. Availability will be announced prior to each semester, and students may enroll in the course to fulfill one of their Data Science electives. Enrollment will be granted at the discretion of participating faculty and the Data Science program director.

DATA 750 – Data Science Thesis

All M.S. students will be required to complete a Master’s Thesis under the advisement of a faculty member. This requirement is distinct from any Fieldwork Experiences the students participate in – however students participating in Fieldwork Experiences for more than one semester may have their thesis requirement waived.

Thesis projects represent independent research, developed and implemented by the student. Thesis projects require a written thesis to be submitted to the faculty advisor, along with a panel of Data Science faculty. The project also requires an oral presentation, made to the faculty advisor and panel. Grading is P/F for this course.

Enrollment requires students meet with the Data Science Graduate Program Directory, obtain approval of a project idea, and select a faculty advisor prior to registration. Registration for Spring semester requires project approval and advisor selection prior to the end of October, registration for Fall semester requires project approval and advisor selection prior to the end of April.

MATH 540 – Cryptography

Cryptography is the field of mathematics that looks at methods to establish safe means of communication, especially in the situation where an adversary is attempting to discover or subvert that communication. How can we guarantee the security of the messages we send, so that only the intended recipients of the message are able to read them?

In this course we look at a variety of protocols that allow for provably secure communication. The student in this class will learn about public-key cryptography, block ciphers, elliptic curve cryptography, Weil pairing, lattice-based encryption, and zero knowledge proofs. These methods constitute current practice in the field of cryptography. We will also consider the threat and challenges to secure encryption from quantum computers.

MATH 562 – Applied Linear Algebra

This course is a foundational course for the study of Linear Algebraic structures used in a variety of scientific and computational applications, such as data fitting, clustering, feature engineering, image processing, machine learning, optimization, and dynamical systems. In order to achieve this purpose, this course will cover topics in linear algebra including vector and matrix operations, linear transformations, linear independence, norms, decomposition, and least squares.

MATH 570 – Applied Statistics

This course gives an introduction to statistical methods used in data science with an emphasis on applications. Topics may include foundations of probability, univariate and multivariate random variables and distributions, special distributions, Central Limit Theorem, one- and two-sample methods, point estimation, interval estimation, hypothesis testing, regression analysis, Bayesian analysis, data analysis and model building.

MATH 645 – Numerical Analysis

Numerical analysis is an essential tool for Data Science, Computer Science, and Applied Mathematics. It makes it possible to solve problems which are difficult or impossible for conventional mathematics. The topics in this course include: the solution of equations and systems of equations using Newton’s method and other iteration schemes, interpolation, method of least squares (linear and nonlinear regression) for curve fitting, numerical integration, numerical solution of systems of linear equations, solution of minimax problems, Monte Carlo methods and the numerical solution of ordinary differential equations. Error analysis will be performed on each method.

MATH 654 – Applied Probability

This course will cover the fundamental concepts in probability theory and their applications. Probability theory will introduce concepts for single random variables and then extend into multiple random variables, including distributions and classifications of random variables. Applications will focus on real-world problems utilizing data analysis and uncertainty. Computer simulations will be an embedded component throughout the course.

MATH 680 – Advanced Mathematical Modeling

This course requires students to develop, use, and assess models to solve real-world problems using the mathematical modeling process. Models developed in a variety of disciplines, including linear programming, network science, decision theory, machine learning, are studied and used to solve problems in other disciplines.

MATH 685 – Introduction to Experimental Design

This course will cover the principles of experimental design including the collection, analysis and interpretation of data acquired from designed experiments. The identification and implementation of a variety of design structures will be studied, along with the statistical model and methods of
analyzing data for each of these designs. The assessment of whether or not model assumptions are sufficiently met will be emphasized, along with how to clearly summarize and present the results of the analysis of a designed experiment.

MATH 730 – Fieldwork Experience

This is a projects-based course, developed in conjunction with industry sponsors and faculty. Students work closely with faculty and sponsors over one or more semesters on an Applied Mathematics project. The program merges aspects of a co-op or internship and faculty-mentored independent study or thesis. Students will be required to file progress reports with the faculty project mentor, along with a final presentation submitted to the project stakeholders and Mathematics convening group.

Opportunities to enroll in this course are subject to the availability of projects sponsored by the College, industry or government representatives, or faculty. Availability will be announced prior to each semester, and students may enroll in the course to fulfill one of their Category 2 electives. Enrollment will be granted at the discretion of participating faculty and the Applied Mathematics program director.

MATH 750 – Applied Mathematics Thesis

All M.S. students will be required to complete a Master’s Thesis under the advisement of a faculty member. This requirement is distinct from any Fieldwork Experiences the students participate in – however students participating in Fieldwork Experiences for more than one semester may have their thesis requirement waived.

Thesis projects represent independent research, developed and implemented by the student. Thesis projects require a written thesis to be submitted to the faculty advisor, along with a panel of Mathematics faculty. The project also requires an oral presentation, made to the faculty advisor and panel. Grading is P/F for this course.

Enrollment requires students to meet with the Applied Mathematics Graduate Program Director, obtain approval of a project idea, and select a faculty advisor prior to registration. Registration for Spring semester requires project approval and advisor selection prior to the end of October, registration for Fall semester requires project approval and advisor selection prior to the end of April.