Computer Science (CS-UH)

CS-UH 1001  Introduction to Computer Science  (4 Credits)  
Typically offered Fall and Spring  
Computer Science is an innovative and exciting field that focuses on producing efficient solutions for solving problems in any field. This course introduces students to the foundations of computer science. Students learn how to design algorithms to solve problems and how to translate these algorithms into working computer programs using a high-level programming language. The course covers core programming concepts including basic computation, data structures, decision structures, iterative structures, file input/output, and recursion. Students also learn the elements of Object Oriented Programming (OOP), such as objects, classes, inheritance, abstraction, and polymorphism. A final project allows students to combine these concepts to produce a large program of their design.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
Prerequisites: Must be an undeclared Abu Dhabi student.  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  • Bulletin Categories: Interactive Media: Computational Media Elective
  • Bulletin Categories: Sound Music Computing Minor: Required
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Interactive Media Minor: Required
  • Crosslisted with: Interactive Media
  • Crosslisted with: Sound Music Computing
  
CS-UH 1002  Discrete Mathematics  (4 Credits)  
Typically offered Fall and Spring  
Discrete mathematics concerns the study of mathematical structures that are discrete rather than continuous, and provides a powerful language for investigating many areas of computer science. Discrete structures are characterized by distinct elements, which are often represented by integers. Continuous mathematics on the other hand deals with real numbers. Topics in this course include: sets, counting techniques, logic, proof techniques, solving recurrence relations, number theory, probability, statistics, graph theory, and discrete geometry. These mathematical tools are illustrated with applications in computer science.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  • Bulletin Categories: Engineering: Computer Engineering Required
  • Bulletin Categories: Engineering: General Engineering Required Option
  • Bulletin Categories: Required Mathematics Courses
  • Bulletin Categories: Sound Music Computing Minor: CS Engr Elec
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  • Crosslisted with: Sound Music Computing
  
CS-UH 1050  Data Structures  (4 Credits)  
Typically offered Fall and Spring  
Organizing and managing large quantities of data using computer programs is increasingly essential to all scientific and engineering disciplines. This course teaches students the principles of data organization in a computer, and how to work efficiently with large quantities of data. Students learn how to design data structures for representing information in computer memory, emphasizing abstract data types and their implementation, and designing algorithms using these representations. Topics include recursion, asymptotic analysis of algorithms, lists, stacks, queues, trees, hashing, priority queues, dictionaries, graph data structures etc. This course is taught using the C++ programming language. In addition to the 2 theory lectures, one lab session (2:30h) will be held weekly. It will be dedicated to the practice of C++ and implementation of data structure concepts covered in the theory lectures. This will effectively help students in the design and implementation of computerized solutions to real problems using appropriate data structures.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Electrical Engineering Electives
  • Bulletin Categories: Sound Music Computing Minor: Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  • Crosslisted with: Sound Music Computing
  
CS-UH 1052  Algorithms  (4 Credits)  
Typically offered Fall and Spring  
Algorithms lie at the very heart of computer science. An algorithm is an effective procedure, expressed as a finite list of precisely defined instructions, for solving problems that arise in applications in any domain of knowledge. All computer programs are translations of algorithms into some programming language. Often the most difficult parts of designing an algorithm are to make sure that when it is programmed in a computer, it runs as fast as possible and does what it was designed to do. This course covers the fundamentals of algorithms, focusing on designing efficient algorithms, proving their correctness, and analyzing their computational complexity. The algorithms studied are taken from a variety of applications such as sorting, robotics, artificial intelligence, searching, pattern recognition, machine learning, music, bioinformatics, arithmetic, algebra, and geometry.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Electrical Engineering Electives
  • Bulletin Categories: Sound Music Computing Minor: CS Engr Elec
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  • Crosslisted with: Sound Music Computing
  
CS-UH 1052G  Algorithms  (4 Credits)  
Typically offered Fall and Spring  
Algorithms lie at the very heart of computer science. An algorithm is an effective procedure, expressed as a finite list of precisely defined instructions, for solving problems that arise in applications in any domain of knowledge. All computer programs are translations of algorithms into some programming language. Often the most difficult parts of designing an algorithm are to make sure that when it is programmed in a computer, it runs as fast as possible and does what it was designed to do. This course covers the fundamentals of algorithms, focusing on designing efficient algorithms, proving their correctness, and analyzing their computational complexity. The algorithms studied are taken from a variety of applications such as sorting, robotics, artificial intelligence, searching, pattern recognition, machine learning, music, bioinformatics, arithmetic, algebra, and geometry.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Electrical Engineering Electives
  • Bulletin Categories: Sound Music Computing Minor: CS Engr Elec
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  • Crosslisted with: Sound Music Computing
  
CS-UH 2010  Computer Systems Organization  (4 Credits)  
Typically offered Fall and Spring  
The course focuses on understanding lower-level issues in computer design and programming. The course starts with the C++ programming language, moves down to assembly and machine-level code, and concludes with basic operating systems and architectural concepts. Students learn to read assembly code and reverse-engineer programs in binary. Topics in this course include the C++ programming language, data representation, machine-level code, memory organization and management, performance evaluation and optimization, and concurrency.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Electrical Engineering Electives
  • Bulletin Categories: Engineering: General Engineering Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  
CS-UH 2010G  Computer Systems Organization  (4 Credits)  
Typically offered Spring  
The course focuses on understanding lower-level issues in computer design and programming. The course starts with the C++ programming language, moves down to assembly and machine-level code, and concludes with basic operating systems and architectural concepts. Students learn to read assembly code and reverse-engineer programs in binary. Topics in this course include the C++ programming language, data representation, machine-level code, memory organization and management, performance evaluation and optimization, and concurrency.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Electrical Engineering Electives
  • Bulletin Categories: Engineering: General Engineering Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  
CS-UH 2012  Software Engineering  (4 Credits)  
Typically offered Fall and Spring  
This course is an intensive, hands-on study of practical techniques and methods of software engineering. Topics include fundamental concepts, principles and techniques for cost-effective engineering of quality software, software process models, requirements specification, detailed design, hands-on modeling experience to represent structural and behavioral aspects of a software system using a common modeling language, implementation, testing, software project management and software quality assurance.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Computer Engineering Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  
CS-UH 2214  Database Systems  (4 Credits)  
Typically offered Spring  
This course introduces students to the foundations of database systems, focusing on basics such as data models, especially the relational data model, query languages, query optimization and processing, indices and other specialized data structures, as well as transactions and concurrency control. Students build components of a database system and through research readings understand the design complexities of transactional and big data analytical systems.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Electives
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Computer Engineering Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  
CS-UH 2215  Computer Graphics  (4 Credits)  
Typically offered Fall and Spring  
This course provides an overview of the fundamental concepts in computer graphics along with hands-on experience in interactive 3D graphics programming. The course covers mathematics related to computer graphics, fundamentals of geometric modeling, the modern graphics pipeline, shading and lighting models, mapping techniques, and ray tracing. Relevant additional topics in mathematics, algorithms and data structures are also covered. The course is programming intensive. Currently the programming is done using Javascript and WebGL.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Electives
  • Bulletin Categories: Design Minor Electives
  • Bulletin Categories: Interactive Media: Computational Media Elective
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Design
  • Crosslisted with: Interactive Media Minor: Required
  • Crosslisted with: Interactive Media
  
CS-UH 2216  Natural Language Processing  (4 Credits)  
Typically offered Fall and Spring  
The field of natural language processing (NLP), also known as computational linguistics, is interested in the modeling and processing of human (i.e., natural) languages. This course covers foundational NLP concepts and ideas, such as finite state methods, n-gram modeling, hidden Markov models, part-of-speech tagging, context free grammars, syntactic parsing and semantic representations. The course surveys a range of NLP applications such as information retrieval, summarization and machine translation. Concepts taught in class are reinforced in practice by hands-on assignments.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Electives
  
CS-UH 2218  Algorithmic Foundations of Data Science  (4 Credits)  
Typically offered Spring  
Modern computational problems frequently involve processing massive amounts of data which are often not even available in advance but arrive at a high rate. Apart from the volume and speed, the data are often very high dimensional and noisy. The goal of this course is to teach foundational algorithmic techniques that can be used to build scalable and robust solutions for practical problems of this nature. Topics include map-reduce, near-neighbor search, clustering, regression and dimensionality reduction, streaming and sketching, graph analysis, and fundamentals of machine learning. The course will be taught using the Python programming language and assumes familiarity with the language.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Behavioral Institutional Design Minor: Electives
  • Bulletin Categories: Computer Science Major: Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  
CS-UH 2219E  Computational Social Science  (4 Credits)  
Typically offered Spring  
This course introduces students to various techniques and concepts that are essential for data scientists. It also provides an in-depth survey of the latest research methodology and topics that prepare the students to produce high quality research in Data Science. This seminar-based course will cover applications from different fields, such as sociology, psychology, network analysis, and artificial intelligence. In this context, the course will cover the use of computational techniques to model and predict various phenomena using real data. Students will be required to complete a course project, and to write up the results in a short article.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Behavioral Institutional Design Minor: Electives
  • Bulletin Categories: Computer Science Major: Electives
  • Bulletin Categories: Economics: Data Science Economics Track
  • Bulletin Categories: Political Science: Methods
  • Bulletin Categories: SRPP: Methods Electives
  • Crosslisted with: Behavioral Institutional Design
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Economics Major: Required
  • Crosslisted with: Economics
  • Crosslisted with: Political Science Major: Social Science Required
  • Crosslisted with: Political Science
  • Crosslisted with: SRPP: Major Soc Sci Required
  • Crosslisted with: Social Research Public Policy
  
CS-UH 2220  Machine Learning  (4 Credits)  
Typically offered Spring  
Machine Learning is the science of discovering algorithms from data. This is particularly useful when the algorithm for some task is too complex to be designed by a human being. Due to the availability of large amounts of data and processing power, Machine Learning techniques have been very successful in a wide variety of application areas. This course aims to give a rigorous introduction to the foundational concepts in the area along with popular algorithms and architectures.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Electives
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Computer Engineering Electives
  • Bulletin Categories: Engineering: Electrical Engineering Electives
  • Bulletin Categories: Engineering: General Engineering Electives
  • Bulletin Categories: Engineering: Mechanical Engineering Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  
CS-UH 3010  Operating Systems  (4 Credits)  
Typically offered Fall and Spring  
The operating system is a computer's chief manager overseeing interactions between users, applications, shared software and hardware resources. This course covers the fundamentals of operating system design and implementation. Lectures present the central ideas and concepts such as synchronization, deadlock, process management, storage and memory management, file systems, security, protection, and networking. Assigned readings and programming assignments illustrate the manifestation of these concepts in real operating systems.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  
CS-UH 3012  Computer Networks  (4 Credits)  
Typically offered Fall and Spring  
Have you ever wondered how the internet or Facebook is able to support a billion simultaneous users? This course teaches students the design and implementation of such Internet-scale networks and networked systems. Students learn about the principles and techniques used to construct large-scale networks and systems. Topics in this course include routing protocols, network congestion control, wireless networking, network security, and peer-to-peer systems. Upon completing this course, students are able to initiate and critique research ideas, implement their own working systems, and evaluate such systems. To make the issues more concrete, the class includes several multi-week projects requiring significant design and implementation. The goal is for students to learn not only what computer networks are and how they work today, but also why they are designed the way they are and how they are likely to evolve in the future. Examples are drawn primarily from the internet.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  
CS-UH 3090  Research Seminar in Computer Science  (2 Credits)  
Typically offered Spring  
The research seminar provides students with an overview of the diverse multidisciplinary research areas that capture the interest and fascination of NYUAD computer scientists and others in related fields. Through exposure to NYUAD faculty research, students identify areas of common interest to both faculty and students, for their own capstone research, and develop and write an in-depth research proposal over the course of the semester. The final capstone proposal is due at the end of the seminar series so that students can begin the Capstone Project in Computer Science. All Computer Science majors are required to take the research seminar during the spring semester of their third year, and be in NYU Abu Dhabi. Students who have chosen Computer Science as their secondary major do not need to complete the research seminar course; students must instead take two computer science elective courses which are not research courses.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
Prerequisites: CS-UH 1052 and CS-UH 2010 and (MATH-UH 1012Q or MATH 1013Q).  
Corequisites: CS-UH 2012 for CS-UH 3090.  
  • Bulletin Categories: Computer Science Major: Required
  • Bulletin Categories: Computer Science
  
CS-UH 3190  Summer Internship: Global Studies Track  (0 Credits)  
Typically offered APP  
Summer internship to satisfy Global Studies Track requirement. Must be in a field related to Computer Science and/or similar aspects of technology in the United States.
Grading: Ugrd Abu Dhabi Pass/Fail  
Repeatable for additional credit: No  
CS-UH 3210  Computer Security  (4 Credits)  
Typically offered Spring  
Technology increasingly permeates every aspect of our lives (including communication, finance, health, utilities, etc.), and the security of the computer systems that enable these services has become a critical issue. This course is an introduction to fundamental cybersecurity concepts, principles, and techniques. In this course students learn basic cryptography, security/threat analysis, access control, distributed systems security, privacy-preserving mechanisms, and the theory behind common attack and defense techniques. The students will get an overview of the cryptographic foundations for securing computer systems, and will conduct hands-on activities for securing different types of systems and respective networks.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Electives
  • Bulletin Categories: Engineering Crosslisted Courses
  • Bulletin Categories: Engineering: Computer Engineering Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  
CS-UH 3211  Quantum Computing  (4 Credits)  
Typically offered Spring  
Quantum phenomena are computationally intractable on a classical computer due to an exponential number of computations involved in keeping track of quantum states. Quantum computing seeks to exploit nature's ability to do these computations in parallel for solving certain problems faster than is possible on classical computers. In this introductory course, we discuss the quantum model of computation and explore its power and its limitations. In the first part of the course, we review the basic postulates of quantum mechanics and give several simple but amazing results to build an intuitive understanding of the behavior of quantum bits. In the second part of the course, we discuss quantum algorithms. We start with simple algorithms that demonstrate how quantum computing differs from classical computing and then discuss more sophisticated algorithms like Shor's factoring algorithm, Grover's search algorithm. In the third part of the course, we give brief introductions to quantum random walks, quantum cryptography, quantum error correction and Hamiltonian simulation.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Electives
  • Bulletin Categories: Engineering: Computer Engineering Electives
  • Bulletin Categories: Engineering: Electrical Engineering Electives
  • Bulletin Categories: Engineering: General Engineering Electives
  • Bulletin Categories: Mathematics: Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  • Crosslisted with: Engineering Common Courses (ECC)
  • Crosslisted with: Engineering
  • Crosslisted with: Mathematics Major: Required
  • Crosslisted with: Mathematics
  
CS-UH 3260  Special Topics in Computer Science  (4 Credits)  
Typically offered occasionally  
Special Topics in Computer Science offers high-level courses on a wide variety of topics, including big data systems; computer vision; computational geometry; cryptography; game programming; machine learning; wireless networks; and user interfaces.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
  • Bulletin Categories: Computer Science Major: Electives
  • Crosslisted with: Computer Science Major: Required
  • Crosslisted with: Computer Science
  
CS-UH 4001  Capstone Project in Computer Science 1  (4 Credits)  
Typically offered Fall and Spring  
The capstone experience in Computer Science requires students to engage in a long-term, mentored learning experience that culminates in a piece of original work. The specific project is developed during the Research Seminar in Computer Science. During the Capstone Project, the proposed work comes to fruition in the form of a research paper along the lines of those in a scholarly computer science journal. Students also participate in a capstone research symposium during which they present their work orally.
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
Prerequisites: CS-UH 3090.  
  • Bulletin Categories: Computer Science: Capstone
  
CS-UH 4002  Capstone Project in Computer Science 2  (4 Credits)  
Typically offered Fall and Spring  
Continuation of CS-UH 4001
Grading: Ugrd Abu Dhabi Graded  
Repeatable for additional credit: No  
Prerequisites: CS-UH 4001 and permission of the capstone faculty mentor.  
  • Bulletin Categories: Computer Science: Capstone