Computer Science

Program Overview

The Computer Science program at Rider is focused on providing a strong foundational education for its students.  Students in this program enjoy small class sizes, dedicated faculty and the opportunity to apply their skills to real-world problems in a variety of settings.  Computer science, with a focus on problem solving, optimization, collaboration and security, equips students to succeed in the workplace and in graduate school.  

Curriculum Overview

Students studying computer science will develop a broad technical understanding of the field, and will gain a deep appreciation of computing and its functions.  Students collaborate while applying their knowledge to real world problems.  During the course of their studies, students will develop a passion for lifelong learning and a professional responsibility to uphold ethical behavior.  Foundational classes in mathematics, physics and computer science prepare them for upper level courses on Computer Organization and Architecture, Operating Systems, Secure Software Engineering, Data Engineering and Parallel and Distributed Systems.  Students are offered a variety of upper-level electives, including Human Computer Interaction, Cybersecurity, and internship opportunities.  Rider’s computer science faculty are engaged in research and students are encouraged to apply their computational skills to a variety of research projects in the sciences.

Student Learning Outcomes

Graduates of the Computer Science major will be able to:

  1. Graduate with a broad technical understanding of computer science.
  2. Graduate with a deep appreciation of computing and its functions.
  3. Graduate with the ability to collaborate and apply their knowledge to real world problems.  
  4. Graduate with a passion for lifelong learning, professional responsibility to uphold ethical behavior.

Degrees Offered:

  • B.S. in Computer Science

Contact

John Bochanski, Ph.D.
Associate Professor
Department of Computer Science and Physics
School of Science, Technology and Mathematics
Hennessy Science and Technology Center  204B
609-896-5184
jbochanski@rider.edu

Program Website:  Computer Science
Associated Department: Department of Computer Science and Physics

Related programs:

 

Computer Science Major Requirements

Note: A grade of 'C'  or better is required in 100-level CSC or CYB courses.

(64 Credits)

Computer Science Core
Complete the following courses:
CSC 110Computer Science I3
CSC 120Computer Science II3
CSC 130Data Structures and Algorithms3
CSC 140Discrete Structures3
CSC 150Cyber Ethics and Societal Impact3
CSC 200Introduction to Software Engineering3
CSC 220Computer Organization and Architecture3
CSC 230Probability for Computer Science3
CSC 240Operating Systems3
or CYB 200 Operating Systems & Cybersecurity
CSC 350Analysis of Algorithms3
Mathematics
MTH 210Calculus I4
MTH 211Calculus II4
Physics
PHY 200
200L
General Physics I
and General Physics I Lab
4
PHY 201
201L
General Physics II
and General Physics II Lab
4
Elective Courses6
Select two of the following courses:
Computer Networks
Theory of Computation
Human-Computer Interaction
Database Systems 1,2
Parallel and Distributed Systems
Independent Research and Study
Internship in Computer Science
Track Requirements12
Complete one of the following tracks:
Track: Cyber Security
Ethical Hacking and Penetration Testing
Software Security Engineering
Network Defenses and Countermeasures
Cybersecurity Essentials
Track: Artificial Intelligence 3
Concept of Artificial Intelligence
Introduction to Machine Learning
Data Science and Big Data Analytics
Special Topics in Artificial Intelligence
Track: Software Engineering
Software Requirements & Modeling
Software Design & Construction
Software Testing, Verification, and Validation
Software Quality Assurance
Track: General 4
Select two of the following:
Software Requirements & Modeling
Cybersecurity Essentials
Concept of Artificial Intelligence
Software Design & Construction
Select two of the following:
Introduction to Machine Learning
Data Science and Big Data Analytics
Software Testing, Verification, and Validation
Software Quality Assurance
Special Topics in Artificial Intelligence
Total Credits64
1

 This course is offered through the Department of Information Systems, Analytics, and Supply Chain Management in the Norm Brodsky College of Business.

2

CIS 185 prerequisite is waived for CSC majors.

3

Note that this track requires an extra MTH class.

4

Students may also choose from the electives listed above, but are required to take unique courses (i.e., no double counting).

Computer Science Minor Requirements

(21 credits)

CSC 110Computer Science I3
CSC 120Computer Science II3
CSC 130Data Structures and Algorithms3
CSC 140Discrete Structures3
CSC 150Cyber Ethics and Societal Impact3
Select two of the following courses:6
Computer Organization and Architecture
Probability for Computer Science
Operating Systems
Software Security Engineering
Theory of Computation
Human-Computer Interaction
Cybersecurity Essentials
Analysis of Algorithms
Parallel and Distributed Systems
Data Science and Big Data Analytics
Total Credits21

Academic Plan of Study

The following educational plan is provided as a sample only.  Rider students who do not declare a major during their freshman year; who are in a Continuing Education Program; who change their major; or who transfer to Rider may follow a different plan to ensure a timely graduation.  Each student, with guidance from their academic advisor, will develop a personalized educational plan.

Plan of Study Grid
Year 1
Fall SemesterCredits
CSC 110 Computer Science I 3
CSC 140 Discrete Structures 3
MTH 210 Calculus I 1 4
CMP 120 Seminar in Writing and Rhetoric 3
HIS 150 Pre-Modern World: Evolution to Revolution 3
 Semester Credit Hours16
Spring Semester
CSC 120 Computer Science II 3
CSC 150 Cyber Ethics and Societal Impact 3
MTH 211 Calculus II 4
CMP 125 Seminar in Writing and Research 3
HIS 151
World in the Modern Era: Exploration to Globalization
or Contemporary World: Historical Perspectives
or Cold War: A Global History
3
 Semester Credit Hours16
Year 2
Fall Semester
CSC 130 Data Structures and Algorithms 3
CSC 230 Probability for Computer Science 3
Social Perspectives 3
Aesthetic Perspectives: Literature 3
Elective Course 2 3
 Semester Credit Hours15
Spring Semester
CSC 200 Introduction to Software Engineering 3
CSC 220 Computer Organization and Architecture 3
CSC 240
Operating Systems
or Operating Systems & Cybersecurity
3
Social Perspectives 3
Elective Course 2 3
 Semester Credit Hours15
Year 3
Fall Semester
PHY 200 General Physics I 4
PHY 200L General Physics I Lab 0
CSC Upper-Level Elective 3
CSC Track Elective 3
Foreign Language 3
Philosophical Perspectives 3
 Semester Credit Hours16
Spring Semester
CSC 350 Analysis of Algorithms 3
CSC Upper-Level Elective 3
PHY 201 General Physics II 4
PHY 201L General Physics II Lab 0
Foreign Language 3
Aesthetic Perspectives: Fine Arts 3
 Semester Credit Hours16
Year 4
Fall Semester
CSC Upper-Level Elective 3
CSC Track Elective 3
CSC Track Elective 3
Two Elective Courses 2 6
 Semester Credit Hours15
Spring Semester
CSC Upper-Level Elective 3
CSC Track Elective 3
Free Electives 2 5
 Semester Credit Hours11
 Total Credit Hours for Graduation120
1

 For course placement information see https://www.rider.edu/student-life/first-year-experience/orientation/placement-testing

2

 Please note that elective credits may be used to complete requirements in a second major or a minor.

Courses and Descriptions

CSC 105 Fundamentals of Computer Science 3 Credits

This course offers an introduction to fundamental areas of study in computer science - their applications, capabilities, and boundaries. Topics include computer organization, algorithms design and analysis, programming paradigms, software development process, operating systems responsibilities, applications, and communications. Hands-on python programming is also introduced in this course from a non-mathematical problem-solving point of view. Basic programming constructs include statements, expressions, variables, control structures, functions, and file operation.

CSC 110 Computer Science I 3 Credits

This course is an introduction to computer science and modern computing fundamentals. Students will develop programs and algorithms to solve a variety of problems posed in the natural sciences. Students will learn to code in Python, a widely adopted language, and learn the basics of algorithms, data types, program structure and development,

Prerequisite(s): MTH 105 or MTH 106 or MTH 210 or concurrent enrollment. MTH 210 or MTH 106 preferred for CSC majors.

CSC 120 Computer Science II 3 Credits

This course is an introduction to developing algorithms using abstract data types and the object-oriented methodology. Students will design and implement robust ADTs using Java, an object-oriented programming language. Students will learn how to develop their own algorithms and the best techniques for analyzing their performance. Students will be able to adapt the course knowledge to real world, practical challenges.

Prerequisite(s): CSC 110.

CSC 130 Data Structures and Algorithms 3 Credits

This course is a study of data structures and the algorithms used to process them. Topics include stacks, queues, lists, trees, graphs, sorting and searching techniques, recursive algorithms, and efficiency considerations. This course will give students a comprehensive study in data structures and algorithms which are the building blocks in programming.

Prerequisite(s): CSC 120.

CSC 140 Discrete Structures 3 Credits

This course is an introduction to the ideas and techniques from discrete mathematics as widely applied to Computer Science. Topics include sets, numbers, algorithms, logic, combinatorics, recursion principles, graph theory, trees, and discrete probability.

Prerequisite(s): MTH 105 or or concurrent enrollment or MTH 106 or concurrent enrollment or MTH 210 or concurrent enrollment.

CSC 150 Cyber Ethics and Societal Impact 3 Credits

This course will investigate the ethical and social challenges stemming from computing and telecommunication technology, as well as from mobile information-enabling devices. Topics include: cyber ethics, global and societal impact of the Internet, ethical analysis tools, ethical dimensions of computer system reliability, professional ethics, ethical frontiers in emerging technologies, privacy, security, intellectual property, cybercrime, and civil liberties in cyberspace. CSC 150 is a required course for CSC majors and minors. This course will be open to other math and science majors.

Prerequisite(s): CMP 120 or CMP 125 or BHP 100 or BHP 150 may be taken concurrently.

CSC 200 Introduction to Software Engineering 3 Credits

This course introduces software engineering ideas and concepts in the context of the software development life cycle. The course will discuss fundamental methodologies of software engineering, the Software Development Life Cycle (SDLC) and Unified Modeling Language (UML), which is a modeling language in the field of software engineering. It also concentrates on the five major phases of the SDLC: requirements engineering, requirements analysis, design, coding/implementation, and testing. Students will also learn about project management which is used for delivering high-quality software that satisfies customer needs and budgets. Prerequisite(s): Sophomore or Junior Standing

Prerequisite(s): CSC 120.

CSC 220 Computer Organization and Architecture 3 Credits

An introduction to the fundamental concepts of computer organization and architecture, this course explores how computer systems execute programs and manipulate data, working from the C programming language down to the microprocessor. Topics include: processor organization, Assembly and C programming languages, machine-level code, data representation, digital logic gates and Boolean algebra, computer arithmetic, code compilation, memory organization and management, interrupts, and performance evaluation and optimization. CS 220 is a required course for CS majors.

Prerequisite(s): CSC 130, CSC 140.

CSC 230 Probability for Computer Science 3 Credits

This course is an overview of probability theory and its application to computer science. Students will develop an understanding of combinatorics, variables, distributions, and parameter estimation. Applications to real world data and large datasets are also studied, with an introduction to machine learning.

Prerequisite(s): MTH 211 or concurrent enrollment.

CSC 240 Operating Systems 3 Credits

The course will study the basic concepts, design and implementation of operating systems. Topics to be covered include an overview of basic computing hardware components, operating system structures, process management, memory management, concurrency, resource allocation and scheduling, file systems, input/output systems, protection and security. CS 240 is a required course for CS majors.

Prerequisite(s): CSC 130.

CSC 250 Software Security Engineering 3 Credits

Secure software engineering focuses on both theoretical and practical perspectives in the development of software systems, exploring secure software design and development methods, software analysis, and reverse engineering. Emphasis is placed on security as part of the software engineering lifecycle, as well as on the correctness and robustness of code. CSC 250 is a required course for CS majors.

Prerequisite(s): CSC 200.

CSC 260 Computer Networks 3 Credits

This course provides an introduction to the design and analysis of computer networks. Topics include application layer protocols, transport layer protocols, network layer protocols, data link layer and physical layer protocols. Also, the course will explore state-of-the art topics in computer networks such as Software Defined Networking (SDN) technologies and network security problems, etc.

Prerequisite(s): CSC 120 with a grade of C or better; permission of instructor.

CSC 301 Software Requirements & Modeling 3 Credits

This course is intended to introduce students with the techniques for eliciting requirements. . The course will consider the past, present and future standards and approaches in requirements engineering. This course will specifically focus on identifying and analyzing requirements for various types of systems: embedded systems, consumer systems, web-based systems, business systems, systems for scientists and other engineers. Prereq(s): CSC 200.

CSC 310 Theory of Computation 3 Credits

This course introduces a formal framework for investigating both the computability and complexity of problems. Theoretical foundations of computer science and formal models of computation are covered. Students study several models of computation including finite automata, regular expressions, formal languages, Chomsky language hierarchy, context-free grammars and Turing machines. Topics include undecidable problems, the halting problem and the P versus NP problem.

Prerequisite(s): CSC 130 and CSC 140.

CSC 320 Human-Computer Interaction 3 Credits

This course presents Human-Computer Interaction (HCI) as a discipline that is concerned with technical advance, and that must integrate different disciplinary perspectives. Foundational theoretical issues deal with principles of human perception, visual representation and purposeful action, discussed in the context of novel interactive technologies and computer-based systems. It examines issues in the design of system interfaces from a number of perspectives: user, programmer, and designer.

Prerequisite(s): CSC 130.

CSC 340 Cybersecurity Essentials 3 Credits

This course is an in-depth study of the theories and practices for prevention of cyber attacks. Countermeasures discussed include education, encryption, virtual private networks, policies, practices, access controls, secure systems development, software assurance, verification and validation, firewall architectures, anti-virus, patching practices, personnel security practices, and physical security practices. Topics also include incident response, forensic investigations, business continuity plans, disaster recovery plans, and critical infrastructure protection.

Prerequisite(s): CSC 150.

CSC 350 Analysis of Algorithms 3 Credits

This course investigates methods for analyzing and designing efficient and reliable algorithms, emphasizing methods useful in practice. It introduces several algorithm design strategies that build on data structures and programming techniques learned in the introductory computer science course sequence. Topic coverage includes induction, divide-and-conquer, dynamic programming, network flow, randomization, complexity theory, greedy algorithms, searching and sorting algorithms, cryptographic algorithms, graph theory, hashing, and advanced data structures. CSC 350 is a required course for CS majors.

Prerequisite(s): CSC 130 and CSC 140.

CSC 360 Concept of Artificial Intelligence 3 Credits

This course offers an introduction to the basic principles, techniques, and applications of Artificial Intelligence. Topics to be covered include agent design, advanced search algorithms and heuristics, knowledge representation, logic, inference, game theory, advanced planning, and learning. Prereq(s): CSC 130 and CSC 230.

CSC 380 Parallel and Distributed Systems 3 Credits

Widely deployed in scientific computing centers and commercial data centers, large-scale parallel and distributed systems (PDS) are crucial to scientific discovery, business success, national security, and technology innovation. This course examines the design and analysis of large scale computing systems for processor- and data-intensive applications with the focus on the technologies and factors that impact the performance, power, resilience, and scalability of modern parallel and distributed systems. Topics include the organization of multicore computers, parallel computer clusters, computing grids, supercomputers, client-server systems, and peer-to-peer systems; computer networks and network protocols; network security; multithreaded programming; and network programming.

Prerequisite(s): CSC 220 and (CSC 240 or CYB 200).

CSC 390 Software Design & Construction 3 Credits

This course introduces students to software design methodologies and also equips them with the knowledge and skills necessary to design large-scale software and to improve the quality of end products. Design techniques and methodologies for improving the productivity of software development and the quality of software are introduced. The course explores fundamental design concepts and notations with emphasis on Unified Modeling Languages (UML) and design patterns.

Prerequisite(s): CSC 200.

CSC 400 Introduction to Machine Learning 3 Credits

This course focuses on the fundamental concepts, theories, and algorithms for machine learning. The course briefly covers topics in supervised, unsupervised, reinforced, and deep learning including clustering, association, regression, neural network, support vector machines, Bayesian decision theory, decision trees, ensemble learning- the nearest neighbor algorithm and random forest.

Prerequisite(s): MTH 240 and CSC 360.

CSC 410 Data Science and Big Data Analytics 3 Credits

This course serves as an introduction to the interdisciplinary and emerging fields of data science and big data analytics. Students learn to combine tools and techniques from computer science, statistics, data visualization and the social sciences to solve problems using data. Central themes include: the data science and data analytics processes; advanced analytical theory and methods; tools for working with both big and small datasets, statistical modeling, and machine learning. Specific topics and tools include: data wrangling and munging, machine learning algorithms, statistical models, data visualization, NoSQL, Weka, RapidMiner, R, Python, Hadoop, and MapReduce.

Prerequisite(s): CSC 360.

CSC 420 Software Testing, Verification, and Validation 3 Credits

This course discusses the concept software quality assurance and source code review. This course will help students understand the testing concepts and how they can easily apply the concepts to any software testing situation. This course presents the concepts and techniques for testing software and assuring its quality. Concepts that are taught as part of this course are software testing at the unit, module, subsystem, and system levels, automatic and manual techniques for generating and validating test data, the testing process, static vs. dynamic analysis, functional testing, web application testing, and reliability assessments.

Prerequisite(s): CSC 200.

CSC 430 Software Quality Assurance 3 Credits

The course aims to teach the basics of quality management in software development projects. Students will learn the definitions of quality of software product and software process. Students will learn about software quality assurance, software metrics and models in quality management, internal quality and external quality.

Prerequisite(s): CSC 420.

CSC 470 Special Topics in Artificial Intelligence 3 Credits

This is an upper level undergraduate course that covers advanced topics in Artificial Intelligence. Topics vary from one offering to the other. Topics that may be discussed include: Artificial Intelligence/ Machine Learning for Cybersecurity, Computer Vision, Robotics and Automation, Game Theory, Planning and Acting in the real World, Deep Learning, Reinforcement Learning, Decision-making under uncertainty, Image Processing, and Natural Language for Communication.

Prerequisite(s): CSC 360.

CSC 490 Independent Research and Study 3 Credits

Immerses the student in guided research. The student learns to organize material, use the literature, obtain reproducible data, and synthesize the results of the study. If possible, the student will publish the results or present them at a scientific meeting. Available to Junior or Senior students or Sophomores with permission of the department chair.

CSC 491 Internship in Computer Science 1-4 Credits

A supervised research experience in an approved organization where qualified students gain real-world knowledge and utilize their academic training in a professional environment. Placement may be in private, public, non-profit, or governmental organizations under the guidance of a mentor. The mentor and student will have regular consultation with the departmental internship coordinator to assess the student’s progress. Normally, 50 hours of internship per credit is required. The grade for the course will be determined by the student’s overall performance in their research work, a research paper documenting their work with their internship mentor and an oral or poster presentation at the end of the semester. Available for juniors and seniors.

Prerequisite(s): 2.5 GPA and permission of the instructor.