Frequently Asked Questions


What is PAC?

PAC stands for the "Preparatory Accelerated Course" in Computer Science.

The PAC program was designed by the CS department to accommodate the needs of individuals seeking to undertake graduate work in computer science but lacking the necessary prerequisite undergraduate degree and training.

The program provides an intensive yearlong exposure to the fundamental concepts and skills of computer science. Students meet twice per week throughout the fall and spring terms, and typically spend between twelve and sixteen hours per week outside of class working on assignments.

(top)

How do I get into PAC?

There are two main paths into the PAC program. One is by direct application (available on the department web site). This path is self-selected by applicants who would like to begin graduate study in the field of Computer Science but lack the academic background and/or relevant experience.

The second path is as part of a conditional acceptance into the Masters program in either Computer Science or Information Systems. 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 the required core courses in computer science.

(top)

Are GRE test scores required?

Yes. The General GRE test score is required, but the Computer Science subject exam is not.

(top)

What does it mean to "successfully complete the PAC program"?

A student successfully completes the PAC program by attaining a grade of 'B' or better in the second semester of PAC. Note that a grade of 'B' or better is also required to advance from the first semester to the second.

This represents a slight change from previous policy, where the admissions requirements were more relaxed but the completion requirements more stringent (requiring a grade of 'A' in the second semester!). It is now the case that the admissions requirements are tougher, and the criteria for "successful completion" more consistent with the overall masters program requirements.

Successful completion of PAC (along with the other prerequisites such as GRE scores and satisfying the Discrete Math requirement) results in full and unconditional matriculation of the student into the CS program.

Students are advised that admission to the joint Courant/Stern program in Information Systems involves a separate application process; successful completion of PAC does not guarantee admission into the MSIS program.

(top)

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. And 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. Indeed, a year of programming is considered a minimal prerequisite for acceptance into the PAC program.

(top)

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 and then successfully complete the second. And if the topics of the second semester were already well known by the student, then it is quite likely that the student would have been exempted from PAC altogether.

(top)

Do PAC credits apply towards my degree?

No. PAC is designed to prepare students for entrance to the graduate program in computer science, not replace part of the program.

(top)

Why do we study the 'ADA' language in the first semester?

This question often arises, as students will say "well, at my other school, they used (Pascal, Modula, Scheme, Java, C++)".

Without getting involved in a quasi-religious debate, here is the context: Ada underwent the most rigorous specification and development process in the history of programming languages. It is considered the most mature and stable of all the languages in the "imperative" family of languages. It provides a thorough grounding in the fundamental concepts of imperative programming, and supports advanced ideas such as "packages" for abstract data types, parallel computation, and real-time programming.

Also, our department retains a considerable amount of expertise in the Ada language, as the first validated Ada 95 compiler was designed and implemented here at NYU by members of our faculty (Profs. Dewar and Schonberg).

More important for our purposes, Ada serves as a benchmark reference point in the discussion of the features and functionality of other programming languages.

It should be noted that languages such as C++ , Scheme, and Java are addressed in the CS core course "Programming Languages".

(top)

Can I take other courses at the same time as PAC?

The short answer is 'yes', but the options available are limited. Most departmental courses require one or another of the "core" courses (such as Programming Languages, Compilers, Operating Systems, or Fundamental Algorithms) as prerequisites.

(top)

What courses should I take after PAC?

The department offers a special section of Discrete Math in the summer. It is a 3-credit graduate-level course that applies to the degree program, and satisfies the math requirement for admissions. It is also a very useful introduction to the material required for the core course Fundamental Algorithms.

Most students will then take either Fundamental Algorithms or Programming Languages, as these two are the basic prerequisites for more advanced courses.

The department advises students to concentrate on the four core courses first, and then take the "core" exam (based, naturally, on the four core courses) before they have completed 18 of the 36 credits required for the degree.

Students are directed to the departmental web site for course descriptions and requirements, and are advised to consult with the department on more detailed individual inquiries regarding curricular and scheduling matters.

(top)