Computer Science

Degrees and Certificates

Mission Statement of the Computer Science Department

In accordance with the University’s mission, the mission of the Computer Science Department is to equip our students with technology competence, literacy, knowledge and skills that will bring them to “their highest potential and prepare them to meet the challenges of the new century with informed minds and understanding hearts.” As part of a liberal arts University, the CS curricula contribute in providing our graduates with the necessary critical thinking and problem-solving skills needed by today’s workplace and society at large.

The purpose of the Computer Science major is to prepare students to work for government agencies, healthcare institutions, private companies, and to pursue graduate degrees. The field of Computer Science is one of the professions predicted by the U.S. Department of Labor to have very high growth through the year 2020. This program emphasizes an understanding of the field of Computer Science both as an academic discipline as well as a profession. Graduates of this program will be well-versed with various areas of Computer Science that have shaped the discipline during its explosive existence. In addition, this program will provide a firm grounding in the liberal arts, while assuring in-depth study of the discipline of computer science. Topics include software engineering, computer hardware and systems software, network and data communications, computer systems analysis and design, and database management systems.

Computer Science Learning Outcomes

At the end of their program in Computer Science/Cybersecurity Students will:

  1. Apply their ability to make connections between using computer technologies in their lives and in societal values.
  2. Understand how to act as a team worker to fulfill complex projects and tasks.
  3. Create a computer science related project showing their knowledge of the latest developments in computer science and cybersecurity.
  4. Understand the scientific basis of their discipline.
  5. Apply quantitative and scientific reasoning in their discipline.

See the program for School of Business for more degree information.

Classes

CS/CSEC 452: Internship in Computer Science

Credits 3

This course offers computer science majors the opportunity to work in the field of computer science for a minimum of 120 hours during the semester. Students must complete all paperwork to register for the Internship at least one semester before; students will meet with the Career Center and complete the application that will be sent to their advisor and site supervisor. This application will then be filed in the Career Center. Students must register for the class with the Registrar as well. They will be required to write a paper that is relevant to the Internship and maintain a journal that reflects their experience; the site supervisor will complete an evaluation form on their performance. This is a Pass/Fail course. (as needed)

CS/CSEC 460: Senior Project Development Practicum/Cybersecurity

Credits 3

Advanced CS majors will engage in and complete the design and implementation of one of the following types of systems: Information Systems, Real-Time Systems, Distribution Systems, etc. Students in the Cybersecurity program will develop projects related to the management of information security in information systems. (spring)

CS/CSEC 490: Independent Study

Credits 1 4

With the approval of the instructor, a student may arrange to pursue a course of independent study in a specific area of Computer Science, Information Assurance, Information Security, Cryptography, programming, adVanced graphics, database data mining or business intelligence or modeling and simulation. The course will involve tutorial meetings with the instructor, independent reading and work, and an in-depth research project. The course is normally taken by seniors, juniors or transfer students and may be taken in situations when a schedule conflict prevents a student from taking a regularly-scheduled Computer Science elective. (as needed)

CS/HCA 427: Healthcare Information Systems, Management of Data Protection and Regulatory Compliance

Credits 3

This course is an introduction to the various Information Technology, Regulatory and Administrative aspects of Informatics, Information Privacy and Security as it pertains to a modern health care electronic environment. An important area of this course covers HIPAA, the Healthcare Insurance Portability and Accountability Act, and subsequent modifications introduced by the more recent ARRA-HITEC laws. This very important regulatory component of the healthcare industry is composed of the Transactions, Privacy and Security Rules, which are studied in depth in this course, including the key issues associated with protecting information privacy, deter mining the levels of protection and response to privacy and security incidents, and the different forms, policies and procedures to be used in a health care environment. The study and practice of Electronic Health Records, important Information Systems used in the healthcare industry, as taught as part of this course, is a timely subject, since the U.S. Government is motivating the use of such enterprise systems in all level of the healthcare provider system and there is a national expansion in the use of such electronic systems, from large hospitals to small clinics. (fall)

CS 102: Digital Technology for Educators

Credits 4

Computer Applications for Educators is designed to provide an introduction to the integration and use of digital technology in educational settings. The purpose of this course is to guide pre-service teachers in understanding the issues surrounding technology integration in schools, and how digital technologies impact teaching and learning in the 21st century. The course addresses specific topics concerning various dimensions of technology integration and use in education, including historical, theoretical, ethical, equitable, practical, and pedagogical. Students develop technology-infused instructional environments that are student-centered, collaborative, and inquiry-based; that emphasize critical thinking; and that support specific curricular goals - as stated in the New Jersey Student Learning Standards.

CS 102: Computer Applications for Educators

Credits 3

Computer Applications for Educators is designed to provide an introduction to the integration and use of digital technology in educational settings. The purpose of this course is to guide pre-service teachers in understanding the issues surrounding technology integration in schools, and how digital technologies impact teaching and learning in the 21st century. The course addresses specific topics concerning various dimensions of technology integration and use in education, including historical, theoretical, ethical, equitable, practical, and pedagogical. Students develop technology-infused instructional environments that are student-centered, collaborative, and inquiry-based; that emphasize critical thinking; and that support specific curricular goals - as stated in the New Jersey Student Learning Standards.

CS 103: Introduction to Advanced Computer Applications

Credits 3
This course provides students with an over view of computer technology and applications for all disciplines. Topics include a brief introduction to the history of computers, computer hardware and software systems covering CPU, memory, storage, input/output devices, operating systems, networking, compiler concepts, programming basics and algorithms, databases and data mining, the Internet and WWW, information assurance and security, as well as the social impact of computer technologies in daily life and business. Students will have in-depth study of certain advanced computer applications (Excel, Access, and web page creation).

CS 104: Python I

Credits 3

This is an introductory programming course in Python. This course teaches students to use knowledge and skills learned from Scripting languages and build simple applications in system administration, scientific programming, Web Servers, and all sorts of business applications. Python is a modern, elegant, and high-level Scripting language, and is one of the most popular languages lately. By finishing this course, students should be able to design and implement applications by using Python to solve a standard application problem. This is a good course for students who have no programming experience and satisfies the Technology Acumen requirement for general education.

 

CS 110: Introduction to Programming I

Credits 4
This is the first programming course for CS majors/minors. It is designed for students with little or no programming experience. It covers basic principles and concepts of object-oriented programming including objects, classes, variables, data types, operators, pro gram control (conditional statements, loop statements, etc.) arrays, testing, debugging, and event handling. It also covers techniques for simplifying the programming process and improving code quality by solving problems. It is a programming project-based learning course in a computer lab. (fall)

CS 120: Introduction to Computer Science

Credits 3
This course covers the basic introduction to computer science, including binary numbers, Boolean logics and gates, computer systems organization, basic techniques for the analysis and design of algorithms, pseudo-language, the software world including introduction to high-level language programming, compilers and language translation, models of computation, as well as an introduction to different applications including simulation and modeling, electronic commerce and databases, artificial intelligence, computer graphics and games. (spring)

CS 140: Management Information Systems

Credits 3
This course covers the basic functions of computing systems at the management level of various types of organizations. The course focuses on how to plan, select, and implement a computerized system and how information systems can assist management in making decisions. Classroom discussions of case studies lend practicality to theory. Familiarity with accessing websites on the Internet is required.

CS 150: Fundamentals of Information Systems

Credits 3
tions, information systems growth, and pro cess improvement are introduced. This course covers Systems concepts; system components and relationships; cost/value and quality of information; competitive advantage of information; specification, design, and reengineering of information systems; application versus system software; package software solutions; procedural versus non-procedural programming languages; object oriented de sign; database features, functions, and architecture; networks and telecommunication systems and applications; characteristics of IS professionals and IS career paths; information security, crime, and ethics. Practical exercises may include developing macros, designing and implementing user interfaces and reports; developing a solution using database software. (spring)

CS 201: Programming Logic and Design

Credits 3
This course provides a language independent introduction to programming concepts and problem-solving skills without any previous programming experience. By using pseudocode, flowcharts, and other tools the students will earn how to design the logic of programs without the complication of language syntax. Topics include: input, processing and output, decision structures and Boolean logic, repetition structures, modules, functions, input validation, arrays, basic sorting and searching algorithms, menu-driven programs, text processing, object-oriented programming, GUI application and event-driven programming

CS 204: Python II

Credits 3

In this course, we will examine a range of advanced techniques for improving the performance of Python programs, including the use of parallel computation and GPU acceleration. We will investigate how Python can be used for big data analysis using frameworks such as Apache Hadoop and Apache Spark. Students will have the opportunity to employ these techniques and gain hands-on experience developing advanced Python applications. After completing this course, students are able to write advanced, well structured, computer programs in Python, and apply principles and techniques for optimizing the performance of Python numeric applications.

CS 205: Web Development and Scripting Languages

Credits 3
This course first presents introductions to basic concepts, issues and techniques related to designing, developing and deploying web sites. Students will learn about Web design, HTML, XHTML, basic JavaScript, Dynamic HTML, and XML. Students will learn how to create sites both manually and through the use of website development software. This course also presents building web applications by employing server-side scripts that query relational databases. The student learns and reflects on two and three-tier software architectures, separation of responsibility, modelview-controller pattern, basic security, and web frameworks. Students will design, code, test, debut, and document programs using a server-based scripting language.

CS 270: Introductions to Programming II

Credits 4

This is an advanced programming course for CS students. It provides in-depth coverage of object-oriented programming principles and techniques using object-oriented languages (C++, Java, etc.). Topics include classes, over loading, data abstraction, information hiding, encapsulation, inheritance, polymorphism, file processing, templates, exceptions, container classes, and low-level language features. The course briefly covers the mapping of UML design to implementation, using objectoriented language (C++, Java, etc.) and object-oriented considerations for software de sign and reuse. The course also relates objectoriented language to GUI, databases, and realtime programming. It is a programming project-based learning course in a computer lab. (spring)

CS 280: Computer Architecture and Organization

Credits 3
This course is an overview of digital electron ics and how circuits realize logic. Hardware components, i.e., gates, buses, and memory, and their use in constructing adders, comparators and addressing schemes are studied. This course also covers machine-level representation of data, computer architecture and organization at the machine level, assembly-level machine organization, interfacing and communication, memory systems organization and architecture, functional organization, multiprocessing and alternative architectures, performance enhancements, distributed architecttures, and future directions in computer science. (fall)

CS 290: Theoretical Foundations and Principles of Computer Science

Credits 3
This course introduces students to theoretical foundations and principles of computer science, including an overview of computational complexity. This course covers definitions of sets, operations on sets, formal logic, functions and relations, graphs and trees, graph algorithms, analysis of algorithms, finite automata, regular languages and regular gram mars, property of regular language, context-free languages, and Turing machines. The students will complete programming assignments connected with theory.

CS 299: Introduction to Mobile Application Development

Credits 3

Mobile computing devices have become ubiquitous in our communities. In this course, we focus on the creation of mobile solutions for various modern platforms, including major mobile operating systems. Students build apps using Swift and professional development environments, such as Xcode. In a class laboratory setting designed to mimic a real development shop, students will learn how to build apps and utilize tools such as Agile Project Management, version control, and pair programming. By the end of the course, students will not only have the skills to build their own apps, but also gain teamwork and time management skills

CS 318: Computer Informatics, Privacy and Security for Health Care Professionals

Credits 3
This course is a hands-on introduction to the various Information Technology, Regulatory and Administrative aspects of Informatics, Information Privacy and Security as it pertains to a Health Care modern electronic Environment. This course provides the foundation for understanding the Transaction Standards, Code Set, Identifiers, Privacy and Security that are part of HIPAA, the Healthcare Insurance Portability and Accountability Act. This very important regulatory component of the healthcare industry is composed of the Trans actions, Privacy and Security Rules, which are studied in depth in this course, including the key issues associated with protecting information privacy, determining the levels of protection and response to privacy and security incidents, and the different forms, policies and procedures to be used in a Health Care environment. This course leads to a Certificate in HIPAA Administration for students that pass the required exams with 80% of the total points or higher.

CS 320: Networks and Telecommunications

Credits 4
Students will gain in-depth experience of net working and telecommunications fundamentals including LANs, MANs, WANs, intra nets, the Internet, and the WWW. Data communication and telecommunication concepts, models, standards, and protocols will be studied. Installation, configuration, systems integration and management of infrastructure technologies will be practiced in the laboratory. This course covers telecommunication configurations; network and Web applications; distributed systems; wired and wireless architectures, topologies, and protocols; installation, configuration, and operation of bridges, routers, switches, and gateways; net work performance tuning; privacy, security, firewalls, reliability; installation and configuretion of networks; monitoring and management of networks; and communications standards (fall)

CS 350: Introduction to Operating Systems

Credits 3
This course provides explanation of operating systems theory and practice. This course covers: principles of operating systems, memory management, resource allocation, single task and multitasking operating systems, process management, threads, interrupt processing, process scheduling algorithms, concurrent processes, typical multiprocessing configure tions, process synchronization software, device management, file management, management of network functions, system management, common operating systems and their characteristics, Unix, Linus, Windows 7. The students will complete programming assignments. (spring)

CS 360: Database Management Systems (DBMS)

Credits 3
This course covers conceptual, logical, and physical data models, and modeling tools; structured and object design approaches; relational and object-oriented models for data bases; design tools, data dictionaries, repositories, warehousing, and data mining; database implementation including user interface and reports; multi-tier planning and implementation; data conversion and post implementation review. (fall)

CS 380: Data Structures and Algorithms

Credits 3
This course provides students with important aspects of data structures, including introduce tory data structures as well as advanced data structures and algorithms, the connection be tween data structures and their algorithms, analysis algorithms complexity, and presentation of data structures using object-oriented language. Topics includes complexity analysis, linked lists, stacks and queues, recursion, binary trees, graphs, sorting, and hashing. (fall)

CS 389: Foundations of Game Design and Development

Credits 3

This course covers a complete and practical approach to game design. Students learn the essentials skills of player-centric game design from initial concept to final turning. The topics include, but are not limited to, concept of game development, gameplay design, core mechanics of games, user interfaces, storytelling and balancing, analysis of the specific design challenges of all major game genres. In the end, students will be able to define challenges and actions at the heart of gameplay; write a high-concept document and a full design script; understand the essentials of user interface design and how to define a game's look and feel; design a variety of input mechanisms; construct a game's core mechanics; develop appealing stories and game characters; make their games acceptable to a broader audience, such as children, people with disabilities, and casual players.

CS 391: Game Development

Credits 3
This is a project-oriented course on Game Development, including design and programming. Students will work individually or in teams to design, implement and test a three-dimensional game with interactivity, animation, sound, constraints, and networking capabilities. We start with Python programming language, and will cover the design principles, software engineering and control/state aspects of developing a high-end video game by using Pygame and Unity.

CS 392: Game Development II

Credits 3

This is a second project-oriented course on Game Development, focusing on advanced design and programming using Unity. Students will consolidate scripting knowledge in C#, explore fundamental scripting tasks in Unity, build resolution-adapting interfaces for multiple screen-sizes, integrate 2D and 3D elements in a single scene, use the GUI features and sprite framework, explore how to find and diagnose problems in applications using MonoDevelop Debugging, as well as Visual Debugging. The course also teaches students how to manage team work-flows with Git and version control.

CS 395: Design Principles of Programming Languages

Credits 3

This course introduces students to fundamental principles and techniques in the design and implementation of modern programming languages. The course covers these issues mainly as they relate to functional programming and object-oriented programming. The emphasis is on rigorous mathematical formalism and reasoning, both in describing programming languages (their syntax) and in analyzing their behavior (their semantics). (spring)

CS 398: R and Advanced Statistics

Credits 3

In this course, students will learn both theoretical and practical techniques for applying statistical models to data. This course teaches how to analyze, visualize data in R and create reproducible data analysis reports. The course contents include understanding the unified nature of statistical inference, conducting frequentist and Bayesian statistical inference and modeling to understand natural phenomena and make data-based decisions, and communicating statistical results correctly, effectively, and in context without relying on statistical jargon, critique data-based claims and evaluated data-based decisions, as well as visualizing data with R packages for data analysis. Students will produce a portfolio of data analysis projects using R that demonstrates mastery of statistical data analysis from exploratory analysis to inference to modeling. This course is designed for students to apply for statistical analysis or data analyst positions. 

CS 400: Computer Systems Analysis and Logical Design

Credits 3
This course investigates the total information processing environment, focusing on system design and implementation. It involves the examination of such wide-ranging considerations as the following: project management; feasibility analysis; hardware and network con figuration planning; consideration of operating systems; platform options and data communication concerns; forms of design and control; procedures and manuals; and multilevel management reports: showing the role of these topics in the design of a complete information system. (spring)

CS 420: Software Engineering

Credits 3
This course provides students with important aspects of classical and object-oriented soft ware development. This course covers soft ware life-cycle models, the united process and phases of united process, United Modeling Language, the differences between classical approach and object-oriented approach, object-oriented analysis and design, architectural design, distributed systems architecture, application architectures, real-time software design, user-interface design, verification and validation, software testing techniques including system testing, component testing, test case design, critical systems validation, system maintenance, introduction to emerging technologies such as security engineering, serviceoriented, software development with services. (fall)

CS 430: Introduction to Big Data and Data Mining

Credits 3

This course provides an introduction of concepts, techniques and applications behind data mining, text mining, and web mining on big data sets. It presents techniques for the discovery of patterns hidden in large data sets, focusing on issues relating to their feasibility, usefulness, effectiveness and scalability. This course is designed for computer science students, business students and other professions which request large data analysis skills, including stream data, sequence data, graph structured data, social network data, and multirelational data. Topics include data preprocessing, data warehousing, OLAP and data cube, association and correlation rules, classification, decision trees, clustering, prediction and anomaly detection. This course will also introduce the state of art software in Big Data such as Apache Hadoop. (Spring)

CS 470: Artificial Intelligence

Credits 3
This course introduces students to the fundamental concepts and techniques of intelligent systems, the basic knowledge representation, problem solving, and learning methods of artificial intelligence. Upon completion of this course, students should be able to understand the role of knowledge representation, problem solving, and learning in intelligentsystem engineering; and appreciate the role of problem solving, vision, and language in understanding human intelligence from a computational perspective. Topics include intelligent agents, reactive agents, problem solving, state space and problem reduction, search methods, theorem proving, natural language processing and pattern recognition techniques, robotics.

CS 498: HC Advanced Programming with Java

Credits 3
This course covers the object-oriented programming paradigm, writing classes and creating objects with Java, creating GUI Applications and Applets, fundamental concepts of 2D and 3D computer graphics with Java. The students will be exposed to the techniques of developing practical applications using powerful Java packages including graphics. Topics include: writing classes and creating objects, decision structures, loops and files, GUI Applications, creating GUI Applications with JavaFX, creating Applets, 2-D and 3-D Graphics rendering.

CS 499: HC Advanced Database and Knowledge Discovery

Credits 3
This course provides students with the opportunity to reach a demonstrated level of competence in the areas of databases and knowledge discovery, with the primary objective to provide a well-defined target for students who want to advance their knowledge of modern databases and knowledge discovery techniques. Topics include modern database review such as object-oriented database, deductive databases, semantic query processing, intelligent and cooperative query languages, active databases, heterogeneous databases, multimedia databases, parallel and distributed database systems, and extensible database systems. It also covers a number of advanced topics in development of database management systems (DBMSs) and the application of DBMSs in modern applications, including advanced concurrency control and recovery techniques, query processing and optimization strategies for relational database systems, advanced access methods, as well as data analysis on large databases. A final project is required to design and implement a complex database system for knowledge discovery techniques on large data sets. (every fall)

GAIM 400: Gaming and Interactive Media Project

Credits 3

Advanced IMD majors will complete the design and implementation of one of the following products on digital computer-based systems: application software as a tool for users such as a knowledge management platform; application software for mobile devices; games; virtual reality; pervasive games; interactive video; publications such as websites that allow users to navigate, communicate and participate; social media; interactive art; interactive advertisement; interactive cinema; etc. As the capstone experience, all products should demonstrate the student's mastery of the interdisciplinary aspects of GAIM, from programming skills to conceptual and artistic
sensibilities.