Computer Science (CS)

CS 113  Mathematical Structures for Computer Science  (4 credits)  
This course covers the following topics: Proof techniques: proof by example, counterexample, contradiction, and induction. Mathematical logic: propositional logic, predicate logic, Boolean algebra, and applications in the design of combinational circuits. Set theory: operations, cardinality, relations, and functions. Discrete probability: sample space, outcomes and events, probability of an event, conditional probability and independent events, probability function, random variables, and expected values. Graph theory: basic and weighted graphs, paths, trees, planar graphs, and graph colorings. Combinatorics: fundamental principle of counting, permutations, combinations, and the pigeonhole principle.
Course Rotation: NYC & PLV: Fall and Spring
Prerequisites: MAT 102 with minimum grade of C or Math Placement Exam Score of 40 or 50.
CS 121  Introduction to Computer Science  (4 credits)  
This course is an introduction to Computer Science concepts through programming in Python. This is a project-based course where students will get exposure to solving real-world problems in various areas of Computer Science. Topics covered are variables, basic data types, expressions, conditional and control flow statements, as well as lists, dictionaries, and tuples. Additionally, students will learn good coding style and integrating assorted libraries for text, file and image processing.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: This course does not have a prerequisite.
CS 122  Object-Oriented Programming  (4 credits)  
This course introduces the Java programming language emphasizing its object-oriented features. Java will then be used in additional topics including program design, execution runtime, recursion, file handling, searching and sorting. Students will gain experience using a modern IDE and version control system as well as solving problems through labs and course projects. Prior programming experience is required.
Course Rotation: NYC & PLV: Fall & Spring.
Prerequisites: CS 121 with minimum grade of C.
CS 232  Computer Organization  (4 credits)  
Introduction to computer organization. ALU, registers, memory, controller, system bus, and basic I/O devices. Introduction to binary/octal/hexadecimal/floating-point numbers. Introduction to assembly language concepts and common opcode types and memory access modes. Conceptual execution of sample assembly language programs. Machine instruction execution cycle and interrupt processing for supporting mouse/keyboard/communications. Memory hierarchy including registers, cache, main memory, and hard disks. Concepts of controller implementation with microprogramming. CISC vs. RISC architecture. Computer organization vs. computer architecture. Pipelined machine instruction execution. Introduction to parallel processing.
Course Rotation: NYC & PLV: Fall & Spring.
Prerequisites: CS 121 with minimum grade of C.
CS 241  Data Structures and Algorithms  (4 credits)  
Concepts of abstract data types (ADT) including stack, queue, priority queue, hash table, and binary search tree. Problem-Solving with the ADTs. Tradeoffs of ADT implementation with arrays and linked lists. Basic sorting and searching algorithms. Algorithm run-time analysis.
Course Rotation: Fall and Spring.
Prerequisites: CS 113 and CS 122 with minimum grades of C. CS 113 can be taken at the same time as CS 241.
CS 242  Algorithms and Computing Theory  (4 credits)  
The purpose of this course is to acquire a thorough grounding in the core principles and foundations of computer science, building upon the knowledge gained in the prereq course of Algorithms and Data Structures. Students will learn methods for expressing and comparing algorithm complexity (worst- and average-case upper bounds, lower bounds) as well as to verify correctness. Algorithm-design techniques (divide-and-conquer, dynamic programming) as well as data structures (trees, heaps, graphs) widely used in modern software development will be studied. The knowledge gained will be applied to a variety of practical problems, such as sorting (in linear time), selection by rank, and graph problems (shortest paths, minimum spanning trees). The question of what problems are hard to compute will be addressed with an introduction to NP-completeness theory, including the development of the NP-complete classification and the identification of NP-hard problems by reductions.
Course Rotation: NYC & PLV: Fall & Spring.
Prerequisites: CS 241 with minimum grade of C.
CS 255  Game Development Patterns and Algorithms  (4 credits)  
Behind great games are great algorithms! Students will learn how to implement various game programming patterns such as singleton, observer, and object pooling. Algorithms and structures for games including pathfinding, Finite State Machines and steering behaviors will also be covered. Students will learn techniques for creating systems within games. This course also introduces procedural generation of virtual environments.
Course Rotation: NYC: Fall
Prerequisites: CIS 151 with minimum grade of C.
CS 256  Game Design and Prototyping  (4 credits)  
This course introduces game design topics such as the 3Cs (character, controls, camera), game mechanics, level design, difficulty, systems, and storytelling/narrative elements. Students will develop weekly rapid prototypes focusing on an aspect of game design and work as a team on a final project. Additionally, students will learn about conceptualizing ideas, the iterative design process and playtesting.
Course Rotation: NYC: Spring
Prerequisites: CIS 151 with minimum grade of C.
CS 271  Fundamentals of UNIX and C Programming  (2 credits)  
Introduction to fundamental concepts and mechanisms of Unix and C programming. UNIX topics include Unix shells, shell variables, file system, and common Unix commands and programming with shell script. C language topics include structs, pointer arithmetic, call-by-value versus call-by- reference, strings, I/O basics, macros and conditional compilation, and program structure. Working with Ubuntu on the secure cloud services platform Amazon Web Services (AWS). Getting familiar with Git and Github to be able to use these tools on team projects.
Course Rotation: TBA.
Prerequisites: CS 122 with minimum grade of C.
CS 291  Professional Computing Seminar  (1 credits)  
This course prepares CS majors for internships and future career planning in the technology industry. Students will learn about career pathways and searching for jobs in Computer Science. They will learn and practice on the unique features common to technology job interviews. There will be a focus on algorithm and data structure questions as well as whiteboard interview techniques. Students will create a resume and social media presence.
Course Rotation: NYC & PLV: Spring
Prerequisites: CS 241 with minimum grade of C.
CS 312  Research Methods in Computers and Society  (3 credits)  
Qualitative and quantitative research methods. Mathematical modeling of scientific, business, and social problems, hypothesis development and validation; key factor identification; experiment design; data-driven decision-making; and survey design and data analysis. Digital age social and legal issues, professional ethics, information privacy, and security. Technical writing and oral presentation. Credit Badge: Data Science
Course Rotation: Spring.
Prerequisites: CS 113 with minimum grade of C.
CS 321  Introduction to Game Programming  (4 credits)  
Students will create real time applications, especially 2D and 3D computer games. The idea is to translate a game design into a workable script language. The course will focus on 3D level design, motion capture and camera angles, character development, rendering and animation in 3D, polygon models, collision detection, and texturing.
Course Rotation: PL and Online: Fall.
Prerequisites: CS 241 with minimum grade of C.
CS 324  Application Development with .NET and Web Services  (4 credits)  
Introduction to .NET Web technologies through C#.NET for people with basic programming skills. Topics include object-oriented programming in C#, exception handling, delegate, multithreading, graphic user interface, Web programming with ASP.NET, database programming with ADO.NET, web services, and Microsoft Visual Stduio.NET IDE.
Course Rotation: PL: Summer.
Prerequisites: CS 241 with minimum grade of C.
CS 325  Introduction to Data Mining  (4 credits)  
This course will provide an overview of topics such as introduction to data mining and knowledge history; data mining with structured and unstructured data; foundations of pattern clustering; clustering paradigms; clustering for data mining; data mining using neural networks and genetic algorithms; fast discovery of association rules; applications of data mining to pattern classification; and feature selection. The goal of this course is to introduce students to current machine learning and related data mining methods. It is intended to provide enough background to allow students to apply machine learning and data mining techniques to learning problems in a variety of application areas.
Course Rotation: Fall.
Prerequisites: CS 241 with minimum grade of C.
CS 326  Introduction to Computer Vision Pattern Recognition  (4 credits)  
This course introduces the student to computer vision algorithms, methods and concepts, which will enable the student to implement computer vision systems with emphasis on visual pattern recognition. Upon successful completion of this course of study, a student will have general knowledge of image analysis and processing, pattern recognition techniques, and some experience with research in computer vision. Topics to be studied: data structures for visual pattern representation, future extraction, basis theory, decision trees, nearest neighbor, artificial neural networks, clustering, etc. The students, once completing the course, should be competent enough to conduct research in this area. The students will be required to critique a current paper from the literature in this area, present it to the class, implement the presented algorithm and evaluate the strengths and shortcomings. br />
Course Rotation: Spring
Prerequisites: CS 241 with minimum grade of C.
CS 344  Web Computing  (4 credits)  
Internet and web technology overview. The tiered web architecture. Web server set up and configuration. Separating data structures and data presentation with cascading style sheets. JavaScript for client data validation and HTML document object model manipulation. Java software framework for servlet components. Separating computation from data presentation with Java Server pages. Session data management and java persistence service. Computation abstraction with Strus. Server-side GUI abstraction/reuse and data validation with Java Server Faces. Ajax for more interactive and smoother web interactions. Web application security.
Course Rotation: PL: Summer.
Prerequisites: CS 122 with minimum grade of C.
CS 355  Advanced Topics in Game Development  (4 credits)  
This course is for students to take game development to the next level. Topics include procedural generation, advanced AI, NPCs and virtual inhabitants, network multiplayer, adaptive audio, utilizing cloud services, debugging, and optimization. This is a project-based course with students building playable games throughout the semester.
Course Rotation: NYC: Fall
Prerequisites: CS 255 with minimum grade of C.
CS 356  Mobile Game Development and Publishing  (4 credits)  
Mobile gaming is a larger industry than desktop and console gaming combined! In this course, students will work on a team to create and publish a mobile game to an app store. Topics include mobile game design considerations, building and deploying for mobile devices, touch controls, using sensor data, app store publishing, monetization and utilizing app store services for features such as achievements and leaderboards.
Course Rotation: NYC: Spring
Prerequisites: CS 255 with minimum grade of C.
CS 357  Augmented Reality (AR), Virtual Realtiy (VR), and the Metaverse  (4 credits)  
This course is an introduction to Augmented Reality (AR), Virtual Reality (VR), and social virtual worlds. Course topics include building for mobile and various VR devices, AR Interfaces and Interactions, Locomotion, Teleportation and Roomscale (6 degrees of freedom), interactions in 3D environments., gesture recognition, and integrating with existing Metaverse APIs.
Course Rotation: NYC: Spring
Prerequisites: CS 255 with minimum grade of C.
CS 359  Introduction to Human Computer Interaction  (4 credits)  
Design principles and practical techniques will be introduced for building and evaluating user-centered, intuitive, effective computing systems. Topics include principles of usage design, interface elements, user psychology, prototyping, and an introduction to interface evaluation. Project examples may include web design multimedia interfaces, mobile and specialize applications.
Course Rotation: PLV: Spring
Prerequisites: CS 122 with minimum grade of C.
CS 361  Programming Languages and Implementation  (0-4 credits)  
This course provides a study of the history of programming languages including the imperative, object-oriented, functional and logical varieties. Emphasis is on principles of language design, and tools, and overviews the other phases of the compilation process. Students develop the scanner and the parser of an experimental language in Java, and design the solutions to various programming exercises in diverse programming languages.
Course Rotation: NYC: Fall. PLV: TBA.
Prerequisites: CS 242 with minimum grade of C.
CS 365  Product Development Course  (4 credits)  
Students will learn the process of developing a product using the Design Thinking methodologies and the skills they have gained in the course of their studies. They will work In Interdisciplinary learns and provide solutions to problems initiated by companies or sponsors. During the course, students will also learn the following topics: design thinking, product development, research methodologies, agile methodologies, user experience (UX), project management, prototyping and rapid iteration. This course evolves under the umbrella of the Pace NYC Design Factory. Advisor approval required to register.
Course Rotation: NYC & PLV: Fall and Spring
Prerequisites: This course does not have a prerequisite.
CS 371  Operating Systems and Architecture  (0-4 credits)  
This course explores the design and operation of modern operating systems which control computing hardware. Topics include: Computer organization review; Operating system structure; Process/thread management and Java multi-thread programming; Memory management and virtual memory; File system interface and implementation; I/O systems; Distributed systems and Java network programming; Protection and security.
Course Rotation: NYC: Fall. PLV: TBA.
Prerequisites: CS 232 and CS 241 with minimum grades of C.
CS 374  Introduction to Mobile Application Development  (4 credits)  
This course focuses on the development of applications for different mobile platforms including phones, tablets, and telehealth devices with various sensors. The software/hardware codesign approach of application development including time and performance optimization and trade-off will be emphasized. Students will learn how to design and develop applications for the Android platform, and understand the parallel process for iPhone development. Covered topics include user interface and architecture design, operating systems, storing and retrieving data, distributed computing, mobile hardware, network/web access, and multimedia.
Course Rotation: Spring
Prerequisites: CS 122 with minimum grade of C.
CS 377  Mathematical Foundations of Machine Learning  (4 credits)  
This course introduces the fundamental concepts in inference and focuses on the concepts and algorithms central to machine learning. Students study the foundational mathematics needed for machine learning (linear algebra, analytic geometry, multivariate calculus), probability theory, and the essential methods for inference. These include maximum likelihood, naïve Bayes, Bayesian analysis, linear models, Bayesian linear models, and support vector machines. Credit Badge: Data Science
Course Rotation: NYC: Fall
Prerequisites: MAT 131 or ECO 380 with minimum grades of C.
CS 385  Artificial Intelligence I  (4 credits)  
Consideration of processes by which machines simulate intelligence; heuristic and algorithmic processes in problem solving and programming machines to play simple games; models of cognitive process; applications and limitations of machine intelligence.Credit Badge: Data Science.
Course Rotation: NYC: Spring. PLV: Fall - Even years.
Prerequisites: CS 242 with minimum grade of C.
CS 387  Database Design  (4 credits)  
This course presents the fundamental concepts of database design and use. It provides a study of data models, data description languages, query facilities including relational algebra and SQL, data normalization, transactions and their properties, physical data organization and indexing, security issues and object databases. The knowledge of the above topics will be applied in the design and implementation of a database application using a target database management system.
Prerequisites: CS 242 with minimum grade of C.
CS 395  Data Science with Python and R  (4 credits)  
This course introduces data science, Python, and the R programming language. Students will learn the fundamentals of Python and R with an emphasis on its use in data analytics. The course covers basic language syntax, object types, variables, reading data from files and writing to files. Building on these concepts, students will create functions, and learn how to control program flow. The course also covers fundamental concepts in statistical learning. Students will learn to clean and prepare data, conduct exploratory data analysis, and develop models using supervised and unsupervised learning methods. Course assignments use data from multiple fields. Classwork includes Labs allowing students practice working with Python and R.
Course Rotation: NYC: Spring
Prerequisites: CS 113 and CS 121 with minimum grades of C.
CS 396A  Topic: Computer Security  (4 credits)  
CS 397  Topics in Computer Science  (0-4 credits)  
CS 398D  Special Topic: Mobile Web Development  (4 credits)  
This course introduces students to creating mobile web sites and JavaScript-based apps for iOS and Android devices. Students will build a mobile web site taking advantages of modern CSS and JavaScript features on mobile browsers, and learn responsive and "mobile-first" web design techniques. Graphics programming with leading 2D and 3D libraries will be introduced. Performance optimizations to speed page loading and responsiveness will be covered. A JavaScript based smart phone app using current JavaScript framework will be built as the course's final project.
Course Rotation: Fall and Spring
Prerequisites: CS 122 with minimum grade of C.
CS 410  Introduction to Parallel Computing  (4 credits)  
Introduction to parallel computing. Parallel architectures including shared memory, distributed memory, and interconnection networks. Parallel programming including parallel programming primitives for parallel process creation, process synchronization/communication, and data sharing; essential parallel algorithms; parallel programming environment for syntax and performance debugging; and efficient parallel programming with industry standard MPI. Introduction to architecture and parallel computing on GPUs.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: CS 232 and CS 241 with minimum grades of C.
CS 412  Concepts and Structures in Internet Computing  (4 credits)  
Integrated hands-on coverage of fundamental concepts and technologies for enterprise and Internet computing. Topics include data storage; XML data specification, parsing and validation; data and language translation; networking and web technology overview; software framework technology for controlling software system complexity; and a roadmap for the enterprise computing technologies.
Course Rotation: NY, PLV; Fall \
Prerequisites: CS 122 with minimum grade of C.
CS 455  Game Engine Architecture  (4 credits)  
Mobile gaming is a larger industry than desktop and console gaming combined! In this course, students will work on a team to create and publish a mobile game to an app store. Topics include mobile game design considerations, building and deploying for mobile devices, touch controls, using sensor data, app store publishing, monetization and utilizing app store services for features such as achievements and leaderboards.
Course Rotation: NYC: Spring
Prerequisites: CS 241 or CS 355 with minimum grade of C.
CS 456  Game Development Capstone  (4 credits)  
Students will work in teams as a “game studio” throughout the semester to create a fully realized game. Each team will write a game design document and present weekly progress in class as well as on a team blog. Course topics include production practices, project management, code repository, and other collaboration tools.
Course Rotation: NYC: Spring
Prerequisites: CS 355 with minimum grade of C.
CS 472  Introduction to Deep Learning  (4 credits)  
Introduction to Machine Learning and Deep Learning. Various data analytics techniques including data preparation, model building, prediction, clustering, association, regression (linear and logistic), classification, decision trees, textual data analysis, and data presentation. The course is designed to make you proficient in training and evaluating Deep Learning based models. Introduction to TensorFlow Deep Learning platform, Keras, the Python Deep Learning API, and the Anaconda Analytics platforms.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: CS 242 with minimum grade of C.
CS 488  Internet and Distributed Computing  (4 credits)  
This course prepares students to work in modern Internet-based distributed computing environments. Topics include: Internet protocols, routing, network security, web application architecture, web services, cloud computing, and solving problems at scale using distributed computing techniques. Students will develop real-world projects using modern frameworks and various cloud services. Restrictions/Requirements: Junior and Senior Level Standing.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: CS 241 with minimum grade of C.
CS 489  Computational Economics Capstone  (3 credits)  
The purpose of the Computational Economics Capstone course is for students to apply the knowledge and skills acquired during their bachelor's program to a project involving actual data in a real-world setting. The project will be realized in teams and relate to economic issues. During the project, students will experience the entire process from identifying a problem or opportunity and collecting and processing data to applying appropriate methods and evaluating a suitable solution. Methods will be related to data science, machine learning and deep learning. The project will be similar to one that students might typically encounter within industry, government, or academic research. The course will require the delivery of working software artifacts, written work, and oral presentations. It will integrate discussions and talks on ethics and careers in computational economics. This course requires a great deal of self-directed work and the ability to manage time and meet deadlines. Students will be encouraged to submit their capstone work to conferences focusing on undergraduate research at Pace and outside.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: CS 377 or CIT 380 or ECO 385 with minimum grade of D.
CS 490  Independent Study in Computer Science  (1-9 credits)  
With the approval of the appropriate faculty member, department chair, and academic dean, students may select a topic for guided research that is not included in the regular course offerings. The student meets regularly with the faculty member to review progress. A research project or paper must also be submitted. Restrictions/Requirements: Junior standing and a minimum CQPA of 3.50.
Course Rotation: Fall and Spring.
Prerequisites: This course does not have a prerequisite.
CS 491  Software Engineering  (4 credits)  
This course explores software engineering and serves as the capstone course for the computer science major. Topics include phases of software engineering processes including requirements, architecture, design, programming, testing, evolution, and maintenance; agile methodologies; strength and weakness of software development processes; team work and effective documentation and communication; professional ethics. Students will collaboratively develop a capstone software engineering product using state-of-the-art frameworks and tools.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: CS 242 with minimum grade of C.