main navigation
my pace

600

CS 600 Independent Study in Graduate Computer Science

Prerequisite: Permission of Department Chair required.

Course Description: 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.

1 - 5 credits

CS 602 Fundamental Computer Science I with Java

Course Description: Introduction to Java programming, algorithm design and computer science concepts. Covers procedural programming constructs, use of language provided objects and static methods, building classes, the management of reference variables in contrast to primitives. Programming problem-solving is emphasized throughout. Computer science concepts include time complexity analysis, elementary sorting and searching, and adjacency matrices for graphs. Also included are beginning concepts of Object Oriented Design such as identifying the attributes and responsibilities of classes.

Course Rotation: NYC: Fall; GC: Fall.

4 credits

CS 604 Computer Systems and Concepts

Pre or Corequisite: CS 602.

Course Description: This course provides an integrated survey of fundamental ideas in the areas of computer architecture; operating systems; and programming language specification and translation.

Course Rotation: NYC: Fall; GC: Fall.

4 credits

Prerequisites

CS 602 Min Grade C

Corequisites

CS 602

CS 605 Programming Language Implementation

Course Description: Implementation of high-level programming languages. Topics to be covered include concepts and comparison of programming languages, lexical analysis, parsing, code generation and optimization. Emphasis will be placed on the formation structures and algorithms required to implement compilers and their use and performance in other applications. Students will be expected to implement a compiler.

4 credits

Prerequisites

CS 601 Min Grade C and CS 603 Min Grade C

CS 606 Fundamental Computer Science II with Java

Course Description: Building linked data structures including lists and trees. Recursive techniques for managing binary trees and for backtracking. Derivation including abstract classes, and polymorphism. Interfaces. Exception handling. Information storage and retrieval systems and time complexity analysis. Applicable design patterns. Coverage of Java collections framework.

Course Rotation: NYC: Spring; GC: Spring.

4 credits

Prerequisites

CS 602 Min Grade C

CS 607 Simulation and Computer Network Analysis

Course Description: 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.

3 credits

Prerequisites

CS 602 Min Grade C and CS 633 Min Grade C

CS 608 Algorithms and Computing Theory

Course Description: 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

3 credits

Prerequisites

CS 502 Min Grade C

CS 610 Introduction to Parallel and Distributed Computing

Course Description: Parallel computing theory: Parallel Random-Access Machines (PRAMs), Amdahl?s law for theoretical speedup limits, Petri Nets; parallel vs. distributed computing: speedup, fault-tolerance, resource-sharing; parallel architectures; data flow, instruction-level pipelining, embedded multicore systems, shared-memory multiprocessors, distributed-memory multicomputers, interconnection networks, distributed systems: client-server systems, cluster computing, computing grids, cloud computing; parallel and distributed programming with industry standard MPI (Message Passing Interface); and parallel algorithms.

Course Rotation: NY:WP;Fall:Summer

3 credits

Prerequisites

CS 502 Min Grade C

CS 612 Concepts and Structures in Internet Computing

Pre or Co-requisite: CS 606.

Course Description: 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: NYC: Spring; GC: Spring.

3 credits

Prerequisites

CS 604 Min Grade C and CS 606 Min Grade C

CS 613 Compiler Construction

Course Description: Implementation of high-level programming languages. Topics to be covered included concepts and comparison of programming languages, lexical analysis, parsing, code generation and optimization. Emphasis will be placed on the formation structures and algorithms required to implement compilers and their use and performance in other applications. Students will be expected to implement a compiler.

Course Rotation: NY:WP;Spring

3 credits

Prerequisites

CS 504 Min Grade C

CS 615 Software Engineering Seminar I

Prerequisite: Twelve credits of 600-level course work.

Course Description: This seminar will examine the methodologies used in design, documentation, verification, implementation, validation, performance, evaluation and maintenance for the development of large software systems. Methodologies included are structured programming and walk-thrus, top-down modular design, proof of correctness and automated testing techniques. Seminar participants will design and implement large modular software systems using techniques chosen or evolved from those presented.

4 credits

Prerequisites

CS 606 Min Grade C

CS 616 Software Engineering Seminar II

Course Description: A Continuation of Software Engineering Seminar I.

4 credits

Prerequisites

CS 615 Min Grade C

CS 617 Game Programming

Course Description: 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.

3 credits

Prerequisites

CS 602 Min Grade C

CS 619 Data Mining

Course Description: 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: PL, GC and Online: Fall.

3 credits

Prerequisites

CS 602 Min Grade C

CS 620 Introduction to XML Application Devlopment

Course Description:The World-Wide Web Consortium?s (W3C) eXtensible Markup Language (XML) has rapidly emerged as a standard that is used in a wide variety of applications related to Web and e-commerce. XML is becoming a very important new technology used everywhere in 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 :< /b>NY: WP; spring

3 credits

CS 623 Database Management Systems

Course Description: 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

3 credits

Prerequisites

CS 504 Min Grade C

CS 624 Application Development with .NET and Web Services

Course Description: 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.

3 credits

Prerequisites

CS 504 Min Grade C or CS 606 Min Grade C

CS 627 Artificial Intelligence

Course Description: 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.

3 credits

Prerequisites

CS 504 Min Grade C

CS 630 Intelligent Agents

Course Description: 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.

3 credits

Prerequisites

CS 606 Min Grade C

CS 631I Introduction to Pattern Recognition

Course Description: Pattern Recognition techniques are useful in many applications of computer science and information systems, such as information retrieval, data mining, artificial intelligence and image processing. This course is an introduction to the foundation of pattern recognition algorithms.

3 credits

Prerequisites

CS 602 Min Grade C

CS 631O Topic: Linux System Programming

Prerequisite: Java programming ability.

Course Description: 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.

3 credits

CS 631S Topic: Computer Security

Course Description: Security in computing investigates the perpetration of damages and theft using the computer, and strategies for protection. The focus is on software that harms or steals from others, and schemes and mechanisms that are used for defense. Topics include viruses; cryptography; network security; protection in operating systems; database security; and intellectual property issues.

3 credits

Prerequisites

CS 604 Min Grade C

CS 631W Mobile Phone Programming & Entrepreneurship

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

3 credits

CS 631Y Topic: Windows System Programming

Course Description: 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.

3 credits

Prerequisites

CS 502 Min Grade C or CS 602 Min Grade C

CS 632 Directed Readings in Computer Science

Course Description: Directed readings under the supervision of a faculty member.

1 credits

CS 632B Topic:Mobile Application & Development

Course Description: This course introduces students to the basics of mobile phone application development. 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. The focus will be on Java ME but other languages and development platforms will be presented. The course will be organized around a series of talks from speakers from the industry and NGOs who will provide insight about their experience in the field.

Course Rotation: NYC: Fall

1 credits

Prerequisites

CS 602 Min Grade B

CS 632C Engineering Designs in 3D Worlds

Course Description: 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

3 credits

CS 632D Topic: Visual Computing

Course Description: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: NYC:FALL

3 credits

Prerequisites

CS 602 Min Grade C

Corequisites

CS 606

CS 632E Topic: Financial Computing and Entrepreneurship

Course Description: This interdisciplinary course integrates computing (computer science, information systems, and information technology), finance, and applied entrepreneurship to provide the student analytical, quantitative, application, and entrepreneurial skills needed for sound and strategic financial decision making and information technology based product creation. The course will emphasize creative problem solving of and development innovative algorithms for financial problems in such topics as financial analysis and time value of money, derivative products, portfolio management, hedging strategies, arbitrage, risks, Black-Scholes model, interest rate models, and fixed income analysis. Within a collaborative tram environment, the student will develop innovative algorithmic solutions for financial problems as well as analyze, evaluate model financial time series with neural networks; the algorithms will be implemented in a high-level computer language (e.g. Java, C/C++, or Matlab) into prototypes for potentially marketable financial software products. An entrepreneurial perspective will permeate the course in the form of creative thinking and calculated risk-taking in the design and development of the algorithms and prototypes, and the development of a high-quality business plan for an information technology company to market the likely software products. There will be a reliance on entrepreneurs for team mentors, project selection and scaling, and guest speakers.

Course Rotation: Spring;NY

3 credits

Prerequisites

CS 619 Min Grade C and IS 690K Min Grade C

CS 632G Topic:Entrepreneurial Health Informatics

Course Description: 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

3 credits

Prerequisites

CS 397N Min Grade D

CS 632H Special Topic: Web Application Programming

Course Description: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 a server.

Course Rotation: NY;Fall

3 credits

Prerequisites

CS 504 Min Grade C

CS 633 Data Communications and Networks

Pre or Co-requisite: CS 604.

Course Description: 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.

3 credits

Prerequisites

CS 604 Min Grade C

CS 634 Computer Networking and the Internet

Course Description: 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.

3 credits

Prerequisites

CS 633 Min Grade C

CS 636 Optical Communications and Networks

Course Description: 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.

3 credits

Prerequisites

CS 633 Min Grade C

CS 637 Wireless Communications

Course Description: 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.

3 credits

Prerequisites

CS 507 Min Grade C and CS 633 Min Grade C

CS 639 Mobile Application Development

Course Description: 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

3 credits

Prerequisites

CS 504 Min Grade C

CS 641 Mobile Web Content and Development

Course Description: 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

3 credits

CS 643 Mobile Innovations for Global Challenges

Course Description: This course familiarizes students with the development of mobile innovations addressing social and global challenges in areas such as health, microfinance, education and civic activism. Students will be introduced to research in the social considerations in mobile application development, ICT4D (Information and Technology for Development), and M4D (Mobile for Development) through readings, class discussions and a series of talks. The Mobile Web, and SMS and Voice Solutions will be presented in that context. Students will leverage their technical knowledge with social insight, creativity and ingenuity to develop prototype with social impact along with its deployment plan (taking into accounts the real world limitations) and a business model, with the guidance of local partners from NGOs and the industry, and successful social entrepreneurs.

Course Rotation: NY:WP;Spring

3 credits

Prerequisites

CS 504 Min Grade C

CS 644 Web Computing

Course Description: 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 JavaServer Pages. Session data management and Java persistence service. Computation abstraction with Struts. Server-side GUI abstraction/reuse and data validation with JavaServer Faces. Ajax for more interactive and smoother web interactions. Web application security.

Course Rotation: NY:WP;Fall

3 credits

Prerequisites

CS 612 Min Grade C

CS 648 Unix/Linux Programming

Course Description: 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

3 credits

Prerequisites

CS 601 Min Grade C

CS 653 Cryptography and Computer Security

Course Description: 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

3 credits

CS 654 Security in Computer Networking

Course Description: 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

3 credits

Prerequisites

CS 634 Min Grade C

CS 655 Pattern Recognition

Course Description: 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, basian 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

3 credits

Prerequisites

CS 602 Min Grade C and CS 608 Min Grade C

CS 657 Windows System Programming

Course Description: This course covers the Windows operating system API. The course covers the details of the file system, system calls, memory management, process control, inter-process communication, socket-based network programming, remote procedure call programming, threads and synchronization. By the end of the course, students will be able to write Windows system programs in the C language. The prerequisite is good programming skills in a higher level language.

Course Rotation:Summer;NYC:PLV

3 credits

Prerequisites

CS 504 Min Grade C

CS 691 Computer Science Project I

Course Description: Students choosing this option will, in consultation with a faculty advisor, select a significant computer science application, study its supporting technologies, design and implement the application, and present the project in form of a major Project Report and project demonstration. A brief written Project Proposal must be approved by the advisor, a committee chosen by the student and the advisor, and department chair. Students enrolled for Computer Science Project I will complete preparatory work culminating in a major Project Report. Those not electing to continue with Computer Science Project II will receive a grade for Computer Science Project I and may use it as a computer science elective.

Course Rotation: NY:WP

3 credits

CS 692 Research Project

Course Description: 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

3 credits

CS 693 Thesis I

Prerequisite: Permission of Department and additional paperwork required prior to registration.

Course Description: 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.

3 credits

CS 694 Thesis II

Course Description: 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.

3 credits

Prerequisites

CS 693 Min Grade P

CS 694Q Thesis II

Prerequisite: CS 693.

Course Description: 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.

4 credits

Prerequisites

CS 693 Min Grade C

CS 699 Field Study

Course Description: A paid or unpaid field study experience in a working environment intended to provide the student with a practical extension and enhancement of knowledge gained in class. A research study or project done under the direction of a faculty advisor is required. No more than 3 credits of Field Study may be taken.

1 - 4 credits