The PAC Program of Preparatory Courses

General Program Overview

The PAC Program 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) or a master’s of science in information systems (MSIS).

Admissions for the Program:

There are three ways to be eligible to take the PAC Program.

1. Applying to a Computer Science Department Master’s Program

Applicants whose previous training does not qualify them for admission to the MS programs, but who otherwise show aptitude for graduate study in computer science may be admitted on a conditional basis, with the requirement of successful completion of the PAC Program. In this instance, the admissions committee makes a determination that an application is acceptable, but the technical experience of the prospective student is inadequate to meet the demands of graduate level course work in the Computer Science Department. If the student successfully completes the PAC Program, then the student can continue on in the master’s program. If the student does not successfully complete the PAC Program, the student cannot continue on in the degree program. To apply, go to the GSAS Application Resource Center.

2. 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.

3. Current NYU students

The PAC Program is open to current NYU students. If an NYU 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 Courtney Mills at mills@cs.nyu.edu or Katie Laugel at laugel@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.

Special Note for International Students

International students on an F1 visa need to maintain full-time equivalency to stay in status with their visa requirements. Such students will need to register for at least 10 credits in the fall and spring semester, while taking the PAC courses. As such, in order to qualify for full-time status, they will be required, under advisement by the Director of Graduate Studies, to register for undergraduate computer science classes, graduate mathematics courses, and other selectively chosen courses. The PAC and undergraduate courses would not be counted towards the master's degree requirements.

Note that the visa document (certificate of eligibility, form I-20 or DS-2019) will state that the student is in the Preparatory Course Program for the first year. Once the student has passed the program, the student must apply for a change of program I-20 form from OGS for the master's program within the change of program timelines noted on the OGS website.

PAC FAQ

What material is covered in the PAC Program?

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:

  1. 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.
  2. Programming in the C language, a general-purpose programming language which also has low-level features for systems programming.
  3. 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 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 courses towards my degree requirements?

The credits associated with PAC I and PAC II cannot be applied towards an MSCS or an MSIS 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 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.

I was admitted on the provision that I receive a certain grade in the courses. What happens if I do not achieve the minimum required grades?

Those admitted to a master's program with the condition that they complete PAC are considered master's degree students while enrolled in PAC courses, although the credits for the courses do not count toward their master's degrees. If a student's conditional acceptance states that a minimum grade is required in the PAC courses to continue in the program, then, the student must achieve that minimum grade. If the student does not achieve the stated minimum grade, the student will not be permitted to continue in the master's program. Furthermore, if the student does not achieve the necessary grade in PAC I the student will not be allowed to register for PAC II.

If a student's acceptance into a master's program includes the provision that the student complete the PAC Program, but does not include a minimum required grade, the student must complete and pass both PAC I and PAC II to continue in the master's program. If the student does not pass both courses, the student will not be allowed to continue in the master's program.

How much money does the PAC Program 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 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. The department usually recommends that PAC students take CSCI-GA 2340 Elements of Discrete Mathematics in the summer following the completion of their PAC courses.

For MSCS students, they are required to complete their 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 the Program Administrator to discuss course selection in detail.

For MSIS students, they are encouraged to take their 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 the Program Administrator to discuss course selection in detail.