Computer Science (CS)

Computer Science (CS)

Course usage information

CS-104   Introduction to Problem Solving and Software DevelopmentCredits: 3   

Term Offered: All Terms

Course Type(s): TL

Introduces a broad overview of problem solving, computing topics, and fundamental concepts and methodologies of software development designed to provide students with awareness of the computing field's many aspects. Topics include fundamentals of computer architecture, operating systems, applications, problem-solving. It emphasizes the main phases of the software development lifecycle, such as requirements, design, implementation, testing, project planning. Also, it stresses the difference between the software product and process. Introduces social and ethical issues related to computing and explores the local and global impact of computing on individuals, organizations and society. It also gives students their initial exposure to group project work.

Course usage information

CS-175   Introduction to Computer Science ICredits: 3   

Prerequisite(s): CS-104

Co-requisite(s): CS-175L

Term Offered: All Terms

Course Type(s): None

Introductions to the basic concepts of program development in a modern object-oriented language; problem-solving methods and algorithm development; basic primitive and object data types; language syntax; style and documentation; and coding and testing of programs

Course usage information

CS-175L   Introduction to Computer Science I labCredits: 1   

Prerequisite(s): CS-104

Co-requisite(s): CS-175

Term Offered: All Terms

Course Type(s): None

Introductions to the basic concepts of programming and program development in a modern Software Development Environment with debugger and source code control.

Course usage information

CS-176   Introduction to Computer Science IICredits: 3   

Prerequisite(s): CS-175 and CS-175L, both passed with a grade of C or higher

Co-requisite(s): CS-176L

Term Offered: All Terms

Course Type(s): None

Continuation in depth and breadth of problem solving and algorithm development, using the same modern object-oriented language as in CS-175. More advanced object-oriented design. Introduction to polymorphism, inheritance, and interfaces.

Course usage information

CS-176L   Introduction to Computer Science II LabCredits: 1   

Prerequisite(s): CS-175 and CS-175L, both passed with a grade of C or higher

Co-requisite(s): CS-176

Term Offered: All Terms

Course Type(s): None

Introduction to advanced concepts of programming and program development in a modern Software Development Environment with debugger and source code control.

Course usage information

CS-199   Independent Study in Computer ScienceCredits: 1-3   

Course Type(s): None

Independent study in a computer science topic not substantially treated in a regular course; for students with superior ability. One-hour consultation per week. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

CS-201   Introduction to Computer Programming for Data ScienceCredits: 1   

Prerequisite(s): IT-100 or IT-102 or IT-150 or CS-104

Term Offered: Spring Term

Course Type(s): None

This course introduces the most important data structures available in R and their practical application. Methodologies to import data from external sources (files, databases, on-line resources), to manipulate and transform data, and to save\export data to data repositories are described. The course also describes how to compute descriptive statistics and how to build chart for effective data visualization tasks. The students will become familiar in using some R data manipulation and visualization libraries.

Course usage information

CS-205   Data Structures and AlgorithmsCredits: 3   

Prerequisite(s): MA-130, CS-176, and CS-176L, all passed with a grade of C or higher

Co-requisite(s): CS-205L

Term Offered: All Terms

Course Type(s): None

Introduction to the design, implementation, and use of fundamental data structures (lists, stacks, queues, trees); extensions of these structures and associated algorithms; informal complexity analysis.

Course usage information

CS-205L   Data Structures and Algorithms LabCredits: 1   

Prerequisite(s): MA-130, CS-176, and CS-176L, all passed with a grade of C or higher

Co-requisite(s): CS-205

Term Offered: All Terms

Course Type(s): None

Introductions to the basic concepts of programming and program development in a modern Software Development Environment with debugger and source code control.

Course usage information

CS-250   Android Application DevelopmentCredits: 3   

Prerequisite(s): CS-176 and CS-176L

Term Offered: Spring Term

Course Type(s): None

This course will teach students software methodologies for Android App Development. This will include Android Development Studio, Kotlin programming language, and interfaces to external services required to develop simple to moderately complex Android mobile apps. Also listed as SE-250.

Course usage information

CS-286   Computer Architecture ICredits: 3   

Prerequisite(s): CS-176 passed with a grade of C or higher

Term Offered: All Terms

Course Type(s): None

Data representation and operations. Digital logic design. Processor data path. Memory hierarchy. Instruction set architecture. Assembly language programming.

Course usage information

CS-289   Internship in Computer ScienceCredits: 3   

Term Offered: All Terms

Course Type(s): EX1

Supervised practical experience in Computer Science. Repeatable for credit. Sophomore standing, departmental approval, and placement are required to take this course.

Course usage information

CS-298   Special Topics in Computer Science (200 Level)Credits: 1-3   

Term Offered: Spring Term

Course Type(s): None

An intensive study of a particular subject or problem in computer science to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week. If a prerequisite is required it will be announced in the course schedule.

Course usage information

CS-299   Independent Study in Computer ScienceCredits: 3   

Term Offered: All Terms

Course Type(s): None

Independent study in a computer science topic not substantially treated in a regular course; for students with superior ability. One-hour consultation per week. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

CS-305   Advanced ComputingCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

Introduction to fundamental concepts of computer science theory and methods of parallel and distributed programming, The course covers automata theory (including finite-state machines and Turing machines, algorithm complexity (including the distinction between P and NP problems), BNF specification of programming languages, methods of parallel programming, methods of distributed programming, measuring the speedup obtained by parallelization, and methods of addressing NP completeness through approximation. The course will provide experience in the implementation of parallel and distributed programming.

Course usage information

CS-310   Advanced Object-Oriented Programming and DesignCredits: 3   

Term Offered: All Terms

Course Type(s): WT

Object-oriented programming and design, using a language different from that used on CS 176. Use of classes, inheritance, polymorphism, and libraries. Topics will include flexible system design for such requirements as globalization. This is a writing-intensive course.

Course usage information

CS-315   Theory of ComputingCredits: 3   

Prerequisite(s): CS-176 passed with a grade of C or higher and either CS-202 or MA-120 or MA-130 passed with a grade of C or higher

Term Offered: Spring Term

Course Type(s): None

An introduction to phrase structure languages and their relation to automata, computability, and program verification.

Course usage information

CS-325   Software Engineering ConceptsCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher; and EN-101 and EN-102 or permission of the instructor

Term Offered: All Terms

Course Type(s): WT

Overview of software engineering concepts, analysis/design techniques, Unified Modeling Language (UML), software documentation, and group development of software.

Course usage information

CS-335   Programming Language ConceptsCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Course Type(s): None

Design, evaluation, and implementation of programming languages. Discussion of imperative, applicative, object-oriented and concurrent languages. Four hours per week.

Course usage information

CS-337   Enterprise Mobile Apps Design and DevelopmentCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

Presents methodologies to build enterprise mobile apps on iPad tablets and iPhone smartphones using iOS. The course will cover technologies to use in the design and development of apps on mobile devices and integration of these apps with corporate data sources, sensor devices and cloud computing services. Also listed as SE-337.

Course usage information

CS-350   Research in Computer ScienceCredits: 1-4   

Prerequisite(s): CS-306 passed with a grade of C or higher, a minimum of fifteen credits at Monmouth University and a minimum GPA of 3.25

Course Type(s): EX5

Original research work, associated with an external constituent and/or organization, planned and carried out with assistance of faculty research advisor. Research conducted by the student will be shared with the external constituency and submitted for outside publication and review. Number of credits arranged with advisor. Limited to Computer Science students with approval of chair, program director, or advisor.

Course usage information

CS-357   Engineering Web-Based SystemsCredits: 3   

Prerequisite(s): CS-176 and CS-176L

Term Offered: Fall Term

Course Type(s): None

A practical introduction to the principles, methods, and tools required to create high-quality software applications for the distributed, client-server context of the Web. Emphasis is on architectural designs, and language and data access methods that are common in Web-based systems. Also listed as SE-357.

Course usage information

CS-358   Software FrameworksCredits: 3   

Prerequisite(s): EN-101, EN-102, CS-205 and SE-207 both passed with a grade of C or higher; and SE-357 or CS-357, or permission of the instructor.

Course Type(s): WT

An introduction to Design Patterns and modern Software Frameworks, programming languages, data access methods and asynchronous Application Programming Interfaces (APIs). This is a writing intensive course. Restricted to Computer Science or Software Engineering students only. Also listed as SE-358. and SE-357 or CS-357 or permission of the instructor.

Course usage information

CS-360   Introduction to Game DevelopmentCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

An introduction to the creation of computer/video games and the different elements of games, including computer graphics, animation, artificial intelligence, algorithms, data structures, networking, software development cycles and human-computer interaction. Also listed as SE-360.

Course usage information

CS-370   Program Development Under UnixCredits: 3   

Prerequisite(s): CS-176 passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

Introduction to the use of the UNIX operating system and its utilities for incremental and distributed program development, maintenance, and debugging. The course covers the UNIX shell, utilities, and program development tools that are used for large projects involving multiple developers on multiple machines. Three hours per week.

Course usage information

CS-371   Scripting LanguagesCredits: 3   

Prerequisite(s): CS-176 or equivalent

Term Offered: Spring Term

Course Type(s): None

An introduction to programming using widely-used, dynamically-typed, interpreted programming languages, which are sometimes called "scripting" languages. Covers general-purpose scripting languages, such as Perl and Python that are used to develop a wide range of applications. Scripting languages, such as PHP, that are used primarily in web development, will not be covered in this course.

Course usage information

CS-375   File ManagementCredits: 4   

Prerequisite(s): CS-205 passed with a grade of C or higher

Course Type(s): None

Overview of files, records and files, blocking and buffering, secondary storage devices; sequential file organization, external sort/merge algorithms; random access; relative file organization; tree-structured file organization; search trees, indexed sequential file organization; list-structured file organization; multiple-key file organization. Four hours per week.

Course usage information

CS-388   Cooperative Education: Computer ScienceCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher, Junior standing and thirty or more earned credits with at least fifteen taken at Monmouth University

Term Offered: All Terms

Course Type(s): EX2

Provides an opportunity for students who are engaged in a computer science-related experience. Fifteen to twenty hours of work experience per week. This course may be repeated for credit. Departmental approval is required to take this course.

Course usage information

CS-389   Internship in Computer ScienceCredits: 3   

Term Offered: All Terms

Course Type(s): EX1

Supervised practical experience in Computer Science. Repeatable for credit. Junior standing, departmental approval, and placement are required to take this course.

Course usage information

CS-398   Special Topics in Computer Science (300 Level)Credits: 1-3   

Term Offered: Spring Term

Course Type(s): None

An intensive study of a particular subject or problem in computer science to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week. If a prerequisite is required it will be announced in the course schedule.

Course usage information

CS-399   Independent Study in Computer ScienceCredits: 3   

Term Offered: All Terms

Course Type(s): None

Independent study in a computer science topic not substantially treated in a regular course; for students with superior ability. One-hour consultation per week. Prior permission of the directing professor and department chair is required to take this course.

Course usage information

CS-414   Computer NetworksCredits: 3   

Prerequisite(s): CS-286 passed with a grade of C or higher

Term Offered: All Terms

Course Type(s): None

An introductory-level course on the hierarchy of networking software and hardware. Emphasis on the; description of protocols in the Internet, specifically, client-server Application Layer Protocols such as HTTP, SMTP, DNS, DHCP; Transport Layer Protocols such as UDP/TCP, Network Layer Protocols such as IP, ICMP, as well as Network Layer Routing and Forwarding techniques, such as RIP and OSPF for IPv4 and Tunneling for IPv6.

Course usage information

CS-418   Compiler ConstructionCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Course Type(s): None

The principles and practices of incorporating the theory of finite automata and context-free languages, the maintenance and use of semantic information, and the generation and optimization of code to produce a compiler. Four hours per week.

Course usage information

CS-420   Survey of Artificial Intelligence Concepts and PracticesCredits: 3   

Prerequisite(s): CS-205 and MA-130 both passed with a grade of C or higher

Term Offered: Fall Term

Course Type(s): None

Introduction of fundamental concepts and practices of artificial intelligence, covering search techniques, constraint satisfaction, knowledge representation, machine learning, planning, and natural language processing. The course will provide experience in the implementation of techniques from these areas. Three hours per week.

Course usage information

CS-432   Database SystemsCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: All Terms

Course Type(s): None

Overview of database system concepts; data modeling; ER and UML diagrams; relational database schema definition; database design; query languages; introduction to NoSQL and comparison between relational and non-relational databases; hand-on experience of SQL, Oracle, and NoSQL.

Course usage information

CS-438   Operating Systems AnalysisCredits: 3   

Prerequisite(s): CS-286 and CS-205 both passed with a grade of C or higher

Term Offered: All Terms

Course Type(s): None

Management of memory, processes, files, and devices. OS design principles and performance measures. Multiprogramming, multiprocessing, concur-ency, deadlock, virtual machines. Competitive and cooperating processes. Programs will be written in C or in Java. Three hours per week.

Course usage information

CS-450   Cyber SecurityCredits: 3   

Prerequisite(s): CS-205

Term Offered: Fall Term

Course Type(s): None

Cover fundamental theory and practice of cyber security. Review cryptographic tools used to provide security, such as shared key encryption; public key encryption, key exchange, authentication, digital signature, and intrusion detection. Learn implementation of secure mechanisms in object-oriented programming languages. Also listed as SE-450.

Course usage information

CS-451   Applied Computer SecurityCredits: 3   

Prerequisite(s): CS-450 or SE-450

Term Offered: Spring Term

Course Type(s): None

This course will introduce students to multiple aspects of computer security and practice into a series of well-defined security topics such as network security and hacking tools. Also, the student will introduce different topics of digital forensics. Also listed as SE-451.

Course usage information

CS-471   System AdministrationCredits: 3   

Prerequisite(s): CS-370 or CS-371 passed with a grade of C or higher

Term Offered: Spring Term

Course Type(s): None

Fundamental topics in system administration, focused primarily on UNIX administration with added coverage of Microsoft Windows NT descendant systems. The course is a hands-on introduction to installing and maintaining modern, multi-user, production UNIX-like operating systems and the essential services that are hosted on these systems.

Course usage information

CS-488   Cooperative Education: Computer ScienceCredits: 3   

Prerequisite(s): CS-205 passed with a grade of C or higher

Term Offered: All Terms

Course Type(s): EX2

Provides an opportunity for students who are engaged in a computer science-related experience. Fifteen to twenty hours of work experience per week. May be repeated for credit. Departmental approval is required to take this course. Junior standing, thirty or more earned credits with at least fifteen taken at Monmouth University and CS-205 passed with a grade of C or higher are required to take this course.

Course usage information

CS-489   Internship in Computer ScienceCredits: 1-3   

Term Offered: All Terms

Course Type(s): EX1

Supervised practical experience in Computer Science. Repeatable for credit. Junior standing, departmental approval, and placement are required to take this course.

Course usage information

CS-490   Senior ProjectCredits: 4   

Prerequisite(s): CS-325 and CS-432 both passed with a grade of C or higher

Term Offered: Spring Term

Course Type(s): RD

Affords the student an opportunity to integrate topics and techniques from previous coursework in a capstone project. The project will combine investigation into computer science literature and actual implementation, either in an area of current research or an application area of interest to industry. Implementation might involve collaboration with other students. The project will be presented formally, both orally and in written form. This course satisfies the reasoned oral discourse requirement for computer science students.

Course usage information

CS-492A   Computer Science Senior Project ACredits: 3   

Prerequisite(s): CS-325 and CS-432, both passed with a grade of C or higher

Term Offered: All Terms

Course Type(s): RD

Affords the student an opportunity to integrate topics and techniques from previous coursework in a capstone project. The project will combine investigation into computer science literature and actual implementation, either in an area of current research or an application area of interest to industry. Implementation might involve collaboration with other students. The project will be presented formally both orally and in written form. This course satisfies the reasoned oral discourse requirement for computer science students.

Course usage information

CS-492B   Computer Science Senior Project BCredits: 3   

Prerequisite(s): CS-492A

Term Offered: All Terms

Course Type(s): RD

Affords the student an opportunity to integrate topics and techniques from previous coursework in a capstone project. The project will combine investigation into computer science literature and actual implementation, either in an area of current research or an application area of interest to industry. Implementation might involve collaboration with other students. The project will be presented formally both orally and in written form. This course satisfies the reasoned oral discourse requirement for computer science students.

Course usage information

CS-498   Special Topics in Computer Science (400 Level)Credits: 1-3   

Term Offered: All Terms

Course Type(s): None

An intensive study of a particular subject or problem in computer science to be announced prior to registration. May be conducted on either a lecture-discussion or a seminar basis. Three or four hours per week. If a prerequisite is required it will be announced in the course schedule.

Course usage information

CS-499   Independent Study in Computer ScienceCredits: 1-4   

Term Offered: All Terms

Course Type(s): None

Independent study in a computer science topic not substantially treated in a regular course; for students with superior ability. One-hour consultation per week. Prior permission of the directing professor and department chair is required to take this course.