2018-2020 Undergraduate and Graduate Bulletin (with addenda) 
    
    Apr 19, 2024  
2018-2020 Undergraduate and Graduate Bulletin (with addenda) [ARCHIVED CATALOG]

Course Descriptions


A Brief Guide to Course Descriptions

Each program described in this catalog contains detailed descriptions of the courses offered within the program.

The first line gives the official course number for which students must register and the official course title. The letters indicate the discipline of the course and the first number of the official course numbers indicates the level of the course. The levels are as follows:

  • 1XXX - Freshman Level
  • 2XXX - Sophomore Level
  • 3XXX - Junior Level
  • 4XXX - Senior Level
  • 5XXX to 9XXX - Graduate level

Typically the last number of the course number indicates the number of credits. The breakdown of periods of the course is also listed.

When selecting a course for registration, the section of the course may include the following notations:

  • “LEC” - lecture section
  • “RCT” or “RC” - recitation section
  • “LAB” or “LB” - lab section

Additionally, any other letter or digit listed in the section will further identify the section and being liked to another section of the class with the same letter and/or digit combination. Further information on sections is available from academic advisers during registration periods.

The paragraph description briefly indicates the contents and coverage of the course. A detailed course syllabus may be available by request from the office of the offering department.

“Prerequisites” are courses (or their equivalents) that must be completed before registering for the described course. “Co-requisites” are courses taken concurrently with the described course.

The notation “Also listed…” indicates that the course is also given under the number shown. This means that two or more departments or programs sponsor the described course and that students may register under either number, usually the one representing the student’s major program. Classes are jointly delivered.

 

Civil Engineering

  
  • CE-UY 4990 Fundamentals of Engineering Exam Registration for CUE

    0 Credits
    This is a non-credited course that verifies registration by CUE students in required Fundamentals of Engineering (FE) exam. Department Consent required.

    Prerequisite(s): Senior standing and permission of the Civil Engineering Program Advisor.

Computer Science

Undergraduate Courses

Students are advised to consult the Schedule of Classes for changes in prerequisites effective after publication of this catalog. Students may not register for any junior- or senior-level courses until they complete all freshman requirements.

Graduate Courses

Graduate courses in computer science are regularly offered either every semester, annually or in two or three year cycles.

  
  • CS-GY 997X MS Thesis in Computer Science

    Variable credits Credits
    Exceptional students may elect to write a master’s thesis for which no more than 6 credits may be earned toward the degree. Such research should demonstrate adequately the student’s proficiency in the subject material. Also required: oral thesis defense before at least three professors, plus a formal, bound thesis volume. Thesis registration must be continuous.

    Prerequisite(s): Graduate status and satisfactory grades in prescribed courses.
  
  • CS-GY 999X PhD Dissertation in Computer Science

    Variable credits Credits
    The dissertation is an original investigation of a computer-science problem. The dissertation must demonstrate creativity and include features of originality and utility worthy of publication in a recognized journal. Candidates must orally defend their dissertations successfully. Registration of 21credits and continuous dissertation registration are required.

    Prerequisite(s): Passing grade for RE-GY 9990 PhD Qualifying Exam , graduate standing, and dissertation advisor approval
  
  • CS-GY 5303 Introduction to Programming and Problem Solving

    3 Credits
    This course introduces discrete mathematics, computers and programming; Running C/C++ programs under Unix; algorithmic language; pseudo code; problem solving and program structure. Topics include constants, variable, data types, assignments, arithmetic expressions, input and output; object-oriented and top-down design and procedures, selection and loops; functions; enumerations; arrays, structs and searching and sorting.

    Prerequisite(s): Graduate status.
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 5403 Data Structures and Algorithms

    3 Credits
    This course introduces data structures. Topics include program specifications and design; abstract data types; stacks, queues; dynamic storage allocation; sequential and linked implementation of stacks and queues; sequential and binary search methods; binary trees and general trees; hashing; computational complexity; sorting algorithms: selection sort, heap sort, mergesort and quicksort; comparison of sorting techniques and analysis.

    Prerequisite(s): Graduate status and CS-GY 5303 .
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6003 Foundations of Computer Science

    3 Credits
    This course covers logic, sets, functions, relations, asymptotic notation, proof techniques, induction, combinatorics, discrete probability, recurrences, graphs, trees, mathematical models of computation and undecidability.

    Prerequisite(s): Graduate status. Corequisite(s): CS-GY 5303 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6005-6025 Variable Credit Project/ Course


    For students who need .5, 1, 1.5, 2 and 2.5 credit hours to meet graduation requirements, a project or special course is available with faculty approval.

  
  • CS-GY 6033 Design and Analysis of Algorithms I

    3 Credits
    This course reviews basic data structures and mathematical tools. Topics: Data structures: priority queues, binary search trees, balanced search trees. Btrees. Algorithm design and analysis techniques illustrated in searching and sorting: heapsort, quicksort, sorting in linear time, medians and order statistics. Design and analysis techniques: dynamic programming, greedy algorithms. Graph algorithms: elementary graph algorithms (breadth-first search, depth-first search, topological sort, connected components, strongly connected components), minimum spanning tree, shortest path. String algorithms. Geometric algorithms. Linear programming. Brief introduction to NP completeness.

    Prerequisite(s): Graduate status, CS-GY 5403  and CS-GY 6003 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6043 Design and Analysis of Algorithms II

    3 Credits
    This course covers techniques in advanced design and analysis. Topics: Amortized analysis of algorithms. Advanced data structures: binomial heaps, Fibonacci heaps, data structures for disjoint sets, analysis of union by rank with path compression. Graph algorithms: elementary graph algorithms, maximum flow, matching algorithms. Randomized algorithms. Theory of NPcompleteness and approach to finding (approximate) solutions to NPcomplete problems. Additional selected topics.

    Prerequisite(s): Graduate status and CS-GY 6033 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6063 Software Engineering

    3 Credits
    The course emphasizes the full software-engineering approach with alternative approaches. Technical emphasis is on requirements, design, development, and modeling. Management issues include software cost estimate and project management. Understanding the processes applicable to the software development/ integration cycle and maintenance along with technology changes on quality and development activities is highlighted.

    Prerequisite(s): Graduate status and CS-GY 5403 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6073 Software Engineering II

    3 Credits
    The course covers modern, advanced software engineering approaches with theory and practice orientations. Important design and management issues are analyzed and evaluated. Technical and management tradeoffs in distributed software systems are emphasized. An extensive number of real world case studies are assessed. A class project is required.

    Prerequisite(s): Graduate status and CS-GY 6063 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6083 Principles of Database Systems

    3 Credits
    This course broadly introduces database systems, including the relational data model, query languages, database design, index and file structures, query processing and optimization, concurrency and recovery, transaction management and database design. Students acquire hands-on experience in working with database systems and in building web-accessible database applications.

    Prerequisite(s): Graduate status, CS-GY 6003  or equivalent, familiarity with basic data structures and operating system principles.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6093 Advanced Database Systems

    3 Credits
    Students in this advanced course on database systems and data management are assumed to have a solid background in databases. The course typically covers a selection from the following topics: (1) advanced relational query processing and optimization, (2) OLAP and data warehousing, (3) data mining, (4) stream databases and other emerging database architectures and applications, (5) advanced transaction processing, (6) databases and the Web: text, search and semistructured data, or (7) geographic information systems. Topics are taught based on a reading list of selected research papers. Students work on a course project and may have to present in class.

    Prerequisite(s): Graduate status and CS-GY 6083  or equivalent, including experience with a relational database system.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6133 Computer Architecture I

    3 Credits
    Computer architecture design: Instruction set design techniques, performance and cost; Extensions to traditional instruction sets. An instruction set studied in detail. Processor implementations: Unpipelined execution and its improvement by means of pipelining. Advanced pipelining, including branch prediction, out-of-order execution and superscalar execution, is introduced. Alternatives to traditional computing, such as VLIW and vector computation are described. Improving computer capacity, by improving the memory hierarchy is studied, including advanced cache memory, main memory and virtual memory implementations. An introduction to high-performance computing, including multi-core processors.

    Prerequisite(s): CS-UY 2214 
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6143 Computer Architecture II

    3 Credits
    An overview of state-of-the-art single-core systems, including advanced pipelining, super-scalar, vector processors, VLIW and vector processing. High-performance computing systems: Computer systems that improve performance and capacity by exploiting parallelism. Selected topics in parallel computing are introduced, such as interconnection networks, parallel algorithms, GPUs, PRAMs, MIMD and SIMD machines. Alternatives to traditional computing are discussed, including GPUs, TPUs, systolic arrays, neural networks and experimental systems.

    Prerequisite(s): CS-GY 6133 
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6183 Fault-Tolerant Computers

    3 Credits
    This course introduces a variety of hardware and software techniques to design and model fault-tolerant computers. Topics include coding techniques (Hamming, SECSED, SECDED, etc.); majority voting schemes (TMR); software redundancy (Nversion programming); software-recovery schemes; network reliability design and estimation. The course introduces probabilistic methods for reliability modeling. Other topics: Examples from space fault tolerant systems, networks, commercial nonstop systems (TANDEM and STRATUS). RAID memory systems. Fault-tolerant modeling tools such as HARP, SHURE and SHARPE.

    Prerequisite(s): Graduate status and CS-GY 6133 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6233 Introduction to Operating Systems

    3 Credits
    This course introduces basic issues in operating systems. Topics: Threads, processes, concurrency, memory management, I/O Control and case studies.

    Prerequisite(s): Graduate status.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6243 Operating Systems II

    3 Credits
    This course surveys recent important commercial and research trends in operating systems. Topics may include virtualization, network server design and characterization, scheduling and resource optimization, file systems, memory management, advanced debugging techniques, data-center design and energy utilization.

    Prerequisite(s): CS-GY 6233 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6253 Distributed Operating Systems

    3 Credits
    This course introduces distributed-networked computer systems. Topics: Distributed control and consensus. Notions of time in distributed systems. Client/Server communications protocols. Middleware. Distributed File Systems and Services. Fault tolerance, replication and transparency. Peer-to-peer systems. Case studies of modern commercial systems and research efforts.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6273 Performance Evaluation of Computer Systems

    3 Credits
    This course focuses on modeling and performance analysis of computer systems. It concentrates on testing and evaluation of three-tiered distributed client/server and WEB-based systems and generally on distributed networking systems. The course presents and evaluates various systems architectures from a macro and micro viewpoint.

    Prerequisite(s): Graduate status and EL-GY 5363  or MA-UY 2212 /MA-UY 2222  and instructor’s permission.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6313 Information Visualization

    3 Credits
    An introductory course on Information Visualization based on a modern and cohesive view of the area. Topics include visualization design, data principles, visual encoding principles, interaction principles, single/multiple view methods, item/attribute, attribute reduction methods, toolkits, and evaluation. Overviews and examples from state-of-the-art research will be provided. The course is designed as a first course in information visualization for students both intending to specialize in visualization as well as students who are interested in understanding and applying visualization principles and existing techniques.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6323 Large-Scale Visual Analytics

    3 Credits
    Visual analytics combines interactive visual interfaces and information visualization techniques with automatic algorithms to support analytical reasoning through human-computer interaction. People use visual analytics tools and techniques to synthesize information and derive insight from massive, dynamic, ambiguous, and often conflicting data, and to communicate their findings effectively for decision-making. This course will serve as an introduction to the science and technology of visual analytics and will include lectures on both theoretical foundations and application methodologies. The goals of this course are for students to develop a comprehensive understanding of this emerging, multidisciplinary field, and apply that understanding toward a focused research problem in a real-world application or a domain of personal interest.

    Prerequisite(s): CS 6313
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6333 Massive Data Analysis

    3 Credits
    Big Data requires the storage, organization, and processing of data at a scale and efficiency that go well beyond the capabilities of conventional information technologies. In this course, we will review the state of the art in Big Data analytics. In addition to covering the specifics of different platforms, models, and languages, we will also look at real applications that perform massive data analysis and how they can be implemented on Big Data platforms. Topics we will discuss include: Map reduce/Hadoop, NoSQL stores, languages such as Pig Latin and JAQL, large-scale data mining and visualization. The course will primarily consist of technical readings and discussions. It will also include programming projects where the participants will prototype data-intensive applications using existing Big Data tools and platforms. |

    Prerequisite(s): CS 6083
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6373 Programming Languages

    3 Credits
    This course covers the structures, notations and semantics of programming languages. Topics: Issues of scope, type structure and parameter passing. Control structures, including support for exception handling and concurrency. Abstract data types and object oriented languages. Programming in the large. Implementation issues. Functional, logic programming languages. Examples from a variety of languages.

    Prerequisite(s): Graduate status and CS-GY 5403 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6413 Compiler Design and Construction

    3 Credits
    This course covers compiler organization. Topics: Lexical analysis, syntax analysis, abstract syntax trees, symbol table organization, code generation. Introduction to code optimization techniques.

    Prerequisite(s): CS-GY 5403 , CS-GY 6133  and CS-GY 6033 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6513 Big Data

    3 Credits
    Big Data requires the storage, organization, and processing of data at a scale and efficiency that go well beyond the capabilities of conventional information technologies. In this course, we will study the state of art in big data management: we will learn about algorithms, techniques and tools needed to support big data processing. In addition, we will examine real applications that require massive data analysis and how they can be implemented on Big Data platforms. The course will consist of lectures based both on textbook material and scientific papers. It will include programming assignments that will provide students with hands-on experience on building data-intensive applications using existing Big Data platforms, including Amazon AWS. Besides lectures given by the instructor, we will also have guest lectures by experts in some of the topics we will cover.

    Prerequisite(s): Students should have experience in programming: Java, C, C++, Python, or similar languages, equivalent to two introductory courses in programming, such as “Introduction to Programming” and “Data Structures and Algorithms.
  
  • CS-GY 6533 Interactive Computer Graphics

    3 Credits
    This course introduces the fundamentals of computer graphics with hands-on graphics programming experiences. Topics include graphics software and hardware, 2D line segment-scan conversion, 2D and 3D transformations, viewing, clipping, polygon-scan conversion, hidden surface removal, illumination and shading, compositing, texture mapping, ray tracing, radiosity and scientific visualization.

    Prerequisite(s): Graduate status and CS-GY 5403  or equivalents and knowledge of C or C++ programming.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6543 Human Computer Interaction

    3 Credits
    Designing a successful interactive experience or software system takes more than technical savvy and vision–it also requires a deep understanding of how to serve people’s needs and desires through the experience of the system, and knowledge about how to weave this understanding into the development process. This course introduces key topics and methods for creating and evaluating human-computer interfaces/digital user experiences. Students apply these practices to a system of their choosing (I encourage application to prototype systems that students are currently working on in other contexts, at any stage of development). The course builds toward a final write-up and presentation in which students detail how they tackled HCI/user experience design and evaluation of their system, and results from their investigations. Some experience creating/participating in the production of interactive experiences/software is recommended.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6553 Game Design

    3 Credits
    This course is about experimental game design. Design in this context pertains to every aspect of the game, and these can be broadly characterized as the game system, control, visuals, audio, and resulting theme. We will explore these aspects through the creation of a few very focused game prototypes using a variety of contemporary game engines and frameworks, high-level programming languages, and physical materials. This will allow us to obtain a better understanding of what makes games appealing, and how game mechanics, systems, and a variety of player experiences can be designed and iteratively improved by means of rapid prototyping and play-testing. The course combines the technology, design, and philosophy in support of game creation, as well as the real-world implementation and design challenges faced by practicing game designers. Students will learn design guidelines and principles by which games can be conceived, prototyped, and fully developed within a one-semester course, and will create a game from start to finish. The course is a lot of (team)work, but it’s also a lot of fun. Programming skills are helpful, but not a hard requirement. Artistic skills, or a willingness to learn them are a plus.

    Prerequisite(s): CS-GY 6533  or OART-UT 1600 and OART-UT 1605 or instructor permission.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6573 Penetration Testing and Vulnerability Analysis

    3 Credits
    This advanced course in computer and network security focuses on penetration testing and vulnerability analysis. It introduces methodologies, techniques and tools to analyze and identify vulnerabilities in standalone and networked applications.

    Prerequisite(s): CS-GY 6823 .
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6613 Artificial Intelligence I

    3 Credits
    Artificial Intelligence (AI) is an important topic in computer science and offers many diversified applications. It addresses one of the ultimate puzzles humans are trying to solve: How is it possible for a slow, tiny brain, whether biological or electronic, to perceive, understand, predict and manipulate a world far larger and more complicated than itself? And how do people create a machine (or computer) with those properties? to that end, AI researchers try to understand how seeing, learning, remembering and reasoning can, or should, be done. This course introduces students to the many AI concepts and techniques.

    Prerequisite(s): Graduate status and CS-GY 5403 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6643 Computer Vision

    3 Credits
    An important goal of artificial intelligence (AI) is to equip computers with the capability of interpreting visual inputs. Computer vision is an area in AI that deals with the construction of explicit, meaningful descriptions of physical objects from images. It includes as parts many techniques from image processing, pattern recognition, geometric modeling, and cognitive processing. This course introduces students to the fundamental concepts and techniques in computer vision.

    Prerequisite(s): CS-GY 5403  or equivalent, proficiency in programming and familiarity with matrix arithmetic.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6673 Neural Network Computing

    3 Credits
    This course introduces neural network models and their applications. Topics: Discussion of organization and learning in neural network models including perceptrons, adalines, backpropagation networks, recurrent networks, adaptive resonance theory and the neocognitron. Implementations in general and special purpose hardware, both analog and digital. Application in various areas with comparisons to nonneural approaches. Decision systems, nonlinear control, speech processing and vision.

    Prerequisite(s): Graduate status and CS-GY 5403 ; some familiarity with matrix notation and partial derivatives is recommended.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6703 Computational Geometry

    3 Credits
    This course introduces data structures and algorithms for geometric data. Topics include intersection, polygon triangulation, linear programming, orthogonal range searching, point location, Voronoi diagrams, Delaunay triangulations, arrangements and duality, geometric data structures, convex hulls, binary space partitions, robot motion planning, quadtrees, visibility graphs, simplex range searching.

    Prerequisite(s): Graduate status.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6753 Theory of Computation

    3 Credits
    This course introduces the theory of computation. Topics: Formal languages and automata theory. Deterministic and non-deterministic finite automata, regular expressions, regular languages, context-free languages. Pumping theorems for regular and context-free languages. Turing machines, recognizable and decidable languages. Limits of computability: the Halting Problem, undecidable and unrecognizable languages, reductions to prove undecidability. Time complexity, P and NP, Cook-Levin theorem, NP completeness.

    Prerequisite(s): Graduate status and CS-GY 6003  or instructor’s permission.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6803 Information Systems Security Engineering and Management

    3 Credits
    This course presents a system and management view of information security: what it is, what drives the requirements for information security, how to integrate it into the systems-design process and life-cycle security management of information systems. A second goal is to cover basic federal policies on government information security and methodologies. Topics include information-security risk management, security policies, security in the systems-engineering process, laws related to information security and management of operational systems.

    Prerequisite(s): Graduate status and CS-UY 3923  or equivalent.
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6813 Information, Security and Privacy

    3 Credits
    This course introduces Information Systems Security and covers cryptography, capability and access control mechanisms, authentication models, security models, operating systems security, malicious code, securitypolicy formation and enforcement, vulnerability analysis, evaluating secure systems.

    Prerequisite(s): Graduate status.
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6823 Network Security

    3 Credits
    This course begins by covering attacks and threats in computer networks, including network mapping, port scanning, sniffing, DoS, DDoS, reflection attacks, attacks on DNS and leveraging P2P deployments for attacks. The course continues with cryptography topics most relevant to secure networking protocols. Topics covered are block ciphers, stream ciphers, public key cryptography, RSA, Diffie Hellman, certification authorities, digital signatures and message integrity. After surveying basic cryptographic techniques, the course examines several secure networking protocols, including PGP, SSL, IPsec and wireless security protocols. The course examines operational security, including firewalls and intrusion-detection systems. Students read recent research papers on network security and participate in an important lab component that includes packet sniffing, network mapping, firewalls, SSL and IPsec.

    Prerequisite(s): Graduate status and EL-GY 5363  or CS-GY 6843 .
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6843 Computer Networking

    3 Credits
    This course takes a top-down approach to computer networking. After an overview of computer networks and the Internet, the course covers the application layer, transport layer, network layer and link layers. Topics at the application layer include client-server architectures, P2P architectures, DNS and HTTP and Web applications. Topics at the transport layer include multiplexing, connectionless transport and UDP, principles or reliable data transfer, connection-oriented transport and TCP and TCP congestion control. Topics at the network layer include forwarding, router architecture, the IP protocol and routing protocols including OSPF and BGP. Topics at the link layer include multiple access protocols, ALOHA, CSMA/CD, Ethernet, CSMA/CA, wireless 802.11 networks and link layer switches. The course includes simple quantitative delay and throughput modeling, socket programming and network application development and Ethereal labs.

    Prerequisite(s): Graduate status and CS-UY 2134 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6873 Project in Telecommunication Networks

    3 Credits
    In this course, students design, develop and test communication software. Students work in small groups under faculty direction. Students have access to network resources for their work.

    Prerequisite(s): Graduate status and CS-GY 6843  and instructor’s permission.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6903 Applied Cryptography

    3 Credits
    This course examines Modern Cryptography from a both theoretical and applied perspective, with emphasis on “provable security” and “application case studies”. The course looks particularly at cryptographic primitives that are building blocks of various cryptographic applications. The course studies notions of security for a given cryptographic primitive, its various constructions and respective security analysis based on the security notion. The cryptographic primitives covered include pseudorandom functions, symmetric encryption (block ciphers), hash functions and random oracles, message authentication codes, asymmetric encryption, digital signatures and authenticated key exchange. The course covers how to build provably secure cryptographic protocols (e.g., secure message transmission, identification schemes, secure function evaluation, etc.), and various number-theoretic assumptions upon which cryptography is based. Also covered: implementation issues (e.g., key lengths, key management, standards, etc.) and, as application case studies, a number of real-life scenarios currently using solutions from modern cryptography.

    Prerequisite(s): Graduate status.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6913 Web Search Engines

    3 Credits
    This course covers the basic technology underlying Web search engines and related tools. The main focus is on large-scale Web search engines (such as Google, Yahoo and MSN Search) and their underlying architectures and techniques. Students learn how search engines work and get hands-on experience in how to build search engines from the ground up. Topics are based on a reading list of recent research papers. Students must work on a course project and may have to present in class.

    Prerequisite(s): Good programming skills and graduate status.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6923 Machine Learning

    3 Credits
    This course is an introduction to the field of machine learning, covering fundamental techniques for classification, regression, dimensionality reduction, clustering, and model selection. A broad range of algorithms will be covered, such as linear and logistic regression, neural networks, deep learning, support vector machines, tree-based methods, expectation maximization, and principal components analysis. The course will include hands-on exercises with real data from different application areas (e.g. text, audio, images). Students will learn to train and validate machine learning models and analyze their performance.

    Prerequisite(s): Graduate status with undergraduate level probability theory.
    Also listed under: ECE-GY 6143 
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 6943 Artificial Intelligence for Games

    3 Credits
    This course covers artificial intelligence techniques used with games. The course is an advanced course that presupposes a good understanding of standard AI techniques, and much of the course material will consists of recent research papers. While the course will cover recent methods for playing games, in particular for general game playing, it will also go beyond that application domain to cover methods for generating games and game content and for modeling players. Many of these methods are based on evolutionary computation, others on stochastic tree search, cellular automata or grammar expansion. Approximately the first half of the course will consist of lectures, and the second half of the group projects.

  
  • CS-GY 6963 Digital Forensics

    3 Credits
    This course introduces information-technology professionals to the application of forensic science principles and practices for collecting, preserving, examining, analyzing and presenting digital evidence. The course includes selected topics from the legal, forensic and information-technology domains and uses lecture, laboratory and written projects to illustrate these topics.

    Prerequisite(s): Graduate status.
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 9013 Selected Topics in Computer Science

    3 Credits
    This course covers topics of current interest in computer science. Recent offerings include software specification and validation, parallel algorithms and architectures, client-server systems and advanced object-oriented design (Java). Advanced topics: Databases, performance analysis, computer simulation, Java programming, Unix programming, human and computer interaction, cryptography with financial applications and biometric identification.

    Prerequisite(s): Graduate Standing, and specified when course is offered.
  
  • CS-GY 9023 Web Technologies and Integrated Environments

    3 Credits
    Application Architecture in a three tier (web client, application server and data base server) environment is explained and analyzed. The impact of relevant open source tools (MySQL, CSS, AJAX etc. on the final application architecture is examined. Different integrated environments are contrasted. The content of this course is expected to change each semester as technology emerges.

    Prerequisite(s): Graduate status.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 9033 Web Services and SOA

    3 Credits
    The service oriented architecture (SOA) is the latest application integration paradigm in the industry, developed to address the challenges of software development which anticipates the internal friction of interacting with incompatible architectures and programming models. SOA is a model of distributed software components which encapsulates business function in a reusable, composable way. SOA components, or services, are accessible using standardized protocols and are composed (or choreographed) into new applications using standard composition languages. The term “Web services” stands for a realization of the SOA paradigm as a set of XML based standards for component communication, description and composition. Middleware is soft ware that allows different applications to interact on typically distributed computer systems.

    Prerequisite(s): Graduate status.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 9093 Biometrics

    3 Credits
    The course concentrates on the unique advantages that biometrics brings to computer security. The course also addresses such challenging issues as security strength, recognition rates and privacy, as well as alternatives of passwords and smart cards. Students gain knowledge in the building blocks of this field: image and signal processing, pattern recognition, security and privacy and secure system design. By the end of the course students are able to evaluate and design security systems that include biometrics.

    Prerequisite(s): Graduate status.
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 9163 Application Security

    3 Credits
    This course addresses the design and implementation of secure applications. Concentration is on writing software programs that make it difficult for intruders to exploit security holes. The course emphasizes writing secure distributed programs in Java. The security ramifications of class, field and method visibility are emphasized.

    Prerequisite(s): Graduate status.
    Note: Online version available.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-GY 9223 Selected Topics in Computer Science

    3 Credits
    This course covers topics of current interest in computer science. Recent offerings include software specification and validation, parallel algorithms and architectures, client-server systems and advanced object-oriented design (Java). Advanced topics: Databases, performance analysis, computer simulation, Java programming, Unix programming, human and computer interaction, cryptography with financial applications and biometric identification.

    Prerequisite(s): Graduate status; others specified when course is offered.
  
  • CS-GY 9413 Readings in Computer Science I

    3 Credits
    This course is primarily for advanced graduate students who wish to study in a specialized area under faculty supervision. Permission of the graduate director is required, as are regular meetings with the adviser. An examination or term report is required.

    Prerequisite(s): Graduate status.
    Note: Students may register and receive credit for these courses more than once.

  
  • CS-GY 9423 Readings in Computer Science II

    3 Credits
    This course is primarily for advanced graduate students who wish to study in a specialized area under faculty supervision. Permission of the graduate director is required, as are regular meetings with the adviser. An examination or term report is required.

    Prerequisite(s): Graduate status.
    Note: Students may register and receive credit for these courses more than once.

  
  • CS-GY 9963 Advanced Project in Computer Science

    3 Credits
    This course permits the student to perform research in computer science with a narrower scope than a master’s thesis. Acceptance of a student by a faculty adviser is required before registration. A project report and an oral examination on it are required.

    Prerequisite(s): Graduate status.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 394X Special Topics in Computer Science

    Variable Credits
    This variable-credit special topics course is for juniors and seniors.

    Prerequisite(s): Departmental permission.
  
  • CS-UY 410X Undergraduate Guided Studies in Computer Science

    1-4 Credits
    Students work on an individual basis under the supervision of a full-time faculty member in the department. With permission of the department, such students may substitute two semesters of this course for Software Engineering and Design Project requirements.

    Prerequisite(s): Permission of the instructor and the department.
  
  • CS-UY 420X Undergraduate Research in Computer Science

    2-4 Credits
    The student conducts research under the supervision of a faculty member, possibly leading to results publishable in the computer science literature. A substantial commitment to this work is expected. The research project may be one or two semesters, to be determined in consultation with the faculty supervisor. Students must submit written and/or oral reports at the conclusion of the project. Students who are interested in taking this course should speak to faculty members well in advance about research opportunities and background needed.

    Prerequisite(s): permission of instructor
  
  • CS-UY 1012 Introduction to Computer Engineering

    2 Credits
    This course helps students to understand computer engineering as a balance among hardware, software, applications and theory, the notion of abstraction, computer layers and how they related to various aspects of computer engineering, implementation of abstract and physical computer layers: Number systems, digital logic, basic processor structure, instruction set architecture, machine learning, assembly languages and high-level programming in C. Other computer concepts, including compilers, operating systems, and algorithms presented, along with the simulator concept and its usage for understanding computer design, testing and analysis. Experts present special topics in the area. Also discussed are invention, innovation, entrepreneurship and ethics in these topics and in Computer Engineering.

    Also listed under: ECE-UY 1012 .
    Weekly Lecture Hours: 2 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 1113 Problem Solving and Programming I

    3 Credits
    This course introduces problem solving and computer programming and is for undergraduate engineering students who do not have prior experience in programming in any language. The course covers fundamentals of computer programming and its underlying principles using the Python programming language. Concepts and methods introduced in the course are illustrated by examples from engineering and other disciplines.

    Corequisite(s): EX-UY 1  
     
    Note: Anti-requisite: CS-UY 1114

    Weekly Lecture Hours: 3
  
  • CS-UY 1114 Introduction to Programming and Problem Solving

    4 Credits
    This course introduces problem solving and computer programming and is for undergraduate Computer Science and Computer Engineering majors who have limited prior experience in programming in any language. The course covers fundamentals of computer programming and its underlying principles using the Python programming language. Concepts and methods introduced in the course are illustrated by examples from various disciplines.

    Corequisite(s):  
    Note: Weekly laboratory required.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 3 | Weekly Recitation Hours: 0
  
  • CS-UY 1122 Introduction to Computer Science

    2 Credits
    This is a breadth-first course that introduces computer-science majors to several subdisciplines in the computer-science field. The course is built around the theme that computer science is the study of algorithms and includes much more than programming. The course introduces hardware, virtual machines, software, applications and social issues in computing.

    Prerequisite(s): CS-UY 1114  and only first-year Computer Science students are permitted to enroll in this introductory level course
    Weekly Lecture Hours: 2 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 1123 Problem Solving and Programming II

    3 Credits
    This course continues to introduce problem solving and computer programming and is for undergraduate engineering students who have some prior experience in programming in any language. The course reviews fundamentals of computer programming as embodied in the Python programming language (variables, expressions, conditional statements, iteration, functions, and basic data types, including strings and lists), introduces object-oriented programming, the dictionary data structure and exception handling. Concepts and methods introduced in the course are illustrated by examples from various disciplines.

    Prerequisite(s): CS-UY 1113   Corequisite(s): EX-UY 1  
    Weekly Lecture Hours: 3
  
  • CS-UY 1133 Engineering Problem Solving and Programming

    3 Credits
    This introductory course in engineering problem solving and computer programming is for all undergraduate engineering students without prior programming experience in any language. The course covers the fundamentals of computer programming and its underlying principles using the MATLAB programming language. Concepts and methods are illustrated by examples from various engineering disciplines. Useful numerical techniques and their applications to real world problems in science and engineering are also discussed. Weekly laboratory required.

    Corequisite(s):  
    Weekly Lecture Hours: 2 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 3
  
  • CS-UY 1134 Data Structures and Algorithms

    4 Credits


    This course covers abstract data types and the implementation and use of standard data structures along with fundamental algorithms and the basics of algorithm analysis. Not open to students who have taken CS-UY 2134 .

    Prerequisite(s): CS-UY 1114  OR CS-UY 1123  with a required grade of C- or betterPrerequisite for Abu Dhabi Students: CS-UH 1001 or ENGR-UH 1000 | Prerequisite for Shanghai Students: CSCI-SHU 101 

     

      Corequisite(s): EX-UY 1  
    Weekly Lecture Hours: 4

  
  • CS-UY 1213 Introduction to Programming with Java

    3 Credits
    This introductory course in computer programming and problem solving is for students in the Digital Media program. The course is taught in the Java programming language of Java’s interactive multi- capabilities. Students learn the main components and features of Java, understand the elements of Object Oriented Programming and how they relate to Java, and write applications and applets that can be incorporated into HTML documents for the World Wide Web. Students also learn programming methodology, which involves thinking about the best way to plan the design using object-oriented design and appropriate features of Java. Also covered is methodical and efficient development of the implementation using step-wise refinement, incremental testing and debugging.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 2053 Assembly Language

    3 Credits
    This course covers internal representation of numeric and character data. Topics: Machine organization and machine language programming. Assembly language, assemblers. Assembly language programming: branching, arrays, lists, arithmetic and bit manipulation, macros, stacks, subroutines, parameter passing, recursion. Linking and loading, position independent and reentrant code. Traps and interrupts.

    Prerequisite(s): CS-UY 2134  (C- or better).
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 2124 Object Oriented Programming

    4 Credits


    This intermediate-level programming course teaches object-oriented programming in C++. Topics: Pointers, dynamic memory allocation and recursion. Classes and objects including constructors, destructors, methods (member functions) and data members. Access and the interface to relationships of classes including composition, association and inheritance. Polymorphism through function overloading operators. Inheritance and templates. Use of the standard template library containers and algorithms.

     


     

     

     

    Prerequisite(s): EX-UY 1 CS-UY 1134  with C- or better, and MA-UY 2314 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 3

  
  • CS-UY 2134 Data Structures and Algorithms

    4 Credits
    This course covers abstract data types and the implementation and use of standard data structures. Topics: Fundamental algorithms and the basics of algorithm analysis. A grade of C- or better is required of undergraduate computer science and computer-engineering majors.

    Prerequisite(s): Data Structures and Algorithms (CS-UY 2134 or CS-UY 1134) and Object Oriented Programming (CS-UY 2124  or CS-UY 1124 ). A grade of C- or better is required in both courses. 
    Weekly Lecture Hours: 4 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 2163 Introduction to Programming in C

    3 Credits
    This course covers programming in C. Topics: The syntax, variables, expressions, working environment, printf and scanf. Function calls and returns. Branching and looping. Relational operators. Bit-wise operators. Boolean expressions. Recursion. Pointers. Data structures: Arrays, structs, lists, stacks, trees, queues. String processing. Low level memory management, dynamic memory allocation. The preprocessor. File processing : fprintf, fscanf, fseek, sscanf. Concurrency, fork, pipe, signal.

    Prerequisite(s): (CS-UY 1114  or CS-UY 1133 ) and ECE majors or department permission.
    Note: For CS majors and CS minors, this course does not count as a CS elective.

    Weekly Lecture Hours: 3
  
  • CS-UY 2164 Introduction to Programming in C

    4 Credits
    This course covers programming in C. Topics: The syntax, variables, expressions, working environment, printf and scanf. Function calls and returns. Branching and looping. Relational operators. Bit-wise operators. Boolean expressions. Recursion. Pointers. Data structures: Arrays, structs, lists, stacks, trees, queues. String processing. Low level memory management, dynamic memory allocation. The preprocessor. File processing : fprintf, fscanf, fseek, sscanf. Concurrency, fork, pipe, signal. Dynamic multidimensional arrays, OS APIs. Linux/UNIX integration. A laboratory meets weekly.

    Prerequisite(s): EE major status and either CS-UY 1133  or CS-UY 1114 . Corequisite(s): CS 2164 Lab.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 1.5 | Weekly Recitation Hours: 0
  
  • CS-UY 2204 Digital Logic and State Machine Design

    4 Credits


    This course covers combinational and sequential digital circuits. Topics: Introduction to digital systems. Number systems and binary arithmetic. Switching algebra and logic design. Error detection and correction. Combinational integrated circuits, including adders. Timing hazards. Sequential circuits, flip-flops, state diagrams and synchronous machine synthesis. Programmable Logic Devices, PLA, PAL and FPGA. Finite-state machine design. Memory elements. Weekly laboratory experiments introduce digital system design on FPGAs. A grade of C- or better is required of undergraduate computer-engineering majors.

    Prerequisite(s): Prerequisite for Brooklyn Students: CS-UY 1114  (C- or better) or CS-UY 1133  (C- or better) | Prerequisite for Abu Dhabi Students: CS-UH 1001 (C- or better) or ENGR-UH 1000 (C- or better) | Prerequisite for Shanghai Students: CSCI-SHU 101 (C- or better)

     
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 3 | Weekly Recitation Hours: 0

  
  • CS-UY 2214 Computer Architecture and Organization

    4 Credits
    This course covers is a top/down approach to computer design. Topics: Computer architecture, introduction to assembly language programming and machine language set design. Computer organization, logical modules; CPU, memory and I/O units. Instruction cycles, the datapath and control unit. Hardwiring and microprogramming. The memory subsystem and timing. I/O interface, interrupts, programmed I/O and DMA. Introduction to pipelining and memory hierarchies. Fundamentals of computer networks. Weekly recitations support lecture topics and study homework assignments.

    Prerequisite(s): CS-UY 2204  (C- or better) (for Brooklyn Computer Engineering majors) or CS-UY 2134  (C- or better) and MA-UY 2314  (for other Brooklyn Engineering majors) or ENGR-AD 201 (for Abu Dhabi Students) or CSCI-SHU 2314 and CSCI-SHU 210 (C- or better) or CENG-SHU 201 (for Shanghai Students)
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 2
  
  • CS-UY 2413 Design and Analysis of Algorithms

    3 Credits
    This course covers fundamental principles of the design and analysis of algorithms. Topics include asymptotic notation, recurrences, randomized algorithms, sorting and selection, balanced binary search trees, augmented data structures, advanced data structures, algorithms on strings, graph algorithms, geometric algorithms, greedy algorithms, dynamic programming and NP completeness.

    Prerequisite(s): Prerequisites for Brooklyn Engineering Students: (CS-UY 2134  or CS-UY 1134  ) and (CS-UY 2124  or CS-UY 1124 ) (C- or better) and MA-UY 2314  | Prerequisites for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) and CS-UH 1002 | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better) and CSCI-SHU 2314
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 3083 Introduction to Databases

    3 Credits


    This course introduces database systems and their approach as a mechanism to model the real world. The course covers data models (relational, object-oriented), physical database design, query languages, query processing and optimization, as well as transaction management techniques. Implementation issues, object oriented and distributed databases also are introduced.

    Prerequisite(s): Prerequisites for Brooklyn Students: (CS-UY 2134  or CS-UY 1134 ) and (CS-UY 2124  or CS-UY 1124  ) (C- or better) and MA-UY 2314  | Prerequisites for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) and CS-UH 1002 | Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and CSCI-SHU 2314

     

    .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0

  
  • CS-UY 3113 Game Programming

    3 Credits
    A programming intensive introduction to the creation of computer games. Using mostly two-dimensional sprite-based programming, we examine and experiment with animation, physics, artificial intelligence and audio. In addition, the course explores the mathematics of transformations (both 2D and 3D) and the ways they may be represented.

    Prerequisite(s): (CS-UY 2134  or CS-UY 1134 ) AND (CS-UY 2124  or CS-UY 1124) (C- or better).
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 3224 Operating Systems

    4 Credits
    This course studies the fundamental concepts and principles of operating systems. Batch, spooling and multiprogramming systems are introduced. The parts of an operating system are described in terms of their functions, structure and implementation. Basic policies for allocating resources are discussed.

    Prerequisite(s): Prerequisites for Brooklyn Students: CS-UY 2214  AND (CS-UY 2134  or CS-UY 1134 ) AND (CS-UY 2124  or CS-UY 1124 ) (C- or better). | Prerequisite for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) AND (CS-UH 2010 or ENGR-UH 3511) | Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) AND CENG-SHU 202
    Weekly Lecture Hours: 4 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 3233 Game Development Studio I

    3 Credits
    This class introduces the principles of 2D and 3D computer game design. Students learn about the range of game types and understand their conceptual building blocks. Students complete a structured sequence of assignments towards the design for a new game.

    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 3254 Introduction to Parallel and Distributed Systems

    4 Credits
    This course offers a solid grounding in the basic issues and techniques of parallel and distributed computing. The material covers the spectrum from theoretical models of parallel and distributed systems to actual programming assignments.

    Prerequisite(s): CS-UY 2134  and CS-UY 3224 .
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 3 | Weekly Recitation Hours: 0
  
  • CS-UY 3314 Design and Implementation of Programming Languages

    4 Credits
    This course covers issues underlying the design of high-level programming languages, along with elements of the compiler technology used to translate those languages into executable code. Topics covered include formal description of language syntax, parsing, memory management, attributes of variables and their binding times, control and data abstraction mechanisms and object-oriented language features. The focus is on imperative and object-oriented languages, with brief introduction to functional and logic-programming paradigms. Substantial programming projects are required.

    Prerequisite(s): CS-UY 2134  (C- or better)
    Weekly Lecture Hours: 4 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 3393 UNIX System Programming

    3 Credits
    This course covers programming and system administration of UNIX systems. Also covered: Shell programming, special purpose languages, UNIX utilities, UNIX programming tools, systems programming and system administration.

    Prerequisite(s): CS-UY 3224  and junior status.
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 3913 Java and Web Design

    3 Credits
    Programmers familiar with C or C++ learn to develop Java applications and applets. This course teaches the syntax of the Java language, object-oriented programming in Java, creating graphical user interfaces (GIU) using the Java 2 Platform technology event model, Java exceptions, file input/output (I/O) using Java Foundation Class threads and networking.

    Prerequisite(s): CS-UY 2134  (C- or better)
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 3923 Computer Security

    3 Credits


    This course covers cryptographic systems. Topics: Capability and access control mechanisms, authentication models, protection models. Database and operating system security issues, mobile code, security kernels. Malicious code, Trojan horses and computer viruses. Security policy formation and enforcement, legal aspects and ethical aspects.

    Prerequisite(s): Prerequisite for Brooklyn Students: CS-UY 2214  | Prerequisite for CAS Students: CSCI-UA 201 | Prerequisite for Abu Dhabi Students: CS-UH 2010 or ENGR-AD 3511 | Prerequisite for Shanghai Students: CENG-SHU 202 

      Corequisite(s): CS-UY 3224 
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0

  
  • CS-UY 3933 Network Security

    3 Credits
    This course covers reviews networking. Topics: Basic notations of confidentiality, integrity, availability; cryptographic systems, coding and decoding messages. Cryptographic protocols for privacy, integrity, key exchange and access control. TCP/IP security; Firewalls, IPSec; secure ecommerce. Intrusion detection, prevention, response. Advanced topics are included.

    Prerequisite(s): Prerequisite for Brooklyn Students: CS-UY 4793  or ECE-UY 3613  or ECE-GY 5373  | Prerequisite for Abu Dhabi Students: CS-UH 3012 or ENGR-UH 3512 | Prerequisite for Shanghai Students: CSCI-SHU 308
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4513 Software Engineering

    3 Credits
    Focusing on software engineering, the course introduces techniques to specify, design, test and document medium and large software systems. Design techniques include information engineering, object orientation and complexity measures. Also covered are testing methods, such as path testing, exhaustive test models and construction of test data. An introduction to software tools and project management techniques is presented. Student projects involve team software development and tracking.

    Prerequisite(s): Junior status Corequisite(s): CS-UY 3224  
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4523 Design Project

    3 Credits
    Students or several students work with a faculty member and/or graduate students on a current topic in computer science. Each term, a project course with a particular theme is offered by the Department of Computer and Information Science. A faculty member assigns individual or group projects. The project course is highly structured and supervised closely by faculty. Students are expected to use the design and project-management skills they learned in CS-UY 4513 Software Engineering. Alternatively, students may work with a faculty member on an individual project of mutual interest. A written report and oral presentation are required.

    Prerequisite(s): CS-UY 4513 .
    Weekly Lecture Hours: 1 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4533 Interactive Computer Graphics

    3 Credits
    An introduction to the field of computer graphics: displays, image formation, visual perception, images, transformations (viewing and projection), programmable pipelines (vertex and fragment programs), modeling (primitives, polygon meshes, smooth curves and surfaces), animation (keyframing, procedural), rendering and realism (visibility, lighting, shading, shadows, texturing, ray tracing).

    Prerequisite(s): Prerequisites for Brooklyn Engineering Students: (CS-UY 2134  or CS-UY 1134 ) and (CS-UY 2124 or CS-UY 1124) (C- or better) and (MA-UY 2034  or MA-UY 3044  or MA-UY 3054 ) | Prerequisites for CAS Students: CSCI-UA 201 (C- or better) and (MA-UY 2034  or MA-UY 3044  or MA-UY 3054 ) | Prerequisites for Abu Dhabi Students: CS-AD 103 (C- or better) and MATH-AD 121 | Prerequisites for Shanghai Students: CSCI-SHU 210 (C- or better) and (MA-UY 2034  or MA-UY 3044  or MA-UY 3054 ).
    Also listed under: CS-GY 6533  
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4533 Interactive Computer Graphics

    3 Credits
    An introduction to the field of computer graphics: displays, image formation, visual perception, images, transformations (viewing and projection), programmable pipelines (vertex and fragment programs), modeling (primitives, polygon meshes, smooth curves and surfaces), animation (keyframing, procedural), rendering and realism (visibility, lighting, shading, shadows, texturing, ray tracing)

    Prerequisite(s): Prerequisite for Brooklyn Students: (CS-UY 2134  or CS-UY 1134 ) and (CS-UY 2124  or CS-UY 1124 ) (C- or better) and (MA-UY 2034  or MA-UY 3044  or MA-UY 3054 ) | Prerequisites for CAS Students: CSCI-UA 201 (C- or better) and (MATH-UA 140 or MATH-UA 148) | Prerequisite for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) and (MATH-UH 1022 or MATH-UH 1023) | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better) AND (MATH-SHU 140 or MATH-SHU 141)
  
  • CS-UY 4543 Human Computer Interaction

    3 Credits
    Designing a successful interactive experience or software system takes more than technical savvy and vision–it also requires a deep understanding of how to serve people’s needs and desires through the experience of the system, and knowledge about how to weave this understanding into the development process. This course introduces key topics and methods for creating and evaluating human-computer interfaces/digital user experiences. Students apply these practices to a system of their choosing (I encourage application to prototype systems that students are currently working on in other contexts, at any stage of development). The course builds toward a final write-up and presentation in which students detail how they tackled HCI/user experience design and evaluation of their system, and results from their investigations. Some experience creating/participating in the production of interactive experiences/software is recommended.

    Also listed under: CS-GY 6543 
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4553 Game Design

    3 Credits
    This course is about experimental game design. Design in this context pertains to every aspect of the game, and these can be broadly characterized as the game system, control, visuals, audio, and resulting theme. We will explore these aspects through the creation of a few very focused game prototypes using a variety of contemporary game engines and frameworks, high-level programming languages, and physical materials. This will allow us to obtain a better understanding of what makes games appealing, and how game mechanics, systems, and a variety of player experiences can be designed and iteratively improved by means of rapid prototyping and play-testing. The course combines the technology, design, and philosophy in support of game creation, as well as the real-world implementation and design challenges faced by practicing game designers. Students will learn design guidelines and principles by which games can be conceived, prototyped, and fully developed within a one-semester course, and will create a game from start to finish. The course is a lot of (team)work, but it’s also a lot of fun. Programming skills are helpful, but not a hard requirement. Artistic skills, or a willingness to learn them are a plus.

    Prerequisite(s): CS-UY 3113  , CS-UY 4533 , or CS-UY 4533  (C- or better) for CS students; OART-UT 1600 and OART-UT 1605 for Game Center MFA students. Instructor permission required otherwise.
    Also listed under: CS-GY 6553  
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4563 Introduction to Machine Learning

    3 Credits
    This course provides a hands on approach to machine learning and statistical pattern recognition.  The course describes fundamental algorithms for linear regression, classification, model selection, support vector machines, neural networks, dimensionality reduction and clustering.  The course includes computer exercises on real and synthetic data using current software tools.  A number of applications are demonstrated on audio and image processing, text classification, and more. Students should have competency in computer programming. 

    Prerequisite(s): Prerequisite for Brooklyn Students: CS-UY 1134  AND (MA-UY 2034 , MA-UY 2034G, MA-UY 3044  or MA-UY 3054 ) AND (MA-UY 2224 , MA-UY 2222 , MA-UY 2233 , MA-UY 2233 , MA-UY 3012 , MA-UY 3014 , or MA-UY 3514 ) | Prerequisite for Abu Dhabi Students: (ENGR-UH 3510 or CS-UH 1050) (C- or better) AND (MATH-UH 1022 or MATH-UH 1023) AND (MATH-UH 2011Q or ENGR-UH 2010Q) | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better) AND (MATH-SHU 140 or MATH-SHU 141) AND MATH-SHU 235
  
  • CS-UY 4613 Artificial Intelligence

    3 Credits
    Artificial Intelligence (AI) is an important topic in computer science that has many diversified applications. It addresses one of the ultimate puzzles human are trying to solve - How is it possible for a slow, tiny brain, whether biological or electronic, to perceive, understand, predict, and manipulate a world far larger and more complicated than itself? And, how do we go about creating a machine (or computer) with those properties? To this end, researchers in the AI field have been trying to understand how seeing, learning, remembering, and reasoning could, or should be done. This course introduces students to the many concepts and techniques in artificial intelligence.

    Prerequisite(s): Prerequisite for Brooklyn Students: (CS-UY 2134  or CS-UY 1134 ) and (CS-UY 2124  or CS-UY 1124 ) (C- or better) | Prerequisite for Abu Dhabi Students: ENGR-UH 3510 or CS-UH 1050 (C- or better) | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better)
    Also listed under: CS-GY 6613  
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4753 Application Security

    3 Credits
    This course addresses the design and implementation of secure applications. Concentration is on writing software programs that make it difficult for intruders to exploit security holes. The course emphasizes writing secure distributed programs in Java. The security ramifications of class, field and method visibility are emphasized.

    Prerequisite(s): CS-UY 3923  
    Also listed under: CS-GY 9163  
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4763 Information Systems Security Engineering and Management

    3 Credits
    The primary goal of this course is to present a system and management view of information security: what it is, what drives the requirements for information security, how to integrate it into the systems design process, and life cycle security management of information systems. This course will not be about the technologies of information security, but how those technologies are integrated into a system and managed.

    Corequisite(s): CS-UY 3933  
    Also listed under: CS-GY 6803  and CS-UY 3933 
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4773 Penetration Testing and Vulnerability Analysis

    3 Credits
    The course will start off with an in-depth review of the exploitation mitigations introduced in modern operating systems. The instructors will demonstrate their limitations through simple examples and gradually develop the basic exploitation techniques into more complicated methods applicable to real-world exploitation. Unlike most other exploitation courses, we will focus on approaching exploitation as a creative problem-solving process rather than an exercise of applying cookbook techniques to common types of vulnerabilities. Most of the course will focus on the hands-on application of the material through exercises and leading the students through the development of reliable exploits for recently patched vulnerabilities in widely used software.

    Prerequisite(s): CS-UY 3933  (required for all students) and CS-UY 2134  (for Brooklyn Engineering Students) or CSCI-UA 201 (for CAS Students) or CS-AD 103 (for Abu Dhabi Students).
    Also listed under: CS-GY 6573  
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4783 Applied Cryptography

    3 Credits
    This course examines Modern Cryptography from a both theoretical and applied perspective, with emphasis on “provable security” and “application case studies”. The course looks particularly at cryptographic primitives that are building blocks of various cryptographic applications. The course studies notions of security for a given cryptographic primitive, its various constructions and respective security analysis based on the security notion. The cryptographic primitives covered include pseudorandom functions, symmetric encryption (block ciphers), hash functions and random oracles, message authentication codes, asymmetric encryption, digital signatures and authenticated key exchange. The course covers how to build provably secure cryptographic protocols (e.g., secure message transmission, identification schemes, secure function evaluation, etc.), and various number-theoretic assumptions upon which cryptography is based. Also covered: implementation issues (e.g., key lengths, key management, standards, etc.) and, as application case studies, a number of real-life scenarios currently using solutions from modern cryptography.

    Prerequisite(s): MA-UY 2314 , Data Structures and Algorithms (CS-UY 2134  or CS-UY 1134 ) and Object Oriented Programming (CS-UY 2124  or CS-UY 1124 ). A grade of C- or better is required for both CS courses.
    Also listed under: CS-GY 6903  
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0
  
  • CS-UY 4793 Computer Networking

    3 Credits
    This course takes a top-down approach to computer networking. After an overview of computer networks and the Internet, the course covers the application layer, transport layer, network layer and link layers. Topics at the application layer include client-server architectures, P2P architectures, DNS and HTTP and Web applications. Topics at the transport layer include multiplexing, connectionless transport and UDP, principles or reliable data transfer, connection-oriented transport and TCP and TCP congestion control. Topics at the network layer include forwarding, router architecture, the IP protocol and routing protocols including OSPF and BGP. Topics at the link layer include multiple-access protocols, ALOHA, CSMA/CD, Ethernet, CSMA/CA, wireless 802.11 networks and link-layer switches. The course includes simple quantitative delay and throughput modeling, socket programming and network application development and Ethereal labs.

    Prerequisite(s): Prerequisite for Brooklyn Students: (CS-UY 2134  or CS-UY 1134 ) and (CS-UY 2124  or CS-UY 1124 ) (C- or better) | Prerequisite for Abu Dhabi Students: ENGR-UH 3510 or CS-UH 1050 (C- or better) | Prerequisite for Shanghai Students: CSCI-SHU 210 (C- or better)
    Also listed under: CS-GY 6843  
    Weekly Lecture Hours: 3 | Weekly Lab Hours: 0 | Weekly Recitation Hours: 0

Culture, Arts and Media

  
  • CAM-UY 2014W STEM & Theater

    4 Credits
    This course investigates Science, Technology, Engineering, and Mathematics (STEM) as they are portrayed in the theater. Concepts such as scientific creativity and discovery; the relations among science, technology, religion, and the state; the social and ethical interactions between individual scientists and engineers that constitute the practices of science and engineering; and the role of mathematics as the language of science and engineering, will be considered from the points of view of various playwrights. STEM is a springboard to discuss moral or political issues and biographical concerns.

    Prerequisite(s): Completion of EXPOS-UA 1  or EXPOS-UA 4 
    Note: Satisfies a HuSS elective

  
  • CAM-UY 2204 Disability Studies

    4 Credits
    This course dynamically engages students in the world of disability. As a member of a team including a guest consultant with a disability, students will discover that person’s interests, abilities, and desires and portray them with digital storytelling. This active learning approach, carefully guided by the instructor, is enhanced with readings, guest lectures, videos and field trips. Students will learn about disability history, assistive technology and universal design. The end-of-semester is celebrated with a formal presentation of the person-centered projects. The aim is to show the individual, making the “invisible visible.”

    Prerequisite(s): Completion of EXPOS-UA 1  or EXPOS-UA 4 .
    Note: Satisfies HuSS Elective.

  
  • CAM-UY 2384 Jade, the Stone of Heaven

    4 Credits
    Four cultures-civilizations around the world have discovered jade and considered it a sacred substance, divine and useful. In Pre-Columbian Mesoamerica jade symbolized the state and the authority of the gods, and was a useful material more precious than gold. In the Middle Kingdom, or China, jade was the magical “Stone of Heaven,” celebrated from prehistory into modern times. Jade is found in Neolithic graves, and small disks of fine white jade were set in the gold medals of the recent Chinese Olympics. This course summarizes how jade fit into several cultures and civilizations around the world, with emphasis on historical and modern China.

    Prerequisite(s): Completion of first year writing requirements
    Note: Satisfies a humanities and social sciences elective.

  
  • CAM-UY 3004 Special Topics in Culture, Arts and Media

    4 Credits
    This course looks at selected topics and issues in culture, arts and media at the 3000 level.

    Prerequisite(s): Completion of EXPOS-UA 1  or EXPOS-UA 4 .
    Note: Satisfies a humanities and social sciences elective.

 

Page: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11Forward 10 -> 16