THE PREPARATORY ACCELERATED COURSES (PAC)
Special Note:
The PAC Program is paused for the 2024-2025 Academic Year. We will not be accepting any non-degree applications for the PAC Program during this academic year.
General PAC Overview
The PAC is a two-course sequence designed to fulfill the minimum prerequisites for beginning a master's degree program in computer science or information systems. PAC I is offered in the fall semester and PAC II is offered in the spring semester. The courses should be taken in sequence, as PAC I is a prerequisite for PAC II.
Intensive Introduction to Graduate Study in Computer Science I, CSCI-GA 1133 (PAC I) is an accelerated introduction to the fundamental concepts of computer science for students who lack a formal background in the field. Topics include algorithm design and program development; data types; control structures; subroutines and parameter passing; recursion; data structures; searching and sorting; dynamic storage allocation; abstract data types, such as stacks, queues, lists, and tree structures; and an introduction to the principles of object-oriented programming. The primary programming language used in the course will be Java. Students should expect an average of 12-16 hours of programming and related course work per week.
Intensive Introduction to Graduate Study in Computer Science II, CSCI-GA 1144 (PAC II) builds directly on the foundation developed in PAC I, covering the essentials of computer organization through the study of assembly language programming and C, as well as introducing the students to the analysis of algorithms. Topics include:
- Assembly language programming for the Intel chip family, emphasizing computer organization, the Intel x86 instruction set, the logic of machine addressing, registers and the system stack.
- Programming in the C language, a general-purpose programming language which also has low-level features for systems programming.
- An introduction to algorithms, including searching, sorting, graph algorithms and asymptotic complexity.
Examples and assignments reinforce and refine those first seen in PAC I and often connect directly to topics in the core computer science graduate courses, such as Programming Languages, Fundamental Algorithms, and Operating Systems.
Please note that the credits for PAC I and PAC II cannot be applied to a master's of science in computer science (MSCS), a master's of science in information systems (MSIS), or a master's of science in computing, entrepreneurship and innovation (MS-CEI).
Students who successfully complete the PAC are not guaranteed admission to any MS programs in our department.
Admissions for the PAC:
There are two ways to be eligible to take the PAC.
1. Applying as a Non-Degree student
One can apply by direct application as a non-degree applicant. If accepted, non-degree students may enroll for a maximum of 12 credits over not more than three consecutive semesters. The applicant must hold a bachelor's degree or equivalent at the time of application. If accepted and the student wishes to take more than 12 credits of coursework, the student would need to apply to a degree program and be accepted. Please note that acceptance as a non-degree student does not guarantee acceptance into a degree program. To apply, go to the GSAS Application Resource Center . International student applicants should check with the NYU Office of Global Services to make sure they are eligible to apply to a non-degree program.
2. Current NYU GSAS students
The PAC is open to current NYU GSAS students. If an NYU GSAS student is interested in taking the courses, the student should first discuss the option with his or her academic advisor. It is important to ask the advisor whether the credits can be applied to a student's degree program. While the credits cannot be applied towards an MSCS or MSIS degree, some other programs do count them. After speaking with the advisor, the student should speak to the instructor of the course to ensure that it is a good fit for the student.
If a student decides to enroll in the course, he or she should e-mail Cristina Domingo at cdomingo@cs.nyu.edu or Betty Tsang at btsang@cs.nyu.edu to request registration in the course. The student's name, NYU ID number, and the course name and course number should be included in the e-mail. The e-mail should be sent from an NYU e-mail account. Once registered, a confirmation e-mail will be sent to the student.
PAC FAQ
What material is covered in the PAC?
Intensive Introduction to Graduate Study in Computer Science I, CSCI-GA 1133 (PAC I) is an accelerated introduction to the fundamental concepts of computer science for students who lack a formal background in the field. Topics include algorithm design and program development; data types; control structures; subroutines and parameter passing; recursion; data structures; searching and sorting; dynamic storage allocation; abstract data types, such as stacks, queues, lists, and tree structures; and an introduction to the principles of object-oriented programming. The primary programming language used in the course will be Java. Students should expect an average of 12-16 hours of programming and related course work per week.
Intensive Introduction to Graduate Study in Computer Science II, CSCI-GA 1144 (PAC II) builds directly on the foundation developed in PAC I, covering the essentials of computer organization through the study of assembly language programming and C, as well as introducing the students to the analysis of algorithms. Topics include:
- Assembly language programming for the Intel chip family, emphasizing computer organization, the Intel x86 instruction set, the logic of machine addressing, registers and the system stack.
- Programming in the C language, a general-purpose programming language which also has low-level features for systems programming.
- An introduction to algorithms, including searching, sorting, graph algorithms and asymptotic complexity.
Examples and assignments reinforce and refine those first seen in PAC I and often connect directly to topics in the core computer science graduate courses, such as Programming Languages, Fundamental Algorithms, and Operating Systems.
I already know the language (_xyz_), so why do I need to take the PAC?
Many students have had a semester or two of programming in languages ranging from Basic to Java. Many others have practical skills from programming on the job. However, such experiences are often quite specific and do not encompass the range of topics required.
Can I apply the credits for the PAC towards my degree requirements?
The credits associated with PAC I and PAC II cannot be applied towards an MSCS, MSIS, or MS-CEI degree. The courses are considered preparatory in nature and as such cannot count towards a master's degree awarded by the Computer Science Department.
If you are a student in an NYU program other than one in the Computer Science Department at GSAS, you should discuss with your academic advisor whether or not the courses can be applied towards your degree requirements. Some departments will allow this.
Is it necessary to take both semesters of the PAC?
Generally, yes. The concepts presented in the first semester are explored at greater depth in the second, such that there is a presumption of prior exposure and familiarity. It is exceedingly rare for someone to skip the first semester of PAC I and then successfully complete the second, PAC II.
How much money does the PAC cost?
You can refer to the Bursar's website for the cost for tuition and fees. Please note that PAC I and PAC II are four credits each. Be sure to calculate both tuition and registration fees for the total cost for the course.
What courses should I take after the PAC?
The department usually offers CSCI-GA 2340 Elements of Discrete Mathematics in the summer. It is a 3 credit graduate level course that can be applied to the degree program. It serves as a useful introduction to the material required for the course CSCI-GA 1170 Fundamental Algorithms , which is required for the MSCS and MSIS degree. The department usually recommends that the PAC students who are going into the MSCS or MSIS program, take CSCI-GA 2340 Elements of Discrete Mathematics in the summer following the completion of their PAC.
If you are admitted to the MSCS degree program, you are required to complete the foundational courses CSCI-GA 1170 Fundamental Algorithms , CSCI-GA 2110 Programming Languages and CSCI-GA 2250 Operating Systems within a set time frame. These courses are useful to take early on in a student's academic career, as they are the foundation of computer science and the basic prerequisites for more advanced courses. Students should meet with their advisor to discuss course selection in detail.
If you are admitted to the MSIS program, you are encouraged to take the required courses first to learn the foundations of computer science. Students are encouraged especially to take CSCI-GA 1170 Fundamental Algorithms early on in their academic career and preferably after completing CSCI-GA 2340 Elements of Discrete Mathematics . Students should meet with their advisor to discuss course selection in detail.