Computer Science (CS)

CS 505  Introduction to Computer Science with Java  (0-4 credits)  
This course covers the fundamental concepts and methods of Object-Oriented problemsolving using Java as the programming language. The main topics include data modeling with primitive data types, single/multi-dimensional arrays, classes and packages; computation algorithm specification with expressions, assignments, conditional & loop statements, and methods; formatted data I/O on the console and through files; software reuse with class inheritance, interfaces and polymorphism; problem-solving with Java collection framework data types stack, queue, Vector and Ηashtable; basic sorting and searching algorithms; and basic graphic user interface programming based on event-driven programming.
Course Rotation: NYC: Fall, Spring, & Summer
Prerequisites: This course does not have a prerequisite.
CS 600  Independent Study in Graduate Computer Science  (1-5 credits)  
Independent study projects in special areas of computer science can be pursued by advanced students with a minimum QPA of 3.70 who, upon the submission of a detailed proposal, obtain permission of the instructor. No more than 6 credits of Independent Study may be taken. Permission of Department Chair required.
Prerequisites: This course does not have a prerequisite.
CS 601C  Computational Statistics  (3 credits)  
This course provides a broad overview of statistical methods and the R language in the context of computing. The course teaches students R and prepares them to solve problems encountered in research projects, to make decisions based on data in general real world settings, to present results, and to become critical readers of statistical analyses in research papers. Topics include sampling methods, probability, statistical inference, linear models, algorithms for big data analysis and machine learning. The course presumes that the students have a minimal mathematical background (algebra) and no prior course work in statistics. Computational analysis is the emphasis over theoretical aspects. Students will use the R language for assignments and projects.
Course Rotation: NYC & PLV: Fall, Spring, Summer 1, and Summer 2
Prerequisites: This course does not have a prerequisite.
CS 604  Computer Systems and Concepts  (3 credits)  
This course provides an integrated survey of fundamental ideas in the areas of computer architecture; operating systems; and programming language specification and translation. The focus of this course is on the computer organization of a computer system, including the processor architecture and the memory system. In particular, we will discuss the internal representation of information, instruction set architectures and implementation techniques for computer arithmetic, control path design, and pipelining. We examine the hardware and software components required to go from a program expressed in a high-level programming language like C to the computer actually running the program. This course takes a bottom-up approach to discovering how a computer works, and introduces basic concepts of operating systems, compilers and interpreters.
Course Rotation: NYC & PLV: Fall
Prerequisites: This course does not have a prerequisite.
CS 607  Simulation and Computer Network Analysis  (3 credits)  
An introduction to the basic probability models, queuing theory, and simulation techniques used in the performance analysis and planning of computer networks and Internet systems. Topics include event probability , standard discrete and continuous probability distributions, the Poisson process, random number generation, discrete-event system modeling and simulation techniques, statistical estimation, and basic queuing models. The topics are illustrated with applications to current Internet-related systems.
Prerequisites: CS 505 and CS 633 with minimum grades of C.
CS 608  Algorithms and Computing Theory  (3 credits)  
Applications of abstraction and divide-and-conquer in computer science (hardware, software, theory); essentials algorithms including searching, sorting, hashing and graphs; popular algorithms such as string machine, Map Reduce and RSA and their applications; complexity; computability; NP-hard problems, NP-complete problems, and undecided problems; finite state automata vs. regular expressions.
Course Rotation: NY:WP;Fall
Prerequisites: CS 505 with minimum grade of C.
CS 610  Introduction to Parallel Computing  (3 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 604 and CS 608 with minimum grades of C. CS 608 can be taken concurrently with CS 610.
CS 612  Concepts and Structures in Internet Computing  (3 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. Restrictions/Requirements: Prereq or permission of instructor to register.
Course Rotation: NYC: Spring; GC: Spring.
Prerequisites: CS 505 with minimum grade of C.
CS 617  Game Programming  (3 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: GC and Online: Fall.
Prerequisites: This course does not have a prerequisite.
CS 619  Data Mining  (3 credits)  
This course will provide an overview of topics such as introduction to data mining and knowledge discovery; 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: PLV, Fall.
Prerequisites: CS 505 or CS 661 with a minimum grade of C.
CS 623  Database Management Systems  (3 credits)  
Database management system installation and configuration, database’s role as a middleware in system hierarchy, Entity Relationship (E-R) model for logical design, schema normalization and performance tradeoffs, database management with SQL through database console, database programming through JDBC, event-processing with triggers, efficient data processing with stored-procedures, transactions management and ACID properties, database security, and crash recovery.
Course Rotation: NY:WP;Fall
Prerequisites: This course does not have a prerequisite.
CS 624  Application Development with .NET and Web Services  (3 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 Studio .NET IDE.
Course Rotation: WP: Summer.
Prerequisites: CS 505 with minimum grade of C.
CS 627  Artificial Intelligence  (3 credits)  
Theory and data structures and algorithms related to artificial intelligence and heuristic programming. Topics include description of cognitive processes, definition of heuristic vs. algorithmic methods, state space and problem reduction, search methods, theorem proving, natural language processing and pattern recognition techniques.
Prerequisites: CS 505 with minimum grade of C.
CS 628  Automata and Computability  (3 credits)  
Concepts and methods of theoretical computer science. Topics to be covered include finite state machines, pushdown automata, Turing machines, the theory of formal languages, and the theory of computability.
Prerequisites: CS 505 with minimum grade of C.
CS 629  Computer Graphics  (3 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.
Prerequisites: CS 505 with minimum grade of C.
CS 630  Intelligent Agents  (3 credits)  
Autonomous software agents are used in many areas, from shopping bots to security bots and personal assistants. This course teaches the basic programming skills necessary to program autonomous agents using a rule-based system. Basic knowledge engineering skills and the design of agent-based programs are covered, including the use of software that learns from its own experiences.
Prerequisites: CS 505 with minimum grade of C.
CS 631  Special Topics in Computer Science  (3 credits)  
This course will consist of topics of current interest in computer science in the area of the instructor¿s specialty. Recent titles have included Intelligent Agents and Internet Computing with Distributed Components.
Prerequisites: This course does not have a prerequisite.
CS 631G  Topic: Software Verification  (3 credits)  
CS 631V  Topic: Intelligent Agents  (3 credits)  
Autonomous software agents are used in many areas, from shopping bots to security bots and personal assistants. This course teaches the basic programming skills necessary to program autonomous agents using a rule-based system. Basic knowledge engineering skills and the design of agent-based programs are covered, including the use of software that learns from its own experiences.
Prerequisites: This course does not have a prerequisite.
CS 632  Directed Readings in Computer Science  (0-1 credits)  
Directed readings under the supervision of a faculty member. Instructor approval required for registration.
Prerequisites: This course does not have a prerequisite.
CS 632Q  Topic: Introduction to Natural Language Processing  (3 credits)  
This course introduces Natural Language Processing (NLP) theory and methods. It conducts in-depth survey of most prevalent and effective natural language processing techniques, strategies, and tools. Proficiency in working with linguistic and textual data with Python is developed. The transformative impact of large digital corpora and extensive textual data sources is covered. It concludes with natural language processing opportunities for computational approaches in studying literature, history, law, medicine, business, and the social sciences.
Course Rotation: NYC & PLV: Spring
Prerequisites: This course does not have a prerequisite.
CS 633  Data Communications and Networks  (3 credits)  
This course provides a foundation in digital communications and network structures as the basis for current and emerging telecommunications and Internet systems. Topics include data, voice and video signals, information transmission (including wireless and optical media), layered networking architecture and protocols (OSI and TCP/IP), multiplexing and statistically shared media, data-link protocols, and an introduction to network and Internet strategies. Simple models for quantitative analysis of capacity and performance of network applications are introduced. Illustrations are based on current networks and Internet systems - including Internet access, wired and wireless Ethernet LANs, cellular systems, and Web facilities.
Course Rotation: TBA
Prerequisites: CS 505 with minimum grade of C.
CS 634  Computer Networking and the Internet  (3 credits)  
This course builds upon CS 633 to examine local area networks, Internetworking via the TCP/IP protocols, and the Internet. The OSI reference model and the TCP/IP protocols form the framework. Topics include: multi-access network strategies; basic traffic and capacity models; LAN standards and the evolution from shared access to switched and wireless Ethernet; LAN internetworking using bridges and routers; routing strategies and congestion in networks; the IP protocol; transport-layer issues and the TCP and UDP protocols; network security, Internet services and applications such as the Domain Name System, FTP, SMTP mail, and the HTTP protocol for the Web.
Prerequisites: CS 633 with minimum grade of C.
CS 636  Optical Communications and Networks  (3 credits)  
This course studies Optical Communications and Networks. The key principles and building blocks of Optical Communications and Networks are studied in detail with the first part of the course focusing on Optical Communications and the second part of the course focusing on Optical Networks. Topics on Optical Communications include: Light Propagation in Optical Fiber, Loss and Bandwidth, Chromatic Dispersion, Nonlinear Effects, Solitons, Couplers, Isolators and Circulators, Multiplexers and Filters, Optical Amplifiers, Transmitters, Switches, Wavelength Converters, Modulation and Demodulation, and Transmission System Engineering. Topics on Optical Networks include: Client Layers of the Optical Layer (SONET/SDH, ATM, Storage-Area Networks), WDM Network Elements, WDM Network Design, Control and Management, Network Survivability, Access Networks (HFC, FTTC, PON), Photonic Packet Switching and Deployment Considerations.
Prerequisites: CS 633 with minimum grade of C.
CS 637  Wireless Communications  (3 credits)  
The course examines the fundamental concepts of wireless transmission and the operation of current wireless systems and networks. Coverage of wireless transmission includes: radio, propagation, basic antenna operation, and signal impairments (interference, attenuation, reflection, fading, and multipath waves), providing a foundation for studying various wireless systems. Spread spectrum, cellular, and multiple-access (FDMA, TDMA, CDMA, and SDMA) methods are also covered, along with privacy and security issues in wireless systems. Examples of wireless systems covered include: cellular telephone and data networks, wireless LANs, and satellite systems. Students will collaborate to research current and emerging systems in wireless communications.
Prerequisites: CS 633 with minimum grade of C.
CS 639  Mobile Application Development  (3 credits)  
This course surveys the specificities of the development of native applications for different mobile platforms including phones and tablets. The software engineering of application development including user-centered design, testing and quality assurance will be emphasized. Students will learn how to design and develop applications for the Android platform. The following topics will be covered user interface, events processing, services management, location based facilities, accelerometer and other sensors, networks/web access, and sound and multimedia. The parallel with iPhone development will be presented. The distribution of mobile applications and business models for monetization will be covered. A significant project is integrated in the course.
Course Rotation: NY:WP;Spring
Prerequisites: CS 505 with minimum grade of C.
CS 641  Mobile Web Content and Development  (3 credits)  
This course introduces students to the techniques used to create web sites for basic and smart phones. Particular attention will be on gathering data about web traffic (e.g. visitors, visits, devices, operators, and locations) and analyze the data to engage the users and for business decision making. Content including social networking and privacy will be discussed in depth. The course also covers the development of mobile web applications using HTML5, CSS and AJAX for Android phones. The parallel with iPhone will be made. User-centered design, testing, quality assurance and performance will be covered throughout the course. The course integrates comprehensive assignments and significant readings.
Course Rotation: NY:WP; Spring
Prerequisites: CS 505 with minimum grade of C.
CS 642  Network Programming and Distributed Applications  (3 credits)  
This course introduces elements of formal specification and design and various inter-process communication mechanisms, including sockets, message-passing, and remote procedure calls, used in developing client/server and network applications. Students will use SDL (Specification and Description Language) and Java to design and implement an Internet-based distributed system. Topics include TCP/IP socket programming, Java RMI, Java Servlets, and JDBC.
Prerequisites: CS 633 with minimum grade of C.
CS 644  Web Computing  (3 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 Struts. 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: NY:WP;Fall
Prerequisites: CS 612 with minimum grade of C.
CS 646  Service-Oriented Computing  (3 credits)  
Internet as a service delivery platform. Utility computing. Functions of XML and web services for B2B system integration. Web service framework. Declaring platform-independent service API with WSDL. Encapsulating service invocation with SOAP. Implementation and consumption of web services on Java platform. Implementation and consumption of web services on MS NET platform. Cross-platform system integration. Web service security. Specifying business processes with XML dialect BPEL. Business process modeling for automated business process integration, coordination and execution.
Prerequisites: CS 612 with minimum grade of C.
CS 648  Unix/Linux Programming  (3 credits)  
This course explains the structure of the Unix operating system and shows how to write system and network programs. It is appropriate for students who want to learn how to write system software for Unix or for students who want to learn about the structure of a mutli-tasking, multi-user operating system. The course covers the details of the file system, terminal and device input/output, multi-tasking, interprocess communication, video displays, and network programming.
Course Rotation: NY: Summer
Prerequisites: CS 608 with minimum grade of C.
CS 650  Enterprise Computing  (3 credits)  
Server scalability and robustness. Introduction to mainframe computing. Separating data presentation generation and business logic with application servers. Software framework for Enterprise JavaBeans. Scalable business logic implementation with Enterprise Session JavaBeans. Event-driven system integration with message-driven Enterprise JavaBeans. Matching object domain model and relational data model. Enterprise server system security and deployment. Server virtualization as cloud services.
Course Rotation: NY: Summer
Prerequisites: This course does not have a prerequisite.
CS 651  Secure Distributed System Development  (3 credits)  
Internet/Linux server security overview. Cryptography concepts and their Java API. IP Security. Java Security framework. Java API for data confidentiality and identity authentication. Trust chains through digital certificate chains. Developing distributed applications with distributed Kerberos third-party authentication. Secure server application communications through SSL, TLS, HTTPS and VPN. Developing secure e-commerce transaction system supporting the Secure Electronic Transaction (SET) protocol. Secure server infrastructure with firewalls and Intrusion Detection Systems (IDS).
Course Rotation: NY:WP;Spring
Prerequisites: CS 612 with minimum grade of C.
CS 652  Secure Web Application Development  (3 credits)  
Web and Internet security overview. Securing web servers, application servers, and database servers. Client-side vs. server-side web application input validation. Java security policy and certificate management. Running Java applications through Java security manager. Defining Java security policies based in code based and code signatures. Secures web application session management. SQL injection prevention. URL hacking prevention. Secure web application development life cycle and maturity model. Web application auditing. Black box vs. white box web application security testing. Secure web application deployment.
Course Rotation: NY:WP;Fall
Prerequisites: CS 612 with minimum grade of C.
CS 653  Cryptography and Computer Security  (3 credits)  
This course covers the most important issues and topics in the huge area of cryptography and computer security. Topics include: Mathematics of Cryptography, Traditional Symmetric-Key Ciphers, Modern Symmetric-Key Ciphers, DES, AES, Asymmetric-Key Cryptography. RSA, Rabin, ElGamal and Elliptic Curve Cryptosystems, Message Integrity and Message Authentication, Cryptographic Hash Functions, Digital Signature, Entity Authentication and Key Management.
Course Rotation: NY:WP;Spring
Prerequisites: This course does not have a prerequisite.
CS 654  Security in Computer Networking  (3 credits)  
This course covers the most important issues and topics in the area if network security. A good balance between theory and practice is sought. It covers attacks and threats in computer networks, including network mapping, port scanning, sniffing. DoS, DDoS, reflection attacks, attacks in DNS and leveraging P2P deployments for attacks, operational security, including firewalls and intrusion-detection systems. It also takes a layered approach to network security covering topics that include: Security at the Application Layer: PGP and S/MIME, security at the Transport layer: SSL and TLS. Security at the Network Layer: IPSec. Students will use software tools to participate in an important simulated lab component that includes packet sniffing, network mapping, firewalls, SSL and IPsec.
Course Rotation: NY:WP;Spring
Prerequisites: CS 634 with minimum grade of C.
CS 655  Pattern Recognition  (3 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, feature 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.
Course Rotation: WP;Spring
Prerequisites: CS 608 with minimum grade of C.
CS 659  Introduction to Human Computer Interaction  (3 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: NYC & PLV: Fall
Prerequisites: This course does not have a prerequisite.
CS 660  Mathematical Foundations of Analytics  (3 credits)  
This course covers the fundamental mathematics needed for further study in data science, machine learning and artificial intelligence. Students will learn the theory and application of linear algebra, analytic geometry, matrix decompositions, vector calculus, probability theory and optimization. Building upon these mathematical foundations, the course culminates with an overview of some key machine learning concepts: linear regression; principal components analysis; density estimation; and support vector machines. The emphasis of this course is on the theory underlying data science methods and machine learning. Requirements/Restrictions: Knowledge of Calc II and Linear Algebra (or equivalent) are required.
Course Rotation: NYC: Spring & Fall
Prerequisites: This course does not have a prerequisite.
CS 661  Python Programming  (3 credits)  
This course introduces students to the Python programming language with an emphasis on Python's data analytics libraries. Students will learn the fundamentals of Python and key modules including: scipy, numpy, scikit-learn, pandas, statsmodels, and matplotlib . 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. Students will use Python to clean and prepare data, conduct exploratory data analysis, and build predictive models.
Course Rotation: NYC & PLV: Fall & Sprng
Prerequisites: This course does not have a prerequisite.
CS 662  Big Data Warehousing  (3 credits)  
Data Modeling. Star and snow schema. Multi-dimensional modeling. Inman and Kimbel approaches to data warehousing. Changing Business with Data Insight. Architecting the Data Warehouse.
Course Rotation: PLV: Spring
Prerequisites: CS 658 with minimum grade of C.
CS 663  Human Factors and Usability Metrics  (3 credits)  
This course surveys methods for evaluating user interfaces. Students will learn essential knowledge to be able to perform heuristic evaluation, a cognitive walkthrough, a usability test and a comparison study. Class meetings 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: NYC & PLV: Spring
Prerequisites: This course does not have a prerequisite.
CS 664  Introduction to Enterprise Intelligence  (3 credits)  
Enterprise intelligence through IBM Cognos Business Intelligence. Enterprise intelligence value proposal. Enterprise intelligence’s split personality; business and technology. Basic reporting and querying. Online analytical processing. Dashboard and briefing books. Human factors in enterprise intelligence implementation. Building a solid enterprise intelligence architecture and roadmap. Building enterprise intelligence project plan. Collecting user requirements. Enterprise intelligence design and development.
Course Rotation: PLV: Summer
Prerequisites: CS 660 with minimum grade of C.
CS 665  Product Development Project  (3 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 teams 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 666  Enterprise Intelligence Development  (3 credits)  
The purpose of this course is for students to gain a solid foundation in the most important tools and strategies for addressing three common challenges in enterprise business intelligence: (1) reducing the time needed to produce insightful metrics and reports; (2) freeing data trapped inside of legacy tools and federated data sources; and, (3) providing a centralized framework for user interaction and consumption of analysis, reports and curated data. Students will use R and Python to ingest, model, analyze data, and report their results, and work with several popular database environments (e.g SQL Server, Oracle, MongoDB). Students will learn about and apply common machine learning algorithms, and understand and code the principles and foundational steps for selecting, building and validating a predictive model.
Course Rotation: NYC: Spring
Prerequisites: CS 664 with minimum grade of C.
CS 667  Practical Data Science  (3 credits)  
Students will discuss current issues in the field of analytics each week. The course will consist of assigned readings, and discussions, including discussions lead by industry leaders, on topics relevant to data analytics and computing. Students will learn how to prepare analytical results for presentation to stakeholders, to translate technical material to non-technical discourse, and how to prepare for a career as data scientists. This course prepares students for their Analytics Capstone Project. Restrictions/Requirements: Completed 18 Credits toward the Data Science Degree. Open to Data Science Majors only.
Course Rotation: NYC: Fall & Spring
Prerequisites: Students must complete a minimum of 18 credits toward the MS-CS degree.
CS 668  Analytics Capstone Project  (3 credits)  
The purpose of the Analytics Capstone Project is for students to apply the knowledge and skills acquired during their master's program to a project involving actual data in a real world setting. During the project, students will apply the entire data science process from identifying a problem or opportunity, and collecting and processing actual data to applying suitable and appropriate analytic methods to find a solution. Both the problem statement for the project and the datasets will come from real-world domains similar to those that students might typically encounter within industry, government, or academic research. The course will culminate with each student making a presentation of his or her work, and submitting a final paper, and, if applicable, a computer application. This course requires a great deal of self-directed work and the ability to manage time and meet deadlines.Restrictions/Requirements:Open to Data Science Majors.
Course Rotation: PLV: Fall
Prerequisites: Students must complete a minimum of 18 credits toward the MS-CS degree.
CS 671  Computer Vision  (3 credits)  
This course will provide an introduction to basic concepts and methodologies for digital image processing and the applications. Fundamental digital image processing techniques including enhancement, filtering, morphology, Fourier transform and segmentation will be discussed. The course will also introduce students how to use Matlab as an image processing tool. Matlab-based course projects will be used to illustrate and practice the image processing techniques. Students will gain understanding of algorithm design and hands-on experiences on how to process and analyze digital images using Matlab.
Course Rotation: NY: Spring.
Prerequisites: CS 505 with minimum grade of C.
CS 672  Introduction to Deep Learning  (3 credits)  
Students will learn how to design, implement, and evaluate a pipeline for supervised classification of structured data, using a variety of Machine Learning techniques (e.g., Logistic Regression). Apply Deep Learning techniques (e.g., Convolutional Neural Networks, Recurrent Neural Networks) to classify unstructured data, including images and text. Describe important considerations for applying Machine Learning in practice.
Course Rotation: NY; Fall
Prerequisites: CS 661 with minimum grade of C.
CS 673  Scalable Databases  (3 credits)  
After reviewing relational databases and SQL, students will learn the fundamentals of alternative data storage schemas to deal with large amounts of data (structures and unstructured). The course covers big data and the development of the Hadoop file system, the MapReduce programming paradigm, and database management systems such as Cassandra, HBase and Neo4j. Students will learn about NoSQL, distributed databases, and graph databases. The course emphasizes the differences between traditional database management systems and alternatives with respect to accessibility, cost, transaction speed, and structure. Part of the course is dedicated to access, handle and process data from different sources and of different types using Python. The course provides hands-on practice.
Course Rotation: NYC: Fall
Prerequisites: CS 623 and CS 661 with minimum grades of C.
CS 674  Supportive Technologies for Blockchain Applications  (3 credits)  
This course provides students with an understanding of the concepts, technologies and implementation considerations behind blockchain. Using a hands-on approach, the course covers a range of essential topics, from distributed systems to the cryptographic foundations of blockchain to consensus and smart contracts. Blockchain applications across sectors are presented, with a focus on financial applications and new developments.
Course Rotation: NYC: Spring & Fall
Prerequisites: This course does not have a prerequisite.
CS 675  Introduction to Data Science  (3 credits)  
This course introduces the concepts of data science. The course teaches students the crossdisciplinary basis of data science, and the data science process. Additionally the course covers data visualization, data wrangling, ethics of designing and conducting data analysis and research, bias in research, data privacy issues surrounding the use of data, and, research reproducibility. Students will learn about statistical learning methods, and then move on to more advanced topics including: database queries, working with spatial data, text mining, networks and big data. The course also emphasizes writing technical reports and presenting results. The course also prepares students for further study in data mining, machine learning, and artificial intelligence. Restrictions/Requirements: Prior Python Programming Experience.
Course Rotation: NYC: Fall & Spring
Prerequisites: CS 661 with minimum grade of C.
CS 676  Algorithms for Data Science  (3 credits)  
This course focuses on the algorithms needed for data analytics, and has a computational emphasis. Students will develop proficiency in Python and R, as they build algorithms and analyze data. Topics include data reduction: data mapping, data dictionaries, scalable algorithms, Hadoop, and MapReduce; gaining information from data: data visualization, regression modeling, and cluster analysis; and, predictive analytics: k-nearest neighbors, naïve Bayes, time series forecasting, and analyzing streaming data. Restrictions/Requirements: Open to Data Science Majors
Course Rotation: NYC: Spring
Prerequisites: CS 675 with minimum grade of C.
CS 677  Machine Learning  (3 credits)  
This course teaches students machine learning theory and algorithms. Students will learn about probably approximately correct (PAC), empirical risk minimization (ERM), structural risk minimization (SRM), and minimum description length (MDL) learning rules. Students will then study various machine learning algorithms, such as linear models, gradient descent, support vector machines (SVM), kernel methods, and trees, and how they connect to the theoretical framework. Finally, the course culminates with additional topicssuch as clustering, dimensionality reduction, generative models, and feature selection. Restrictions/Requirements: Open to Data Science Majors.
Course Rotation: NYC: Spring
Prerequisites: CS 660 with minimum grade of C.
CS 691  Computer Science Capstone Project  (3 credits)  
Students work in teams to define, design, implement and demo a major capstone project with the best design and implementation methods/technologies, and a well-defined agile software process. Complete a major Team Project Report clearly defining the contribution of each student, present the project to the class, and upload the project and its report/presentation to the course GitHub site for public evaluation/comments for improvement. This course must be taken in student’s last program semester. Restrictions/Requirements:Minimum 18 credits completed toward the MS-CS degree Minimum 18 credits completed toward the MS-CS degree.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: Students must complete a minimum of 18 credits toward the MS-CS degree.
CS 692  Research Project  (3 credits)  
Students enrolled in Computer Science Project II will finish their project begun in Computer Science Project I and write a major report. When the report has been completed, each student will be expected to give an oral presentation and project demonstration before the committee. The project advisor will assign a grade for the work in consultation with the committee. This grade will also be assigned to Computer Science Project I.
Course Rotation: NY:WP
Prerequisites: CS 691 with a minimum grade of C.
CS 693  Thesis I  (3 credits)  
Students choosing this option will select and research a topic in computer science in consultation with a faculty advisor. A brief written Thesis Proposal must be approved by the advisor and a committee chosen by the student, advisor, and department chair. Students enrolled for Thesis I will complete preparatory research culminating in a written Thesis Report. Those not electing to continue with Thesis II will receive a grade for Thesis I and may use it as a computer science elective. Restrictions/Requirements: Permission of Department and additional paperwork required prior to registration.
Prerequisites: This course does not have a prerequisite.
CS 694  Thesis II  (3 credits)  
Students enrolled in Thesis II will finish their research begun in Thesis I and write a thesis. When the thesis has been completed, each student will be expected to give an oral presentation before the committee. The thesis advisor will assign a grade for the work in consultation with the committee. This grade will also be assigned to Thesis I.
Prerequisites: CS 693 with grade of P.
CS 696A  Topic: Full-Stack Enterprise Application Development  (3 credits)  
This course guides students in developing full-stack applications applying service-oriented architecture (SOA) and using a modern technology stack in data persistence, backend, and frontend programming. Its topics include product development process & end-to-end user experience (UX) design; full-stack system design process; operational excellence on full-stack application including basic performance optimization strategies.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: This course does not have a prerequisite.
CS 696B  Topic: Introduction to Business Process Automation  (3 credits)  
his course introduces Business Process Modeling/Automation. XML data modeling and remote computing service integration through web services are introduced. Industry standard BPMN for business process modeling and its mapping/implementation through Business Process Execution Language (BPEL) are the core of this course. Software development for business process automation with major open-source BPM platforms is covered. Case studies illustrate how BPM supports the efficient execution of most leading financial institutions, manufacturing companies, and service industries.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: This course does not have a prerequisite.
CS 696C  Topic: AI Ethics  (3 credits)  
This course explores the contemporary ethics of computer science and engineering with thought experiments, discussions, and case studies. Students will learn the central ethical principles guiding today’s information technology and apply the theory in real world situations. The course will address questions about privacy: What is it, and why do we want it? It will investigate dilemmas in fairness and social wellbeing as they rise alongside the digital revolution. It will ask whether AI serves humans, or do we serve AI? Through the course, students will learn to develop an ethical understanding of their own work, to respond to ethics committees, and to produce ethical evaluations of technological projects compliant with recent legal and regulatory requirements.
Course Rotation: NYC & PLV: Fall & Spring
Prerequisites: This course does not have a prerequisite.
CS 701  Advanced Algorithms  (3 credits)  
The purpose of this course is to acquire a thorough grounding in the core principles and foundations of computer science. After a review of foundational algorithm analysis, students will learn advanced algorithmic techniques such as randomized and approximation algorithms. Problems arising in number theory such as Primality Testing and Factorization will lead the path to study the RSA public-key crypto-system. Classical algorithms for String Matching, with applications to computational biology, such as Rabin-Karp and Knuth-Morris-Pratt, will also be studied. Advanced data structures particularly suited for certain applications, such as B-trees, van Emde Boas trees, and skip lists, will be studied. The question of what problems are hard to compute will be addressed studying the NP-completeness theory, including the identification of NP-hard problems by reductions. Hard problems such as Traveling Salesman, Knapsack, and Vertex Cover will be studied in the context of approximation algorithms.Instructor approval required for student registration.
Prerequisites: CS 608 with grade of A.
CS 716  Introduction to Big Data Analytics  (3 credits)  
Over the last ten years we have witnessed the successful application of many machine learning techniques on big data platforms based on the parallel computing paradigm and associated technologies such as distributed file systems, no-SQL databases, and stream computing engines. National security, machine translation, natural language understanding, online advertising, and personalized medicine, are some examples of such machine-learning, web-intelligence applications in the public eye. This course explores these applications and the machine-learning/statistical techniques that make them possible. Instructor approval required for registration.
Course Rotation: PLV: Fall
Prerequisites: This course does not have a prerequisite.
CS 727  Advanced Artificial Intelligence  (3 credits)  
Advanced topics in Artificial Intelligence include planning, probabilistic reasoning, Markov decision processes, reinforcement learning, deep neural networks, Bayesian learning, and natural language processing. Restrictions/Requirements: Prereq and Instructor Permission.
Course Rotation: NYC & PLV: Fall
Prerequisites: CS 627 with minimum grade of B.
CS 737  Quantum Computing  (3 credits)  
This course provides an introduction to the theory and practice of quantum computing. Topics covered include quantum computing circuits, particularly quantum gates, and comparison with classical computing gates and circuits; quantum algorithms; mathematical models of quantum computation; quantum error correcting codes; and quantum cryptography. Instructor approval required for registration.
Course Rotation: Fall.
Prerequisites: This course does not have a prerequisite.
CS 740  Advanced Computer Vision  (3 credits)  
This course covers advanced research topics in computer vision. Building on the introductory materials covered in the Computer Vision prereq class, this class will prepare graduate students in both the theoretical foundations of computer vision as well as the practical approaches to building real Computer Vision systems. This course investigates current research topics in computer vision with an emphasis on recognition tasks and deep learning. Topics include optical flow, object tracking, object recognition, bag-of-features representation, deep neural networks, etc. We will examine data sources, features, and learning algorithms useful for understanding and manipulating visual data. Instructor approval required to register.
Course Rotation: NY and PLV; Fall
Prerequisites: CS 671 with minimum grade of B.
CS 755  Advanced Pattern Recognition and Machine Learning  (3 credits)  
This course focuses on the fundamental concepts, theories, and algorithms for pattern recognition and machine learning. Diverse application areas such as optical character recognition, speech recognition, and biometrics are discussed. Topics covered include supervised and unsupervised (clustering) pattern classification algorithms, parametric and non-parametric supervised learning techniques, including Bayesian decision theory, discriminant functions, the nearest neighbor algorithm, and neural networks with emphasis on deep learning. Instructor approval required to register.
Course Rotation: NY and PLV; Fall
Prerequisites: CS 655 or CS 677 with minimum grade of B.