Computer Science, Ph.D.
We have a thriving Ph.D. program with approximately 80 full-time Ph.D. students hailing from all corners of the world. Most full-time Ph.D. students have scholarships that cover tuition and provide a monthly stipend. Admission is highly competitive. We seek creative, articulate students with undergraduate and master's degrees from top universities worldwide. Our current research strengths include data management and analysis, cybersecurity, computer games, visualization, web search, graphics, vision and image processing, and theoretical computer science.
This degree program offers interested students opportunities to do their research abroad, under the supervision of faculty at NYU Shanghai or NYU Abu Dhabi.
View the Computer Science Ph.D. program flyer
Find out more about Admission Requirements.
Note: for pre-fall 2015 Ph.D. students, please see the pre-fall 2015 Ph.D. Curriculum.
To receive a Ph.D. in Computer Science at the NYU Tandon School of Engineering, a student must:
- satisfy a breadth course requirement, intended to ensure broad knowledge of computer science,
- satisfy a depth requirement, consisting of an oral qualifying exam presentation with a written report, to ensure the student's ability to do research,
- submit a written thesis proposal and make an oral presentation about the proposal,
- write a Ph.D. thesis that must be approved by a dissertation guidance committee and present an oral thesis defense, and
- satisfy all School of Engineering requirements for the Ph.D. degree, as described in the NYU Tandon School of Engineering bulletin, including graduate study duration, credit points, GPA, and time-to-degree requirements.
Upon entering the program, each student will be assigned an advisor who will guide them in formulating an individual study plan directing their course choice for the first two years. The department will hold an annual Ph.D. Student Assessment Meeting, in which all Ph.D. students will be formally reviewed.
Credit Requirements and Transfer Credits
In order to obtain a Ph.D. degree, a student must complete a minimum of 75 credits of graduate work beyond the BS degree, including at least 21 credits of dissertation. A Master of Science in Computer Science may be transferred as 30 credits without taking individual courses into consideration. Other graduate coursework in Computer Science may be transferred on a course-by-course basis. Graduate coursework in areas other than Computer Science can be transferred on a course-by-course basis with approval of the Ph.D. Committee (PHDC). The School of Engineering places some limits on the number and types of transfer credits that are available. Applications for transfer credits must be submitted for consideration before the end of the first semester of matriculation. Further details can be found in the School of Engineering bulletin.
Individual Study Plan
Each incoming Ph.D. student will be assigned to a research advisor, or to an interim advisor, who will provide academic advising until the student has a research advisor. The advisor will meet with the student when the student enters the program to guide the student in formulating an Individual Study Plan. The purpose of the plan is to guide the student’s course choice for the first two years in the program and to ensure that the student meets the breadth requirements. The plan may also specify additional courses to be taken by the student in order to acquire necessary background and expertise. Subsequent changes to the plan must be approved by the advisor.
Each Ph.D. student must complete a breadth requirement consisting of 6 courses. To remain in good academic standing, students must fulfill the breadth requirement within 24 months of entering the Ph.D. program.
Students who do not fulfill the breadth requirement within 24 months will be dismissed from the program unless an exception is granted by the PHDC. The PHDC will consult with the student’s research advisor to decide whether an exception is granted and to determine the conditions the student needs to meet.
Details of Breadth Requirement
The courses used to fulfill the breadth requirement must satisfy the following:
(a) Approved list courses: At least 4 of the courses must be taken from the approved list of courses; see below "CS Ph.D. Breadth Requirement: Approved List of Courses." The 4 courses must satisfy the following two requirements:
i) Theory requirement: At least one of the 4 courses must be taken in the Theory area.
ii) Systems & Applications Requirement: At least two of the 4 courses must be taken in Systems & Applications.
Exemptions from approved list courses: With the approval of the Ph.D. Committee, students who have previously received a grade of A or A- in a course that is on the approved list, while enrolled in another NYU graduate program, can use that course towards the breadth requirement in lieu of taking it while in the Ph.D. program. Also, students who have previously received a grade of A or A- in a graduate course similar to one on the approved list, while enrolled in a graduate program at another university with standards comparable to those at NYU, can use that course in lieu of taking the course on the approved list. The determination of whether a course previously taken at another university can be used in this way will be made by the PHDC.
Approved Course List: The list of approved courses will be reviewed regularly by the PHDC and is subject to change. Any changes must be approved by the CSE Department. In order for a course to be considered for inclusion in the list, the course must be rigorous and the students in it must be evaluated individually. Examples of inappropriate courses include those in which students are traditionally not differentially evaluated (e.g., all students receive A's or "pass") and courses in which grades are based on attendance or making a presentation of someone else's work, rather than on tests and assignments. Students, under their advisors’ guidance, should select their courses from the approved list so that they are exposed to a broad set of topics in computer science.
(b) Free choice courses: Students must take 2 free choice courses in addition to the 4 required courses from the approved list. Students can use any graduate course at NYU as free choice courses but must obtain advisor approval to use a course not on the approved list. Students cannot use independent study courses (such as Advanced Project CS-GY 9963 or Readings in Computer Science, CS-GY 9413 and CS-GY 9423) or dissertation. Both free choice courses must be taken while in the CS Ph.D. program. No exemptions are available for free choice courses.
(c) GPA requirement: Students must receive a grade of at least B in each of the six courses used to fulfill the breadth requirement. The average in the 4 approved list courses used to fulfill the breadth requirement must be at least 3.5. (For students who receive exemptions allowing them to take fewer than 4 approved list courses while in the CS PhD program, the average will be calculated over the approved list courses that were taken while in the CS Ph.D. program.) The average in the 2 free choice courses must also be at least 3.5.
(d) Requirement for Students who have never taken an Algorithms Course: Any student who has not taken a course in Algorithms prior to entering the Ph.D. program, at either the undergraduate or the graduate level, must take a graduate course in algorithms while in the Ph.D. program. Students may take CS-GY 6033 (Design and Analysis of Algorithms I), CS-GY 6043 (Design and Analysis of Algorithms II), or CSCI-GA.3520 (Honors Analysis of Algorithms) to fulfill this requirement. The department may revise this list in the future depending on course offerings. Alternatively, students may petition the PHDC to use another course. The grade received in the course must be at least B.
By the end of a student’s third semester (throughout this document, the word “semester” is used to refer to fall or spring semester) in the program, at the latest, the student must be involved in a research project under the guidance of a faculty research advisor. It is the responsibility of each student to find a faculty advisor and a research project, and to inform the PHDC Chair about his/her choice of advisor. Students must inform the PHDC chair if they change their research advisor.
To satisfy the depth requirement, students must take a qualifying exam (QE) based on their research. The QE must be taken before the start of the student’s fifth semester in the program. Students are required to form a QE committee, select an exam topic, and a tentative date approved by the advisor and committee, by the end of their third semester.
The QE committee must consist of the advisor and at least two other members. The committee must be approved by the advisor and the PHDC. The advisor is the designated chair of the committee. All members of the QE committee must be CSE faculty, faculty from other departments at NYU, or individuals of like standing from outside the university. At least two of the QE committee members must be tenured or tenure-track members of the CSE department unless permission is obtained from the PHDC to include only one such member.
For the QE, the student must give an oral presentation of her/his research accomplishments to the QE committee and write a detailed document describing those accomplishments. The document must be submitted to the QE committee and the PHDC no later than one week before the oral presentation. A student is expected to have conducted original research by the time of the exam. This research may have been carried out independently or in collaboration with faculty, research staff, or other students. Students are encouraged, but not required, to have publication-worthy results by the time of the exam. It is not sufficient for a student to present a survey of previous work in an area or a reimplementation of algorithms, techniques, or systems developed by others.
The committee, by majority vote, gives a grade for the exam as either "Pass" or "Fail." The chair of the QE committee will send this grade in writing to the student and to the PHDC chair, together with a written evaluation of the student's performance, approved by the QE committee members. A student who does not receive a “Ph.D. pass” may request permission from the PHDC to retake the exam. The PHDC will consult with the QE committee, review the case and make the final decision as to whether a retake is allowed or not. A student may petition the PHDC to change one or more members of the QE committee, but approval of the request will be at the PHDC’s discretion.
If the request for a retake is approved, the QE committee will determine the date for the second attempt. If the student is not allowed to retake the exam, the student will not be allowed to continue in the Ph.D. program in the following semester. If the student does not pass the qualifying exam on the second attempt, or otherwise does not satisfy the conditions given to her/him upon failing the exam the first time, the student will not be allowed to continue in the Ph.D. program in the following semester.
If a student has passed the QE and then changes his/her area of research, the student need not retake the QE.
Part-time students can petition the PHDC for extensions to the deadlines associated with the qualifying exam. Extensions should be for at most 2 semesters, except in extraordinary cases. Approval of extensions is at the discretion of the PHDC.
Thesis Proposal and Presentation
Within 6 months of passing the QE, each student is required to form a dissertation guidance committee. This committee must be approved by the student’s research advisor and by the PHDC. The committee must include at least four members. The committee members can be CSE faculty, faculty from other departments at NYU, or individuals of like standing from outside the university. At least one member of the dissertation guidance committee must be a tenured or tenure-track CSE faculty member, and at least one member of the committee must be from outside the CSE department.
By the end of the student’s fifth semester in the program, the student and committee must set a tentative date for the thesis proposal presentation. The presentation must be done prior to the start of the student’s seventh semester in the program.
Before finalizing the date of the presentation, the student must submit a written thesis proposal to the dissertation guidance committee which should include:
- a description of the research topic
- an explanation of how the research will advance the state of the art, and
- a tentative research plan
After the dissertation guidance committee has approved the thesis proposal, the student should schedule the thesis proposal presentation and notify the PHDC chair once this has been finalized. The presentation should be announced to the faculty by the PHDC chair at least one week before it occurs. The presentation is open to all faculty. It may also be open to others at the discretion of the research advisor.
Substantial subsequent changes to the thesis topic must be approved by the dissertation guidance committee.
Thesis and Thesis Defense
The last and most substantial aspect of the Ph.D. program is the dissertation. The research for the dissertation should be conducted in close consultation with the research advisor. When the adviser determines that the student is ready to defend the thesis, a dissertation defense will be scheduled. For the defense, the student will give an oral presentation describing the thesis research, which is open to the public. Following the oral presentation and an initial question and answer session, the dissertation committee and CSE faculty may ask the student further questions in closed session.
Other requirements for the Ph.D. dissertation and defense can be obtained from the Office of the Associate Dean for Graduate Academics in the NYU School of Engineering.
Annual Ph.D. Student Assessment Meeting
All Ph.D. students will be formally reviewed each year in a Ph.D. Student Assessment Meeting. The review is conducted by the entire CSE faculty and includes at least the following items (in no particular order):
- All courses taken, grades received, and GPAs.
- Research productivity: publications, talks, software, systems, etc.
- Faculty input, especially from advisors and committee members.
- Student’s own input.
- Cumulative history of the student's progress.
As a result of the review, each student will be placed in one of the following two categories, by vote of the faculty:
- In Good Standing: The student has performed well in the previous semester and may continue in the Ph.D. program for one more year, assuming satisfactory academic progress is maintained.
- Not in Good Standing: The student has not performed sufficiently well in the previous year. The consequences of not being in good standing will vary, and may include being placed on probation, losing RA/GA/TA funding, or not being allowed to continue in the Ph.D. program.
Following the review, students will receive formal letters which will inform them of their standing. The letters may also make specific recommendations to the student as to what will be expected of them in the following year. A copy of each student’s letter will be placed in the student’s file.
School of Engineering Requirements
Other School of Engineering requirements can be found in the School of Engineering Bulletin. Students must meet all applicable requirements, including graduate study duration, credit points, GPA, and time-to-degree requirements.
Policy on Remote Attendance Ph.D. Exams
The following is the department policy concerning remote attendance at qualifying exams, dissertation proposal exams, and dissertation defenses, along with rules regarding the location and scheduling of these exams.
Any person attending an exam remotely must have a two-way video and audio connection.
1. Qualifying exams and proposal exams should be held at the Tandon campus in Brooklyn, except as indicated below. It is preferable that all committee members be present in person. However, in cases where attendance in person would be difficult, committee members other than the advisor are allowed to attend remotely. The advisor may attend remotely only with the permission of the PHDC.
If a Ph.D. student is working with a research advisor at an NYU campus outside of the United States, and both student and advisor are at
that campus at the time of the qualifying exam, the student may take the exam on that campus with the advisor present. The remaining members
of the committee may attend remotely.
Any other arrangements must be approved by the PHDC.
2. All dissertation defenses must take place on the Tandon campus. Defenses should be held on a day in which the Tandon School of Engineering is open for business. It is not a requirement that classes be in session. Permission must be obtained from the PHDC to hold a dissertation defense on a weekend, or on a holiday or vacation day when the school is not open for business.
The student, research advisor, and any members of the committee who are on the CSE department faculty, should be present in person at the defense. If a member of the CSE department faculty who is on the committee is unable to attend in person, permission must be obtained from the PHDC for that person to attend remotely. It is highly desirable for all other members of the committee to be present in person. However, if it is difficult for other committee members to attend in person, they may attend remotely.
CS Ph.D. Breadth Requirement: Approved List of Courses
The following courses at NYU Tandon School of Engineering can be used to satisfy the breadth requirements:
- 3 Credits Design and Analysis of Algorithms II CS-GY6043
- 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. Selected additional topics that may vary.
Knowledge of algorithms and data structures equivalent to CS-GY 6033. Prerequisite: Graduate standing.
- 3 Credits Algorithmic Machine Learning and Data Science CS-GY6763
- This course gives a behind-the-scenes look into the algorithms and computational methods that make machine learning and data science work at large scale. How does a service like Shazam match a sound clip to a library of 10 million songs in under a second? How do scientists find patterns in terabytes of genetic data? How can we efficiently train neural networks with millions of parameters on millions of labeled images? We will address these questions and others by studying advanced algorithmic techniques like randomization, approximation, sketching, continuous optimization, spectral methods, and Fourier methods. Students will learn how to theoretically analyze and apply these techniques to problems in machine learning and data science. They will also have the opportunity to explore recent research in algorithms for data through a final project and optional reading group. This course is mathematically rigorous and is intended for graduate students or strong, advanced undergraduates.
Knowledge of machine learning (equivalent to CS-UY 4563, CS-GY 6923, or ECE-GY 6143),
algorithms (equivalent to CS-UY 2413, CS-GY 6033, or CS-GY 6043), and linear algebra
(equivalent to MA-UY 2034, 3044, or 3054). Prerequisite: Graduate Standing.
- 3 Credits Theory of Computation CS-GY6753
- 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.
Prerequisites: Graduate standing and CS-GY 6003 (or instructor's permission).
Knowledge of discrete math (equivalent to CS-GY 6003). Prerequisite: Graduate Standing.
- 3 Credits Computational Geometry CS-GY6703
- 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.
Knowledge of algorithms and data structures equivalent to CS-GY 6033. Prerequisite: Graduate Standing.
Systems and Applications
- 3 Credits Computer Architecture II CS-GY6143
- 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: Graduate standing and CS-GY 6133.
- 3 Credits Operating Systems II CS-GY6243
- 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: Graduate standing and CS-GY 6233.
- 3 Credits Distributed Operating Systems CS-GY6253
- 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.
- 3 Credits Big Data CS-GY6513
- 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. 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.
Knowledge of Python. Prerequisite: Graduate Standing.
- 3 Credits Computer Networking CS-GY6843
- 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 linklayer switches. The course includes simple quantitative delay and throughput modeling, socket programming and network application development and Ethereal labs.
Knowledge of Python and/or C. Prerequisite: Graduate standing.
- 3 Credits Network Security CS-GY6823
- 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: Graduate standing. * Online version available.
- 3 Credits Principles of Database Systems CS-GY6083
- 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.
Knowledge of basic data structures and algorithms (search trees, hash tables, sorting and searching). Knowledge of principles of operating systems and of the client-server architecture. Basic familiarity with the UNIX operating systems. Programming proficiency. Prerequisites: Graduate standing.
- 3 Credits Compiler Design and Construction CS-GY6413
- This course covers compiler organization. Topics: Lexical analysis, syntax analysis, abstract syntax trees, symbol table organization, code generation. Introduction to code optimization techniques.
Knowledge of discrete math equivalent to CS-GY 6003, and knowledge of fundamental data structures. Prerequisites: Graduate Standing.
- 3 Credits Interactive Computer Graphics CS-GY6533
- 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.
Knowledge of Data Structures and Algorithms, and be comfortable with C/C++ programming.. Prerequisites: Graduate standing.
- 3 Credits Artificial Intelligence I CS-GY6613
- 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.
Knowledge of Data Structures and Algorithms. Prerequisite: Graduate standing.
- 3 Credits Application Security CS-GY9163
- 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.
Knowledge of Information, Security and Privacy equivalent to CS-GY 6813. Prerequisite: Graduate standing
- 3 Credits Advanced Database Systems CS-GY6093
- 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.
Knowledge of Database Systems equivalent to CS-GY 6083 and experience with a relational database system. Prerequisites: Graduate standing.
- 3 Credits Computer Vision CS-GY6643
- 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.
Knowledge of Data Structures and Algorithms, proficiency in programming, and familiarity with matrix arithmetic. Prerequisites: Graduate standing.
- 3 Credits Web Search Engines CS-GY6913
- 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: Graduate standing
- 3 Credits Machine Learning CS-GY6923
- 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.
Knowledge of undergraduate level probability and statistics, linear algebra, and multi-variable calculus. Prerequisite: Graduate standing.
- 3 Credits Information Visualization CS-GY6313
- 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.
Prerequisite: Graduate Standing.
- 3 Credits Human Computer Interaction CS-GY6543
- 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.
Knowledge of the design of user experiences and interfaces is desirable but not required. Prerequisite: Graduate Standing.
- 3 Credits Game Design CS-GY6553
- 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: (Graduate Standing AND CS-GY 6533) for SoE students OR (OART-UT 1600 and OART-UT 1605) for Game Center MFA students OR instructor permission.
- 3 Credits Artificial Intelligence for Games CS-GY6943
- 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.
Prerequisites: Graduate Standing and CS-GY 6613 or similar introductory Artificial Intelligence courses.
The following courses, offered the Computer Science Department at the Courant Institute of Mathematical Sciences at NYU, can also be used to satisfy the breadth requirements:
- Honors Analysis of Algorithms CSCI-GA.3520
Systems and Applications
- High Performance Computer Architecture CSCI-GA.2243
- Networks and Distributed Systems CSCI-GA.2620
- Honors Programming Languages CSCI-GA.3110
- Honors Compilers CSCI-GA.3130
- Honors Operating Systems CSCI-GA.3250
- Computer Graphics CSCI-GA.2270
- Computer Vision CSCI-GA.2271
- Advanced Database Systems CSCI-GA.2434
- Artificial Intelligence CSCI-GA.2560
- Machine Learning CSCI-GA.2565
- Foundations of Machine Learning CSCI-GA.2566
- Natural Language Processing CSCI-GA.2590