Group of students sitting around a table

Computer Science (CS)

CS 108  Introduction to Computer Science  (3 credits)  
CS 109  Introduction to Computing Using C++  (3 credits)  

s: This course is designed for students majoring in science and focuses upon the use of the computer as a scientific tool. Students will learn programming using C++ or Java and will use various scientific software packages, as well as word processing and spreadsheets.

Course Rotation: PLV: Fall.
Prerequisites: Two years of high school mathematics.
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
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
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.
CS 150  The Internet and Web Authoring  (3 credits)  
CS 152  Internet Programming I  (3 credits)  

An introduction to object oriented programming in a language such as Java. The fundamentals of programming will be covered, including control structures and object oriented design, objects, Java Development Kit, Java bytecode, the AWT package, Java applets and graphical user interfaces.

CS 154  Internet Programming II  (3 credits)  

A continuation of CS 152. Object oriented programming, the class hierarchy, encapsulation, data types, and control flow. Client-Server programming. The Java Servlet API.

CS 156  Scripting Languages  (3 credits)  

An introduction to Internet scripting languages, such as Java script, CGI programming using Perl and Tcl/Tk. Students will create web pages incorporating scripts and compare and contrast the currently available scripting languages.

CS 158  Webmaster Techniques and Responsibilities  (3 credits)  
CS 160  Special Topics in Internet Technology  (3 credits)  
CS 160A  Topic: IT for E-Commerce  (3 credits)  
CS 160B  Topic: Web Security  (3 credits)  
CS 199  Short Topics in Computer Science  (1 credits)  
CS 199A  Topic: Object Oriented Programming  (1 credits)  
CS 199B  Topics: Lotus 1-2-3  (1 credits)  
CS 199C  Short Topics in Computer Science: Musical Programming  (1 credits)  
CS 199D  Short Topics in Computer Science: Programming in C  (1 credits)  
CS 199E  Short Topics in Computer Sceince:Topics in Database  (1 credits)  
CS 199F  Short Topics in Computer Science: VP Expert  (1 credits)  
CS 199G  Short Topics in Computer Science: D Base III+  (1 credits)  
CS 199H  Topic: UNIX Fundamentals  (1 credits)  
CS 199I  Short Topics in Computer Science: C++  (1 credits)  
CS 199J  Topics: Quantitative Methods in CS  (1 credits)  
CS 199K  Topics: Basic Mathematics for Computer Science  (0 credits)  

This course teaches students the mathematics that are fundamental for further study in computer science. Through a combination of readings, videos, and brief quizzes, students gain the necessary knowledge and skills to pass the Math Placement Exam allowing for successful computer science study.

Course Rotation: NYC & PLV: Summer 2
CS 199M  Topics in Computer Science: Introduction to UNIX  (1 credits)  
CS 199P  Short Topics in Computer Science: C  (1 credits)  
CS 199R  Topic: Societal Issues in Computers  (1 credits)  
CS 199S  Short Topic: Genetic Algorithms and Neutral Networks  (1 credits)  
CS 199T  Topic: Local Area Networks  (1 credits)  
CS 199U  Short Topic: Introduction to Maple  (1 credits)  
CS 199V  Topic: Formal Discrete Structures  (4 credits)  

Students study a number of topics in discrete mathematics. One of the topics is an initial discussion of formal methods, a logical approach to writing computer programs. Students also study an introduction to mathematical logic (propositional and predicate calculus), mathematical induction, theory of sets, theory of integers and sequences, along with some introduction to graph theory. Mathematical logic is treated as an integral part of each topic of the course. A semiautomatic theorem prover is used to assist students in proving theorems.

Prerequisites: MAT 130 or equivalent.
CS 200  Topics in Computer Science  (3 credits)  
CS 200A  Topics in Computer Science: Cryptography  (3 credits)  
CS 200B  Topics in Computer Science: Machine Learning  (3 credits)  
CS 200C  Topics: Cryptography  (3 credits)  
CS 200D  Topics in Computer Science: Mathematical Topics in Computer Science  (3 credits)  
CS 200E  Special Topics in Computer Science: Topics in A.P.L.  (3 credits)  
CS 200F  Topics in Computer Science: Software Engineering Using C  (3 credits)  
CS 200G  Topics in Computer Science: Computer Animation  (3 credits)  
CS 200M  Topics in Computer Science: Data Abstraction and Program Verification  (3 credits)  
CS 200S  Topics in Computer Science: UNIX and 'C'  (3 credits)  
CS 207  Operating System and Architecture II  (3 credits)  
CS 214  Automata and Computability  (3 credits)  
CS 218  Data Comunications  (3 credits)  
CS 231  Computer Organization I  (3 credits)  
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.
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.
CS 242  Algorithms and Computing Theory  (4 credits)  

Applications of abstraction and divide-and-conquer in computer science (hardware, software, theory); essential algorithms including searching, sorting, hashing and graphs; popular algorithms such as branch-and-bound, RSA and their applications; computing complexity and computability, NP-hard problems, NP-complete problems, and undecidable problems; and finite state automata vs. regular expressions.

Course Rotation: NYC: Fall and Spring. PLV: Spring.
Prerequisites:
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
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
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: A grade of "C" or better in CS 122.
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
CS 295  Computer Science Internship  (3 credits)  
CS 296  Special Topics in Computer Science  (3 credits)  
CS 296A  Topic: UNIX Fundamentals  (1 credits)  
CS 296K  Topic: Virtual Reality  (1 credits)  
CS 296N  Topic: Object Oriented Programming  (1 credits)  
CS 301  Computer Science Internship  (3 credits)  

A direct experience in the working environment, intended to provide the student with a practical extension and enhancement of knowledge gained in class. The student has an assignment and is directed by professionals in the normal working environment. The student must also report to and consult with his or her faculty advisor who provides overall academic supervision.

Course Rotation: Fall and Spring.
Prerequisites: Completion of sophomore year, recommendation of the department and acceptance in a position. Minimum CQPA of 3.50.
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.

Course Rotation: Spring.
Prerequisites: MAT 234, MAT 117, and MAT 134
CS 313  Java Web Technologies  (4 credits)  

Fundamental concepts of Internet computing and component based-software engineering; web application architecture; HTTP protocol; presentation tier techniques: servlets and JavaServer Pages (JSP), JavaServer (JSF); application server technique: Enterprise JavaBeans (EJB).

Course Rotation: PLV:Spring
CS 314  Emerging Technologies for Business  (3 credits)  

The course prepares students to innovate in the technology sector by exposing them to the latest technologies. Students will survey the latest technologies and learn to design and develop systems to solve business problems. The course will explore the use and impact of technology on businesses through case studies and interviews with professionals in the field. Students will develop a comprehensive technological solution to a specific business problem integrating across disciplines using at least one of the technologies learned in the course.

Course Rotation: NYC: Fall & Spring
CS 320  Introduction to XML Application Development  (4 credits)  

The World-Wide Consortium’s (W3C) eXtensible Markup Language (XML) has rapidly emerged as a standard that is used in a wide variety of applications related to the Web and e-commerce. XML is becoming a very important new technology used everywhere in the IT industry. We believe that every student must have exposure to this powerful technology. This course not only introduces XML but also deals with how to develop XML applications using Java. This course starts with basics of XML and goes on to developing XML applications using a programming language such as Java.

Course Rotation: Spring, Summer 1 Campus Availability: Pleasantville, Online
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.
CS 323  File System Forensic Analysis  (4 credits)  

This course introduces file system forensics analysis. Understanding how file systems work is essential in discovering hidden evidence and recovering deleted data. This course offers an overview and detailed knowledge of the file system and disc layout. Data structures, analyzes example disk images, and investigation scenarios are covered. Current open source file system analysis tolls will be used in labs.

Course Rotation: PLV:Spring
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.
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.
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
CS 331  Fundamentals of Data & Network Security  (4 credits)  

This fundamentals of data and network security course covers the basic concepts of static and dynamic data protection; the creation and maintenance of secure software systems; network and Internet threat, vulnerabilities, attack scenarios, and countermeasures; and protection of personal data and individual privacy. The main topics include threat and system vulnerabilities; software vulnerabilities; cryptography; authentication and access control; secure operating systems; risk management; and legal, ethical, and privacy issues. Hands-on laboratory exercises further reinforce some of the key concepts of the main topics.

Course Rotation: NYC: Spring, PLV: Spring.
Prerequisites: CS232, CS241, and CS371 (CS371 can be taken together with CS331).
CS 333  Game Level Design  (4 credits)  
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.
CS 351  Automata and Computability  (4 credits)  

Introduction to the concepts of theoretical computer science. Topics include finite state machines, pushdown automata, turing machines, theory of formal languages, hierarchy of languages and grammars, computability, decidability, and computational complexity.

Course Rotation: TBA.
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
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
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
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
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.
CS 362  Programming Languages and Implementation II  (4 credits)  

This course provides a study of the history of programming languages including the imperative, object-oriented, functional and logical varieties.

Course Rotation: NY: Spring.
CS 363  Human Factors and Usability Metrics  (4 credits)  

This course surveys methods for evaluating computer user interfaces. Students will learn essential knowledge to be able to perform a heuristic evaluation, a cognitive walkthrough, a usability test and a comparison study. Class meeting will also introduce, discuss and occasionally practice additional techniques including user modeling, usage logging, surveys, and focus groups. A primary goal is to learn how to conduct various methods for evaluating user interfaces.

Course Rotation: Spring
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.

Course Rotation: NYC & PLV: Fall and Spring
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.
CS 372  Operating Systems and Architecture II  (4 credits)  

Advanced topics in operating systems, including parallel processing, distributed and local network operating systems. The course includes laboratory work involving UNIX and MVS.

Course Rotation: TBA.
Prerequisites: A grade of 'C' or better in CS 371.
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
CS 377  Mathematical Foundations of Machine Learning  (4 credits)  

This course introduces fundamental concepts in inference, describing the concepts and algorithms central to machine learning. With an emphasis on skill learning, rather than a collection of recipes, the course focuses on enabling students to develop new algorithms. This approach better prepares students for professional success, as many modern applications require novel methods. Students will use Python or R to build various models based on the material covered in class.

Course Rotation: NYC: Fall & Spring
CS 381  Systems Simulation  (3 credits)  
CS 383  Computer Graphics  (4 credits)  

Algorithms, data structures, and hardware related to computer graphics and image processing. Topics covered are: vector, curve and character generation; interactive display processors; graphical data structures; graphic languages; the mathematics of three dimensions, projections, and the hidden-line problems; two-dimensional image processing algorithms, enhancement, and coding.

Course Rotation: NYC: Fall. PLV: Fall - Odd years.
Prerequisites: A grade of 'C' or better in CS 232, in CS 242, in MAT 132 and in MAT 237 or permission of instructor. Revised
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.

Course Rotation: NYC: Spring. PLV: Fall - Even years.
Prerequisites: A grade of 'C' or better in CS 232 and a 'C' or better in CS 242.
CS 385A  Topic: Artificial Intelligence I  (3 credits)  
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.

CS 388  Data Communications  (4 credits)  

This course provides a foundation in digital communications as a basis for modern telecommunications systems, computer networks, and the Internet. Topics include signals and information transmission, bandwidth and capacity, transmission media (wired, optical and wireless), digital multimedia, modulation, multiplexing, network security, error control, link-layer protocols, networking strategies, layered architectures, and an introduction to the principles of local area networks and the Internet.

Course Rotation: TBA
Prerequisites: A grade of 'C' or better in CS 232 and a 'C' or better in CS 242, MAT 132 and MAT 137 or permission of the instructor.
CS 390  Honors Project in Computer Science  (3 credits)  
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
CS 396  Topics in Computer Science  (1-9 credits)  

Topics of current interest in computer science in the area of the instructor specialty.

Course Rotation: TBA.
Prerequisites: A grade of 'C' or better in CS 241 or permission of the instructor.
CS 396B  .Net Programming  (2 credits)  
CS 396C  Topic: Artficial Life  (3 credits)  
CS 396D  Topic: Data Security  (2 credits)  
CS 396E  Topic: Windows Programming Using C++  (3 credits)  
CS 396F  Topic: Implementing Client and Server Infrastructure  (4 credits)  
CS 396G  Topic: Client and Server Programming  (3 credits)  
CS 396H  Topic: Programming in Java  (1 credits)  
CS 396I  Topic: Object-Oriented Software Development for The Internet  (3 credits)  
CS 396J  Topic: Cryptography  (1 credits)  
CS 396K  Topic: Internet Working with TCP/IP  (1-5 credits)  
CS 396L  Topic: Writing Java Applets  (1 credits)  
CS 396M  Topic: Formal Software Development  (4 credits)  

A focus on emerging and promising software development techniques such as formal transformations. This course will emphasize the practical applications of formal methods in various phases of the software development lifecycle. Students will be a given a medium size project statement written in natural language and will work gradually to develop formal specifications, data and algorithm refinement, and finally proofs of correctness and completeness of their designs.

Course Rotation: TBA.
Prerequisites: A grade of "C" or better in CS 199V or permission of instructor.
CS 396N  Topic: Recent Developments in Internet Technology  (3 credits)  
CS 396P  Topic: Computing Applications in Mathematics  (1 credits)  
CS 396Q  Topic: Computer Netwroks  (3 credits)  
CS 396R  Topic: Modeling Societies of Agents  (1 credits)  
CS 396S  Topic: Servlets and Databases  (2 credits)  
CS 396T  Seminar: Making Peace with Technology  (3 credits)  
CS 396V  Topic: Modeling and Mathematical Experimentation  (2 credits)  
CS 396W  Topics: Java for C/C++ Programmers  (1 credits)  
CS 396X  Seminar--Topic: Computers and The Great Tradition  (3 credits)  
CS 396Z  Topics in Computer Science: Cryptology  (3 credits)  
CS 397  Topics in Computer Science  (0-4 credits)  
CS 397A  Topic: Software Design  (4 credits)  

This course covers a number of techniques for designing large-scale software systems. Students study the principles and methods for developing high quality software systems using object-oriented technology and its applications. Topics include object-oriented modeling, design using design patterns and object-oriented frameworks.

CS 397B  Topic: Social Choice and Computer Science  (2 credits)  

The theory of social choice and voting has had a long history in the social sciences, dating back to the 18th century. Some modern issues facing the theory of social choice relate heavily to computer science. Often we need to determine preferences for an individual or group, while maintaining accuracy, fairness, and security, sometimes with only limited information and/or computational power. This course will consider computer science and social science issues in insuring the best choices given limited information and computation. It will build on early work on the computational complexity of computing the winner of an election. Moreover, voting/social choice issues are beginning to arise in strictly computer science applications such as database and information retrieval, Internet search and meta-search, and collaborative filtering. This course will also consider such applications and present an introduction to the concepts and models of individual preference or utility as well as social choice theory and introduce students to a variety of modern computational issues and computer science applications.

CS 397D  Financial Computing  (4 credits)  

This course integrates computing and finance with an experiential perspective to provide the students analytical and quantitative skills needed for sound financial decision-making and product creation. The course will emphasize creative problem solving of mathematical models and innovative numerical algorithms for financial scenarios such as derivatives valuation, portfolio allocation, hedging strategies and fixed income analysis.

CS 397E  Topic: Enterprise System Integration with Web Service  (4 credits)  

In-depth study of cross-platform enterprise system integration with Web services. Topics include enterprise computing challenges and Service-Oriented Architecture (SOA); functions of XML and Web services in B2B system integration; introduction to XML, Web architecture, and HTTP protocol; Web service architecture; Web Service Definition Language (WSDL); Simple Object Access Protocol (SOAP); UDDI Web service registries; Web service security; and introduction of C# .NET for Java programmers. Course projects include the implementation and consumption of Web services on both the Java and Microsoft .NET platforms for demonstrating cross-platform system integration.

CS 397F  Directed Readings in Computer Science  (0-1 credits)  

This course will be organized around a series of IBM talks and hands-on technical labs.The talks will include career sessions, and a number of overview sessions on topics such as open source and open standards,collaboration technologies, Service Oriented Architecture (SOA), and Web Services. The talks will be video-conferenced between New York City and Pleasantville. The lab sessions will include an introduction to eclipse, DB2 and the Rational software products.

Prerequisites: Permission of Chair required.
CS 397H  Topic: .Net Web Technologies  (4 credits)  

Course Description:

CS 397J  Topic: Parallel and Distributed Computing  (4 credits)  

Parallel vs. distributed computing, multiprocessor and multi-computer architectures, parallel programming languages and algorithims, shared-memory and message-passing programming, distributed architectures, socket-level and sortware-framework based programming, cluster-based computing, and grid computing will all be discussed.

CS 397K  Topic: Internet Computing with Distributed Systems  (4 credits)  

This course covers distributed component technologies and their application in enterprise Web applications. It focuses on the latest non-proprietary application server and distributed component technologies.

CS 397L  Advanced Problem Solving Using LEGO Robotics  (4 credits)  

This course explores the range and depth of problems and challenges which can be designed and solved using consumer-level robotics equipment. Students will perform a series of team-based labs which will explore advanced features of LEGO Mindstorms and their use in problem solving. They will also participate in design exercises to create new robotic challenges in or more application areas.

CS 397M  Topic: Computer Game Engineering  (4 credits)  

This course is intended to provide students with an overview of the technology, science, art and engineering involved in the creation of computer games. The focus of the course will be design and development of computer games. Students will study software technologies relevant to computer game design, including multi-media design systems. A variety of areas of computer science will be covered, namely: modeling, computer graphics, game theory, software engineering, human computer interaction, graphic design, and game aesthetics.

CS 397N  Topic: Technology Entrepreneurship  (4 credits)  

This is an interdisciplinary course designed to provide students with an entrepreneurial mindset in the context of information and computational technologies and algorithms as well as to equip them with tools appropriate to identifying real business opportunities worthy of pursuit. Technology industries and applications will be emphasized along with computing opportunities. The main concepts covered are creativity and innovation; market analysis; customer-driven product identification and development; technology-based business creation, financing, and management; competitive business plans; and niche marketing. Two key components of this course will be a project to develop a business plan for a technology venture around a specific product or system, wherein entrepreneurs will serve as mentors to students and teams, and a business plan competition where other industry experts and entrepreneurs will serve as judges. The course will be supplemented with up to three guest lectures as well as the review and analysis of entrepreneur case studies.

Prerequisites: Sophmore standing or permission of instructor.
CS 397P  Engineering Designs in 3-D Worlds  (3 credits)  

The use of computing for visualization in science and engineering is critical to the success of most organizations worldwide. Three-dimensional designing in virtual world can greatly enhance the interpretation and comprehension of data. Moreover, it can ultimately lead to more astute decision making and strategic planning. The goal of this course is to introduce students to the representation of complex data using computer-generated three-dimensional modeling, animation and programming applications, which can be applied to a wide-range of fields, including aerospace, automotive, manufacturing and gaming. Course Roation:NYC:Summer

CS 397Q  Topic: Securing and Managing Networks and Information Systems  (1 credits)  

This course will expose students to both technical and professional business concepts necessary to support and defend the network infrastructure and the business information systems within an organization. Students who complete this course will be able to develop an understanding of security threats and vulnerabilities on different platforms, and will learn to respond to and recover from security incidents. The course will emphasize collaborative learning through discussions with instructors and peers, self-learning through readings and research, and experiential learning through lab assignments. The course curriculum is mapped to the Collegiate Cyber Defense Competition (CCDC) model (hhtp://www.nationalccdc.org). Students will be encouraged to participate in such competitions.

CS 397R  Topic: Robotics  (4 credits)  

This is a project-based course using pyro (Python Robotics). This course addresses the problems of controlling and motivating robots to act intelligently in dynamic, unpredictable environments. Major topics will include: navigation and control, mapping and localization, robot preception using vision and sonar, kinematics and inverse kinematics, and robot simulation environments. To demonstrate these concepts we will be using a simulated robot (and lego if possible).

CS 397T  Topic: Web Application Programming  (3 credits)  

An introduction to programming for websites using the Ruby on Rails framework. Students will create projects using the model-view-controller paradigm. The projects will consist of a website that can access a database through server.

Course Rotation: NY: Fall.
CS 397U  Topic: Linux System Programming  (4 credits)  

This course is designed for students who wish to learn how to use the Linux operating system and write programs in the Unix shell language and in the C programming language. No prior knowledge of Linux is assumed. We begin by covering basic Unix commands, then learn how to write shell scripts for system administration. We will cover Unix system calls, how to manage Unix processes. Finally, we will learn the basics of C language programming, including pointers, arrays and structs.

Prerequisites: Java programming ability.
CS 397V  Topics: Informatics and Natural Computation  (4 credits)  

This course surveys the field of natural computation and its relation to informatics. Informatics studies the structure, algorithms, behavior, and interactions of natural and artificial systems that store, process, access and communicate information. Natural computing refers to a collection of disciplines that unite nature with computing where: nature serves as a source of inspiration for the development of computational tools or systems that are used for solving complex problems; computers are used as a means of synthesizing the structural patterns and behaviors of natural phenomena; and natural materials such as DNA are employed as the the computers.

Course Rotation: NY: Fall, odd years.
Prerequisites: Junior standing. This course is open to computer science, chemistry, biochemistry, or biology majors only.
CS 397W  Mobile Phone Programming & Entrepreneurship  (4 credits)  

This course introduces students to the basics of mobile phone application development in Java. It provides an overview of the technical skills required to build such applications but also emphasizes entrepreneurial opportunities in the global mobile phone services industry. It covers the development of MIDlets and survey how to design SMS-server side applications. The knowledge of the above topics will be applied in the design and implementation of an innovative mobile phone application as part of a course long team project.

CS 397X  Topic: Musical Informatics: Mathematical Foundation and Digital Music Tools  (4 credits)  

This course is an extended review of the relationships of music, mathematics and computer science. It examines the relationships of music and mathematics from Pythagoras to J.S. Bach and W.A. Mozart as well as focusing on modern digital music and Ianis Xenakis. It explores the areas of mathematics that are used in music theory and music composition. Because of computer science only recently composers can incorporate complex mathematical models in composition without having to make the tedious calculations they require.

CS 397Y  Topic: Windows System Programming  (4 credits)  

This course provides an introductory overview of system programming in the Windows environment, mainly focusing on system-level programming based on OS services and other APIs. Topics include system calls, file I/O, files and directories, memory management, process control, inter-process communication (IPC), and socket-based network programming. Coursework includes programming assignments and a final exam.

Course Rotation: Summer.
CS 397Z  Topic: Visual Computing  (4 credits)  

Visual Computing is a course designed to provide an introduction to the use of computers for visual communication. Core areas of visual computing are computer graphics, image processing, human-computer interaction, and visualization. This course will survey the key roles these fields play in information representation and display with an emphasis on the underlying theories and methodologies for construction of computer-based visualizations and imagery.

Course Rotation: NY: Fall and Summer.
CS 398  Topics in Computer Science  (0-4 credits)  
CS 398A  Tpc: Modeling of Financial Processes and Systems through Service-Oriented Architecture Methodology  (4 credits)  

This course introduces students to models of financial processes through service-oriented architecture (SOA) methods and cloud computing. The focus of the course is on a program management methodology for projects enabling for efficiency and flexibility in process through Web services and SOA. The course concludes with students presenting models of financial processes and systems that contribute a competitive edge to financial firms through innovative technologies of leading SOA technology firms that market to Wall Street and other financial districts.

CS 398B  Topic:Entrepreneurial Health Informatics  (4 credits)  

Entrepreneurial Health Informatics is an interdisciplinary course that provides an overview of computer based clinical record systems as well as decision support systems for medical application. The course will mainly focus on experiential entrepreneurship through innovation, evolution, and imitation as well as algorithmic solutions for health decision support; data acquisition, processing, and analysis; and delivery systems and services. The main topics covered health information technology systems’ standards and terminologies, risks and uncertainty, data and workflow modeling, data mining, data visualization, and medical decision making. Teamwork and entrepreneurship will be infused throughout the course in the form of creative critical thinking and problem-solving and calculated risk-taking in the design and development of the algorithms supported by a quality business plan for a health related information technology company. Entrepreneurs will be recruited for the roles of team mentors, project selection and scaling, and guest speakers.

Course Rotation: Spring;NY
CS 398C  Topics: Introduction to Innovation Law and Policy  (3 credits)  

The need for innovation has never been more pronounced than in the current social, political, and economic landscape. The call is out for a new generation of scientists, technologists, and artists to become our great innovators. But the path to innovation is not without law. Legal and policy issues abound, from intellectual property law to privacy and security concerns to our constitutional guarantee of freedom of speech. Understanding the framework that governs our system of innovation is critical to ensuring that our future innovators are in the best position to create and that society is in the best position to benefit from their creations. This survey course will cover a number of topics relevant to students considering a wide variety of careers, including those in silence, engineering, and the arts. Topics include an introduction to the access to knowledge movement, the legal and policy considerations of fair use and remix culture, patents, trademarks, and open source software and licensing. The class will meet once a week for 2 hours.

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
CS 398F  Topic: Advanced Data Structures and Computational Geometry  (3 credits)  

Computational geometry addresses geometric questions using ideas from algorithms, data structures, complexity theory, and combinatorics. As such, it provides a nice set of applications from these disciplines and also contains features that are interesting and useful in their own right. The aim of this course is two fold: to familiarize the student with data structures that are more efficient than those traditionally included in the undergraduate curriculum, and to introduce the student to applications of those data structures using computational geometry.

Course Rotation: NYC: Fall
CS 398G  Topic: Scalable Data Platforms  (4 credits)  

This course will examine topics in the design, implementation, and evaluation of big data management and storage. Topics include the memory hierarchy; ways that data is organized both logically and physically; hardware characteristics and the ways that storage hardware influences storage software design; external-memory data structures and performance models; compression; consistency; recovery; and system measurement/evaluation. Readings will be taken from textbooks, conferences, and recent technical literature. An emphasis will be placed on identifying and evaluating system design trade-offs in large-scale data applications.

Course Rotation: NYC & PLV: TBD
CS 398H  Topics: International Technology Services in the Knowledge Economy  (3 credits)  

The course attempts to tie four important aspects together: Knowledge Economy; International Management of Services; Entrepreneurship and Innovation; and 24-Hour Knowledge Factory. The objective of the course is to look at several innovative and entrepreneurial aspects of the emerging Knowledge Economy, with special emphasis on how teams of individuals can work together in a seamless manner across national boundaries to render professional services of diverse types and varying sophistication. Graduate-level requirements include an additional 10-15 mid-term paper.

CS 398T  Topic: From Telemedicine to Telehealth: Opportunities for IT and Collaboration  (3 credits)  

As the use of telemedicine has grown, it is now time to explore broader opportunities for IT and collaboration best practices to impact the broader healthcare and life sciences ecosystem, towards a broader notion of telehealth. This seminar-style course will include lectures from industry guest speakers and cover new business opportunities, supporting technologies which are required to meet those opportunities, and the changes in organizational and regulatory frameworks which will support implementation of these technologies. Sample aspects of the life sciences ecosystem which will be covered include clinical trials of new prescription drugs, global communication of drug efficacy and quality through regulatory systems, and remote management of the medical device manufacturing process. In each of these areas, we will discuss the prospect of telehealth to include more remote participants in the process and have a better impact in patient lives. The course will also include a final project a developing a product plan for technology to address a key telehealth challenge.

Course Rotation: Spring; NY;PLV
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
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 \
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
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
CS 483  Computer Graphics II  (3 credits)  
CS 485  Artificial Intelligence II  (3 credits)  
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.

Course Rotation: NYC & PLV: Fall & Spring
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
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.

Course Rotation: Fall and Spring.
Prerequisites: Junior standing and a minimum CQPA of 3.50.
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