Graduate School

Home

Computer Science

General information, program offerings:, graduate program administrator:, director of graduate studies:.

The Department of Computer Science accepts both beginning and advanced graduate students for study and research leading to the degree of Master of Science in Engineering (M.S.E.) and Doctor of Philosophy (Ph.D.). These degree programs are sufficiently flexible to adapt to individual plans of study and research.

Additional departmental requirements

Applicants are required to select up to two areas of research interest when applying.

M.S.E.: Two supplemental essays are required.

  •  Please describe any teaching experience you have had, in any subject, at any grade level. This can include but is not limited to experience as a teaching assistant, lab assistant, grader, tutor, or any other role in which you interacted with students or mentored your peers. 250 words max.
  •  For those with teaching experience, describe a specific instance when you helped your student/students overcome a misunderstanding or understand a difficult concept. If you do not have any teaching experience, please describe an oral presentation or talk you gave that explains a particularly difficult concept. 250 words max.

M.S.E.: If  TOEFL is required, a minimum of 28 on the speaking subsection is required.

Program Offerings

Program offering: ph.d., program description.

The doctoral program in computer science combines coursework and participation in original research. Most students enter the program with an undergraduate degree in computer science, mathematics, or a related discipline. Some entering students may have a master’s degree, but that is not necessary for success in the program. Every admitted Ph.D. student is given financial support in the form of a first-year fellowship. In addition, all admitted Ph.D. students are automatically considered for the prestigious Wu and Upton Fellowships.

In preparation for the general examination, the doctoral candidate, in consultation with a faculty adviser, develops an integrated program of study in one of the departmental areas of research. Such preparation usually requires two academic years for students entering with a bachelor’s degree, and one year for students entering with a master’s. Students are required to stand for the general examination at the end of the second year.

A total of 6 courses are required. Three courses must be taken to satisfy the core breadth requirement, with one course from each of three main areas of computer science: Systems, Artificial Intelligence (AI), and Theory.  All students must fulfill the core breadth requirements plus one additional course by the end of the second year, demonstrating minimum competence in three main areas. The remaining three courses can be any 400- or 500-level course from any department in the University. Courses taken outside the Department of Computer Science require approval from the student’s academic adviser and the Director of Graduate Studies.

All courses must be taken for a grade. A grade of B+ or higher is required to get credit towards course requirements, although at most one B will be accepted for a course that does not satisfy the core breadth requirements. Individual research areas may request additional courses in excess of departmental requirements or may require students in that subfield to complete specific required courses in fulfillment of course requirements.

Breadth requirement core course list:

Artificial Intelligence

  • 511 Theoretical Machine Learning
  • 513 Foundations of Probabilistic Modeling
  • 514 Fundamentals of Deep Learning
  • 524 Fundamentals of Machine Learning
  • 529 Advanced Computer Vision
  • 584 Advanced Natural Language Processing
  • 475 Computer Architecture (See ELE 475)
  • 518 Advanced Computer Systems
  • 561 Advanced Computer Networks
  • 563 Wireless Networks
  • 510 Program Languages
  • 516 Automated Reasoning About Software
  • 521 Advanced Algorithm Design
  • 522 Computational Complexity
  • 585 Information Theory and Applications

General exam

The general examination consists of a research seminar prepared under the supervision of a faculty member, followed by an in-depth oral examination on the contents of the seminar and the associated general area of research. The oral examination tests the student's knowledge in a number of topics relevant to the student's research area. These topics are specified beforehand by an examining committee in consultation with the student. The seminar is open to the public, and at least three computer science faculty members must attend. Two are invited by the student; the adviser chooses a  third faculty member who could be in any area of Computer Science or related fields.  The examining committee and the student agree upon a reading list for the exam. This document is to be made available to anyone present in the oral examination, and only questions pertaining to either the material described in the document or presented during the research seminar can be asked during the oral examination.

Original research results do not have to be presented, but problems whose solution may lead to a thesis should be discussed. In many cases, the student’s thesis is in the same area as the research seminar, but this is not required.

Qualifying for the M.A.

The Master of Arts (M.A.) degree is normally an incidental degree on the way to full Ph.D. candidacy once a student has successfully completed the general examination. The M.A. may also be awarded to students who, for various reasons, leave the Ph.D. program, provided the student has successfully completed the six required courses from the Breadth Requirement. Please note, students admitted to the Ph.D. program who do not wish to complete the program may be considered for an M.S.E. degree with approval from the department and the Graduate School. Ph.D. students who have already been awarded the incidental M.A. are not eligible to earn an M.S.E.

For students who entered the Ph.D. Program before Fall 2018: The Master of Arts degree can be awarded after successfully completing all the year 2 requirements -- 3 core courses, one additional course, and passing the general exam.  

For students who entered the Ph.D. Program Fall 2018 and after: The Master of Arts degree can be awarded after successfully completing the 6 required courses from the Breadth Requirements.

Teaching experience is considered to be a significant part of graduate education. All Ph.D. candidates are therefore required to assist with course instruction for the equivalent of two terms.

Post-Generals requirements

The preliminary FPO is a research talk given to the anticipated FPO committee approximately six months before the FPO date. The pre-FPO covers results to date and planned research, and serves as a preliminary critique of the proposed dissertation. 

Graduate students will present a public talk followed by a private meeting with the committee.  The outcome of the pre-FPO is not graded. Graduate students are provided with valuable feedback to the committee expects will guide any final work and will be incorporated into the dissertation.

FPO Committee must be identical to the Pre-FPO committee; any subsequent changes to the committee require approval from the DGS.

Dissertation and FPO

The Ph.D. is awarded after the acceptance of the dissertation and completion of the final public oral.

Program Offering: M.S.E.

The Master's degree at Princeton is a two year, full-time program. All admitted students will initially be enrolled in the Master of Science in Engineering (M.S.E.), thesis-required track. In the spring of year 1, as part of readmission, all students will be given the option to switch to the Master of Engineering (M.Eng.), non-thesis track. Students opting to remain on the M.S.E. track must have a confirmed research adviser and should also have a preliminary thesis proposal. Switching from the M.S.E. track to the M.Eng track will be permitted through January of Year 2.

All coursework must be taken for a grade. A minimum of 4 courses must be taken in year 1. If, due to scheduling conflicts,this is not possible, approval by the Director of Graduate Studies is required. In no event will time to degree be extended beyond two years.

Funding is normally in the form of teaching assistantships covering the four semesters of the program. Summer funding for M.S.E. candidates in the form of a research assistantship may be offered at the adviser's discretion.

Students wishing to continue on for a Ph.D. should apply through the normal application process during the fall of their second year of study.

Undergraduate senior thesis and undergraduate independent work courses are not included in this policy.

The  M.S.E. program  is a two year, full-time program of coursework plus submission of an original thesis. Candidates choose a subarea of computer science on which to focus by taking appropriate courses, and writing a thesis under the direction of an adviser. 

In addition to satisfactory completion of coursework, candidates must prepare and submit an original thesis as well as present a public seminar on the research. The thesis will be reviewed and graded by your adviser plus one additional reader from the Princeton faculty. If the reader is from outside the Computer Science Department, approval by the Director of Graduate Studies is required. The public seminar is an ungraded 20-minute talk, followed by a 10-minute question session, given in the spring of year 2. This will allow your adviser and reader to give preliminary feedback prior to submission of the final thesis.

The written thesis should be a research paper of "scholarly quality" -- making a novel contribution to scholarship in the field. The thesis should motivate the chosen research problem, evaluate the proposed solution (e.g., via analysis, measurement, simulation, or prototype implementation), and compare the approach to the related work in the field. While there is no specific length requirement, a reasonable target is a typical conference paper (e.g., 10-15 pages in two-column format or 20-40 pages in single-column, double spaced format).

Thesis Requirement

Candidates choose a subarea of computer science on which to focus by taking appropriate courses, and writing a thesis under the direction of an advisor. In order to be readmitted for a second year, candidates must have a confirmed thesis advisor and preliminary thesis proposal by the end of the first year. Students remaining in the MSE program should identify a thesis advisor and submit a 350-500 word thesis proposal abstract (approved by the thesis advisor) by the re-enrollment deadline. Candidates must prepare and submit an original thesis as well as present a public seminar on the research. The thesis will be reviewed and graded by your adviser plus one additional reader from the Princeton faculty. If the reader is from outside the Computer Science Department, approval by the Director of Graduate Studies is required. The public seminar is an ungraded 20 minute talk, followed by a 10 minute question session, given in the spring of Year 2. This will allow your adviser and reader to give preliminary feedback prior to submission of the final thesis. The written thesis should be a research paper of "scholarly quality" -- making a novel contribution to scholarship in the field. The thesis should motivate the chosen research problem, evaluate the proposed solution (e.g., via analysis, measurement, simulation, or prototype implementation), and compare the approach to the related work in the field. While there is no specific length requirement, a reasonable target is a typical conference paper (e.g., 10-15 pages in two-column format or 20-40 pages in single-column, double spaced format). Students may resubmit their thesis with revisions for final archiving by Dean's Date.  After being graded, a PDF of the thesis should be uploaded to Princeton's ETD Administrator site (ProQuest) just prior to completing the final paperwork for the Graduate School. The PDF should be formatted according to our Dissertation Formatting Requirements (PDF download). The Mudd Library will review and approve the submission upon notification from the Graduate School that your final paperwork is ready for this step. 

Course Requirements

MSE course requirements are fulfilled by completion of  six  courses: three Core courses and three  Elective courses . Candidates must maintain a B average, with no more than one C allowed. All courses must be taken for a letter grade.

  • *For students who have entered the program prior to Fall 2023
  • **For students entering the program in Fall 2023 and later
  • Any 400-level COS course
  • An additional course that satisfies the Core Course criteria.
  • Relevant non-COS courses not on this list may be added with the Director of Graduate Studies’ consent.

Candidates electing to switch to the  M.Eng.  degree track are not required to submit a thesis: the following Course Requirements suffice for the degree.

MEng course requirements are fulfilled by completion of  eight  courses over two years: three Core courses and five Elective courses. Candidates must maintain a B average, with no more than one C allowed.  All courses must be taken for a letter grade.

Acceleration of the M.Eng. (non-thesis track).  Students in excellent academic standing who intend to transition to the M.Eng. track may request the department accelerate their two-year program by either one semester or one year, provided all the applicable following conditions are met:

1. Satisfactory performance in all past, current, and future Teaching Assistantship assignments at the University, as evaluated by the Instructor of Record of the course the student is assigned to; 2. The request must be made in writing to the department  before  the Faculty Deadline for Submission of Graduate Course Grades at the end of the first semester of study; 3.  For one-semester acceleration requests : Three courses completed in the first semester, with all A grades (one A- permitted). 4.  For one-year acceleration requests:  Four courses completed in the first semester, with all A grades (one A- permitted).

The department will cancel the request if the student later chooses to remain on the M.S.E. track during their Year 1 reenrollment. Students who accelerate may choose to revert their program of study to its original length by communicating this request in writing to the department.

The master’s program is fully funded by teaching assistantships. Master's students are required to hold a full teaching assistantship each semester that they are enrolled.

Candidates for the M.S.E. must prepare and submit an original thesis as well as present a public seminar on the research. The thesis will be reviewed and graded by the student’s adviser plus one additional reader from the Princeton faculty. If the reader is from outside the Department of Computer Science, approval by the director of graduate studies is required. The public seminar is an ungraded 20-minute talk, followed by a 10-minute question session, given in the spring of year 2. This will allow the student’s adviser and reader to give preliminary feedback prior to submission of the final thesis.

The written thesis should be a research paper of scholarly quality, making a novel contribution to scholarship in the field. The thesis should motivate the chosen research problem, evaluate the proposed solution (e.g., via analysis, measurement, simulation, or prototype implementation), and compare the approach to the related work in the field. While there is no specific length requirement, a reasonable target is a typical conference paper (e.g., 10-15 pages in two-column format or 20-40 pages in single-column, double-spaced format).  Thesis is due to the adviser, reader, and department prior to Deans Date. Students may resubmit their thesis with revisions for final archiving by Dean's Date.  After being graded, a .pdf file is due to the Graduate Coordinator and should be uploaded to ProQuest.  Click here to review  Mudd Library Thesis formatting guidelines .  

  • Szymon M. Rusinkiewicz

Associate Chair

  • Ryan P. Adams
  • Wyatt A. Lloyd

Director of Graduate Studies

  • Aarti Gupta (co-director)
  • Kyle A. Jamieson (co-director)

Director of Undergraduate Studies

  • Brian W. Kernighan (co-director)
  • Kevin Wayne (co-director)
  • Andrew W. Appel
  • Sanjeev Arora
  • David I. August
  • Mark Braverman
  • Bernard Chazelle
  • Adam Finkelstein
  • Michael J. Freedman
  • Tom Griffiths
  • Aarti Gupta
  • Kyle A. Jamieson
  • Brian W. Kernighan
  • Margaret R. Martonosi
  • Radhika Nagpal
  • Arvind Narayanan
  • Ben Raphael
  • Jennifer Rexford
  • H. Sebastian Seung
  • Jaswinder P. Singh
  • Robert E. Tarjan
  • Olga G. Troyanskaya
  • David P. Walker

Associate Professor

  • Zachary Kincaid
  • Jonathan Mayer
  • Karthik Narasimhan
  • Ravi A. Netravali
  • Olga Russakovsky
  • Matt Weinberg

Assistant Professor

  • Parastoo Abtahi
  • Adji Bousso Dieng
  • Benjamin Eysenbach
  • Felix Heide
  • Peter Henderson
  • Aleksandra Korolova
  • Pravesh K. Kothari
  • Amit A. Levy
  • Lydia T. Liu
  • Alex Lombardi
  • Andrés Monroy-Hernández
  • Yuri Pritykin
  • Huacheng Yu
  • Ellen Zhong

Associated Faculty

  • Amir Ali Ahmadi, Oper Res and Financial Eng
  • Christine Allen-Blanchette, Mechanical & Aerospace Eng
  • Maria Apostolaki, Electrical & Comp Engineering
  • Jianqing Fan, Oper Res and Financial Eng
  • Jaime Fernandez Fisac, Electrical & Comp Engineering
  • Yasaman Ghasempour, Electrical & Comp Engineering
  • Chi Jin, Electrical & Comp Engineering
  • Jason D. Lee, Electrical & Comp Engineering
  • Anirudha Majumdar, Mechanical & Aerospace Eng
  • Prateek Mittal, Electrical & Comp Engineering
  • Paul Seymour, Mathematics
  • John D. Storey, Integrative Genomics
  • Daniel L. Trueman, Music
  • Janet A. Vertesi, Sociology
  • Pramod Viswanath, Electrical & Comp Engineering
  • Mengdi Wang, Electrical & Comp Engineering
  • David Wentzlaff, Electrical & Comp Engineering

University Lecturer

  • Kevin Wayne

Senior Lecturer

  • Robert M. Dondero
  • Robert S. Fish
  • Alan Kaplan
  • Christopher M. Moretti
  • Sebastian Caldas
  • Marcel Dall'Agnol
  • Ruth C. Fong
  • Donna S. Gabai
  • Pedro Paredes
  • Iasonas Petras
  • Vikram V. Ramaswamy

For a full list of faculty members and fellows please visit the department or program website.

Permanent Courses

Courses listed below are graduate-level courses that have been approved by the program’s faculty as well as the Curriculum Subcommittee of the Faculty Committee on the Graduate School as permanent course offerings. Permanent courses may be offered by the department or program on an ongoing basis, depending on curricular needs, scheduling requirements, and student interest. Not listed below are undergraduate courses and one-time-only graduate courses, which may be found for a specific term through the Registrar’s website. Also not listed are graduate-level independent reading and research courses, which may be approved by the Graduate School for individual students.

COS 510 - Programming Languages

Cos 511 - theoretical machine learning, cos 513 - foundations of probabilistic modeling (also sml 513), cos 514 - fundamentals of deep learning, cos 516 - automated reasoning about software (also ece 516), cos 518 - advanced computer systems, cos 521 - advanced algorithm design, cos 522 - computational complexity (also mat 578), cos 524 - fundamentals of machine learning, cos 526 - neural rendering (also ece 576), cos 528 - data structures and graph algorithms, cos 529 - advanced computer vision, cos 532 - computer graphics: modeling, cos 533 - cryptography, cos 534 - fairness in machine learning, cos 551 - introduction to genomics and computational molecular biology (also mol 551/qcb 551), cos 557 - artificial intelligence for precision health (also qcb 557), cos 561 - advanced computer networks, cos 563 - wireless networks, cos 583 - great moments in computing (also ece 583), cos 584 - advanced natural language processing, cos 585 - information theory and applications, cos 589 - extramural summer research project, cos 590 - extramural research internship, cos 597a - advanced topics in computer science, cos 597b - advanced topics in computer science, cos 597c - advanced topics in computer science, cos 597d - advanced topics in computer science, cos 597e - advanced topics in computer science, cos 597f - advanced topics in computer science, cos 597g - advanced topics in computer science, cos 597h - advanced topics in computer science, cos 597i - advanced topics in computer science, cos 597j - advanced topics in computer science, cos 597k - advanced topics in computer science, cos 597m - advanced topics in computer science, cos 597n - advanced topics in computer science, cos 597o - advanced topics in computer science, cos 597q - advanced topics in computer science, cos 597r - advanced topics in computer science, cos 597s - advanced topics in computer science, cos 597u - advanced topics in computer science, cos 598 - advanced topics in computer science, cos 598a - advanced topics in computer science, cos 598b - advanced topics in computer science, cos 598c - advanced topics in computer science, cos 598d - advanced topics in computer science, cos 598e - advanced topics in computer science, cos 598f - advanced topics in computer science, cos 598g - advanced topics in computer science, cos 598h - advanced topics in computer science, cos 598i - advanced topics in computer science, ece 532 - safety-critical robotic systems (also cos 572/mae 572), ece 539 - special topics in data and information science (also cos 512), ece 539b - special topics in information sciences and systems (also cos 597p), soc 555 - limits to prediction (also cos 598j), spi 586f - topics in step (also cos 586).

Undergraduate Announcement 2024 - 2025

Computer science, general information, program offerings:, program offerings.

With computation and computer science now permeating all corners of society and the economy, a computer science education has become a good launching pad for almost any career. Core concepts and skills emphasized in the computer science curriculum include theoretical and quantitative analysis of computation; design/engineering principles of advanced computer systems; and foundations and methods of AI and machine learning. The curriculum provides additional flexibility to explore subdisciplines of computer science (programming languages, formal methods, software engineering, computer graphics, information security), or to branch out into exciting cross-disciplinary investigations (neuroscience and cognitive science, computational biology, information policy, robotics, data science, etc.). Most computer science majors enjoy programming. Quite a few start with zero or minimal background and can enhance their skills while progressing through the curriculum.

The plan below applies to the Class of 2025 and beyond; the requirements for the Class of 2024 and earlier are available from the Computer Science Department website and the archived version of the Undergraduate Announcement .

Goals for Student Learning

The following are the key learning goals for a major in computer science:

  • Students will be able to understand, modify, debug, refactor and analyze programs in a variety of different programming languages. 
  • Students will be able to learn new programming languages and computational paradigms they encounter in the future.
  • Students will be able to read and comprehend technical literature in computer science.
  • Students will be able to plan and complete a one- or two-term project in an area of computer science of their choice.
  • Students will be able to identify, isolate and solve important technical subproblems that lead to a solution to a more significant problem.
  • Students will be able to present technical ideas in computer science clearly, both orally and in written form.
  • Students will be able to identify and assess related work in their area of study.
  • Students will demonstrate an ability to work independently in accomplishing all of the above goals.

Prerequisites

The  prerequisites for A.B. students are any one of  MAT 202/204/217 or EGR 154; COS 126 (or ECE 115); COS 217 and 226. Students should plan to take COS 126 in the first year. COS 217 and COS 226 must be completed  before junior year. One or both of these are prerequisites for all later computer science courses.

Admission to the Program

Information for First-Year Students. Students with a general interest in the sciences or engineering are encouraged to take COS 126 in the first year .  This provides useful background for applications work in any science or engineering major and preserves the option of later electing a computer science major.

Program of Study

Departmental requirements.

Course Requirements: Majors must take at least eight departmental courses on a graded basis. These fall into three categories: foundation, core courses, and electives. 

Students must take COS 240 (Reasoning and Computation), to be completed before the end of junior year.

Core Courses

Students must take a total of four courses, one from each of the four categories listed below:

1. Computer Systems :   COS 316 (Principles of Computer System Design) or COS 375 (Computer Architecture and Organization)

Alternatives:

  • COS 318 (Operating Systems)
  • COS 418 (Distributed Systems)
  • COS 461 (Computer Networks)

2. Artificial Intelligence and Machine Learning : COS 324 (Introduction to Machine Learning)

  • COS 424 (Fundamentals of Machine Learning)
  • COS 429 (Computer Vision)
  • COS 484 (Natural Language Processing)

3.  Theoretical Computer Science

  • COS 423 (Theory of Algorithms)
  • COS 433 (Cryptography)
  • COS 445 (Networks, Economics, and Computing)
  • COS 487 (Theory of Computation)

4. Breadth : This category contains courses that either explore another subdiscipline beyond Systems/Theory/AIML or provide experience with real-world applications. Students must complete at least one.  

  • COS 326 (Functional Programming)
  • COS 333 (Advanced Programming Techniques)
  • COS 343 (Algorithms for Computational Biology)
  • COS 426 (Computer Graphics)
  • COS 432 (Information Security)
  • COS 436 (Human-Computer Interaction)
  • COS 448 (Innovating across Technology, Business, and Markets)

Electives 

Students must take three COS courses numbered at the 300 or 400 level (500-level graduate courses do not count as electives). Alternatively, up to two electives may be chosen from a list of approved courses from other departments (see the department website for an up-to-date list).   

Students should consult with a computer science academic adviser on their course selections once they decide to become computer science majors. Academic advisers  are listed on the Department of Computer Science webpage.

Interdisciplinary Studies

The pervasive nature of modern computing has introduced many interactions between computer science and other disciplines. Basic preparation in computer science is valuable for a broad variety of careers because of the computer's central role in society. Professionals who understand computers are far more effective in their work. In the past, a large amount of technical preparation was required before interesting applications could be considered; today's undergraduates can use computers to study important problems in other disciplines.

Some possible areas for interdisciplinary study are mathematics, music, art, economics, electrical and computer engineering, molecular biology, neurosciences and linguistics.

Many Princeton undergraduates view their four years at Princeton as an opportunity to gain an education before immersing themselves in rigorous training for careers in law, business or medicine. Computer science students are no exception. Through the choice of electives, students may create a specialized interdisciplinary program or a broad program with computer science as the core of preprofessional study. The former requires consultation with advisers in the related disciplines to determine what constitutes a reasonable cognate specialization, and the latter is constrained by the requirement of a coherent program of study in the major.

Independent Work

All A.B. majors will engage in  independent work  supervised by a member of the department. IW projects involve the study and solution of specific problems in or related to computer science. These may arise from varied motivations, such as research questions intrinsic to the field; entrepreneurial activities; software design; policy or ethics issues in the tech world; applications of computer science to other disciplines or societal problems. Many students come up with their own IW topics; others may formulate them with help from faculty advisers.

In the fall term of junior year, majors must enroll in a  Junior Research Workshop (JRW) , while simultaneously enrolling in a “Methods” 3xx course offered that term. The Methods course and the JRW complement each other and enable students to write a comprehensive proposal for a spring IW project by the end of the fall term, which can be used for a spring IW project. See the department website  for details.

A.B. junior majors then use the spring term to complete their proposed IW project — or, in many cases, embark on a separate research endeavor for the spring term — through one of the following advising structures:

  • One-on-One Advising. Students complete a project of their choosing while working one-on-one with a faculty adviser. Students may also work within the context of a faculty research project. Students can explore the  Undergraduate Research Topics  for faculty research interests and advisers. 
  • Independent Work Seminars . Students with shared interests around a common theme meet weekly as a group with a faculty adviser. Seminar instructors and themes vary term to term.

A.B. senior majors must complete a full-year senior thesis. The senior thesis may be a study in greater depth of one of the subjects considered in junior independent work, or it may deal with another aspect of computer science and its application. Students can explore the Undergraduate Research Topics for faculty research interests and advisers.

The COS AB Independent Work and Thesis Handbook provides more information about the COS department's independent work and thesis requirements. 

The department also offers a curriculum leading to a B.S.E. degree. The primary differences between the A.B. and B.S.E. programs are in the University requirements for the degree programs.

Senior Departmental Examination

An oral examination, consisting of a defense of the thesis research, will be held in April.

Study Abroad

Become a citizen of the world! Computer science majors are allowed and encouraged to study abroad for a semester or year. The  Office of International Programs  (OIP) manages study abroad programs. See the  Study Abroad Program  page for specific information.

The computer science minor is designed for students who want to combine the study of computing and computers with another academic discipline. The program welcomes students not only from areas that traditionally make heavy use of computation (such as engineering, the natural sciences and mathematics) but also from newer and emerging application areas (such as neuroscience, digital humanities, technology policy, music, visual arts, economics, linguistics and philosophy). Many students find this program an effective way to apply computer science to their own specialties, and to understand how computation and technology are transforming our world.

The key learning goals for a minor in computer science are:

  • To train students in computational thinking and to empower them to deploy computation to solve problems across a variety of application domains;
  • To introduce students to some key subfields within computer science (e.g., artificial intelligence, human-computer interaction, the theory of computation, computer systems, computer architecture, security and data science);
  • To instruct students in the practice of software design and development (e.g., coding, testing, debugging, version control, user-centered design and prototyping).

The minor program is open to all undergraduates (except those majoring in computer science). Students are admitted to the program after they have declared their major and successfully completed both COS 126 and either COS 217 or COS 226.   

Please refer to the computer science minor website for additional details. 

Students are required to take a total of five computer science courses , as detailed below:

  • Core : COS 126 ( or ECE 115) and either COS 217 or COS 226.
  • Electives : Three additional Princeton COS courses at the 200-, 300-, or 400 level, except IW courses (COS 397, 398, 497 and 498). This includes courses cross-listed in COS, regardless of the home department. It excludes graduate courses and courses taken at other institutions. If a student takes COS 217 and COS 226, one of them may count as an elective.

If a student places out of COS 126 (via the COS placement officer ), an additional elective must be taken so that the total number of COS courses is five .

If a student receives a grade of D or F in a course, that course will not count toward satisfying the program requirements. Students may use at most one course taken on a pass/D/fail basis to satisfy the program requirements.

Students may use at most two courses to simultaneously satisfy requirements for this program and their major.

For questions about the program that are not answered in the COS minor FAQ , email us at [email protected] .

  • Szymon M. Rusinkiewicz

Associate Chair

  • Ryan P. Adams
  • Wyatt A. Lloyd

Director of Undergraduate Studies

  • Brian W. Kernighan (co-director)
  • Kevin Wayne (co-director)

Director of Graduate Studies

  • Aarti Gupta (co-director)
  • Kyle A. Jamieson (co-director)
  • Andrew W. Appel
  • Sanjeev Arora
  • David I. August
  • Mark Braverman
  • Bernard Chazelle
  • Adam Finkelstein
  • Michael J. Freedman
  • Tom Griffiths
  • Aarti Gupta
  • Kyle A. Jamieson
  • Brian W. Kernighan
  • Margaret R. Martonosi
  • Radhika Nagpal
  • Arvind Narayanan
  • Ben Raphael
  • Jennifer Rexford
  • H. Sebastian Seung
  • Jaswinder P. Singh
  • Robert E. Tarjan
  • Olga G. Troyanskaya
  • David P. Walker

Associate Professor

  • Zachary Kincaid
  • Jonathan Mayer
  • Karthik Narasimhan
  • Ravi A. Netravali
  • Olga Russakovsky
  • Matt Weinberg

Assistant Professor

  • Parastoo Abtahi
  • Adji Bousso Dieng
  • Benjamin Eysenbach
  • Felix Heide
  • Peter Henderson
  • Aleksandra Korolova
  • Pravesh K. Kothari
  • Amit A. Levy
  • Lydia T. Liu
  • Alex Lombardi
  • Andrés Monroy-Hernández
  • Yuri Pritykin
  • Huacheng Yu
  • Ellen Zhong

Associated Faculty

  • Amir Ali Ahmadi, Oper Res and Financial Eng
  • Christine Allen-Blanchette, Mechanical & Aerospace Eng
  • Maria Apostolaki, Electrical & Comp Engineering
  • Jianqing Fan, Oper Res and Financial Eng
  • Jaime Fernandez Fisac, Electrical & Comp Engineering
  • Yasaman Ghasempour, Electrical & Comp Engineering
  • Chi Jin, Electrical & Comp Engineering
  • Jason D. Lee, Electrical & Comp Engineering
  • Anirudha Majumdar, Mechanical & Aerospace Eng
  • Prateek Mittal, Electrical & Comp Engineering
  • Paul Seymour, Mathematics
  • John D. Storey, Integrative Genomics
  • Daniel L. Trueman, Music
  • Janet A. Vertesi, Sociology
  • Pramod Viswanath, Electrical & Comp Engineering
  • Mengdi Wang, Electrical & Comp Engineering
  • David Wentzlaff, Electrical & Comp Engineering

University Lecturer

  • Kevin Wayne

Senior Lecturer

  • Robert M. Dondero
  • Robert S. Fish
  • Alan Kaplan
  • Christopher M. Moretti
  • Sebastian Caldas
  • Marcel Dall'Agnol
  • Ruth C. Fong
  • Donna S. Gabai
  • Pedro Paredes
  • Iasonas Petras
  • Vikram V. Ramaswamy

For a full list of faculty members and fellows please visit the department or program website.

COS 109 - Computers in Our World (also EGR 109) Fall QCR

Cos 126 - computer science: an interdisciplinary approach (also egr 126) fall/spring qcr, cos 217 - introduction to programming systems fall/spring qcr, cos 226 - algorithms and data structures fall/spring qcr, cos 240 - reasoning about computation fall/spring qcr, cos 302 - mathematics for numerical computing and machine learning (also ece 305/sml 305) fall, cos 316 - principles of computer system design fall, cos 318 - operating systems spring, cos 320 - compiling techniques not offered this year, cos 324 - introduction to machine learning fall/spring, cos 326 - functional programming fall, cos 333 - advanced programming techniques fall/spring, cos 343 - algorithms for computational biology spring, cos 351 - information technology and public policy (also soc 353/spi 351) not offered this year sa, cos 375 - computer architecture and organization (also ece 375) fall sen, cos 397 - junior independent work (b.s.e. candidates only) fall, cos 398 - junior independent work (b.s.e. candidates only) spring, cos 418 - distributed systems not offered this year, cos 423 - theory of algorithms spring, cos 424 - fundamentals of machine learning (also sml 302) not offered this year, cos 426 - computer graphics fall, cos 429 - computer vision fall, cos 432 - information security (also ece 432) spring, cos 433 - cryptography (also mat 473) fall, cos 436 - human-computer interaction fall, cos 445 - economics and computing spring, cos 448 - innovating across technology, business, and marketplaces (also egr 448) spring, cos 451 - computational geometry not offered this year, cos 461 - computer networks spring, cos 484 - natural language processing spring, cos 487 - theory of computation (also mat 407) not offered this year, cos 488 - introduction to analytic combinatorics (also mat 474) not offered this year, cos 495 - special topics in computer science not offered this year, cos 496 - special topics in computer science not offered this year, cos 497 - senior independent work (b.s.e. candidates only) fall, cos 498 - senior independent work (b.s.e. candidates only) spring, ece 206 - contemporary logic design (also cos 306) fall sel, ece 381 - networks: friends, money and bytes (also cos 381) not offered this year, ece 396 - introduction to quantum computing (also cos 396) fall, ece 462 - design of very large-scale integrated (vlsi) systems (also cos 462) fall, ece 475 - computer architecture (also cos 475) spring, mae 345 - introduction to robotics (also cos 346/ece 345/rob 345) fall, mat 375 - introduction to graph theory (also cos 342) spring qcr, mus 314 - computer and electronic music through programming, performance, and composition (also cos 314) fall qcr, orf 363 - computing and optimization for the physical and social sciences (also cos 323) fall/spring qcr, qcb 455 - introduction to genomics and computational molecular biology (also cos 455/mol 455) fall qcr.

Office of Undergraduate Research

Home

Independent Work

J. Wayman Williams Jr.

Junior and senior independent work are defining features of Princeton’s undergraduate education. As a student, you will get the opportunity to work closely with a faculty member on a scholarly project you feel passionate about. Your academic pursuits may lead you to conduct library, laboratory or field-based research, travel abroad to collect data for your project, tackle interdisciplinary questions or dive into creative projects.

Junior Year

Junior year is typically a time when you start to become more intimately acquainted with the methods and practices of your chosen concentration. In the A.B. program, junior independent work may include a single long paper or project, or a series of essays or projects. The Junior Project (or “JP”) serves as a precursor to your senior thesis, a valuable training ground where you will receive detailed feedback from your faculty adviser as you learn to formulate and examine ambitious research questions through the lens of your chosen discipline. B.S.E. departments offer opportunities for independent work as well as design courses and similar practical courses in the junior year.

Senior Year

In the senior year, each A.B. student and most B.S.E. students complete a senior thesis or a substantial independent research project. This capstone project gives you a chance to consolidate your work within your major and more broadly across the liberal arts curriculum as well as pursue original scholarship on a topic of your choice under the regular guidance of a faculty adviser.  Visit the Spotlight on the Thesis page to read featured stories on Princeton-authored senior theses.

Each department, each adviser and each student tailors the thesis process in ways that make sense within the context of a particular discipline and a particular project. At its best, the advising relationship becomes a dynamic and iterative process of learning and assessment as students and faculty members exchange ideas, drafts and data over the course of a year that culminates in the production of an original work of scholarship. Review the list of tips on how to make the most of your advising relationship here.

Campus Resources in Support of Independent Work

Visit the campus resources section of this site to learn more about the many programs Princeton offers in support of undergraduate independent work. We also invite you to consult PURC to learn about and register for upcoming deadlines and workshops .

A number of departments and programs across campus have funding available to support independent work projects. We recommend that you become familiar with the available funds as early as possible to ensure that you take full advantage of the available funding opportunities . 

Independent Work Guides

As independent work requirements vary widely across the University’s academic departments, you may wish to consult the departmental independent work guides to familiarize yourself with the specific goals and expectations of the departments that are of interest to you.

Thesis Archive

Upon completion, your senior thesis will join the senior thesis collection of the Princeton University Archives .

Princeton University

  • Advisers & Contacts
  • Bachelor of Arts & Bachelor of Science in Engineering
  • Prerequisites
  • Declaring Computer Science for AB Students
  • Declaring Computer Science for BSE Students
  • Class of '25, '26 & '27 - Departmental Requirements
  • Class of 2024 - Departmental Requirements
  • COS126 Information
  • Important Steps and Deadlines
  • Independent Work Seminars
  • Guidelines and Useful Information
  • Undergraduate Research Topics
  • AB Junior Research Workshops
  • Undergraduate Program FAQ
  • Minor Program
  • Funding for Student Group Activities
  • Mailing Lists and Policies
  • Study Abroad
  • Jobs & Careers
  • Admissions Requirements
  • Breadth Requirements
  • Pre-FPO Checklist
  • FPO Checklist
  • M.S.E. Track
  • M.Eng. Track
  • Departmental Internship Policy (for Master's students)
  • General Examination
  • Fellowship Opportunities
  • Travel Reimbursement Policy
  • Communication Skills
  • Course Schedule
  • Course Catalog
  • Research Areas
  • Interdisciplinary Programs
  • Technical Reports
  • Computing Facilities
  • Researchers
  • Technical Staff
  • Administrative Staff
  • Graduate Students
  • Undergraduate Students
  • Graduate Alumni
  • Climate and Inclusion Committee
  • Resources for Undergraduate & Graduate Students
  • Outreach Initiatives
  • Resources for Faculty & Staff
  • Spotlight Stories
  • Job Openings
  • Graduate Program

Master’s Degree

Master's degree.

The Department of Computer Science offers two masters-level degree programs: an M.S.E. and an M.Eng. These are two-year, full-time programs that are fully funded . 

All admitted students will initially be enrolled in the Master of Science in Engineering (M.S.E.), thesis-required track. In the spring of year 1, as part of readmission, all students will be given the option to switch to the Master of Engineering (M.Eng.), non-thesis track. Students opting to remain on the M.S.E. track must have a confirmed research adviser and should also have a preliminary thesis proposal. Switching from the M.S.E. track to the M.Eng track will be permitted through January of Year 2.

All coursework must be taken for a grade. A minimum of 4 courses must be taken in year 1. If, due to scheduling conflicts, this is not possible, approval by the Director of Graduate Studies is required. In no event will time to degree be extended beyond two years.

Funding is normally in the form of teaching assistantships covering the four semesters of the program. Summer funding for M.S.E. candidates in the form of a research assistantship may be offered at the adviser's discretion.

Students wishing to continue on for a Ph.D. should apply through the normal application process during the fall of their second year of study.

For Princeton undergraduates interested in continuing at Princeton for a Master's Degree :   There is now a special policy that allows current Princeton students to count up to two courses taken as an undergraduate towards a Master's degree in Computer Science at Princeton. Those two courses must be upper-level COS courses that fulfill requirements of the Master's degree and have been taken in excess of the COS requirements for the undergraduate degree.* For example, if you take ten COS departmentals as an undergraduate at Princeton, and two of them are advanced classes that satisfy requirements of the Master's program, then you can count both towards a Master's degree if you are accepted into the program.  This is a way to reduce your expected time to completion by approximately one semester.

Facebook

Amir Ali Ahmadi Professor of Operations Research and Financial Engineering, Princeton University

Orf 363 / cos 323, f24, computing and optimization, fall 2024, princeton university (undergraduate course).

(This is the Fall 2024 version of this course. You can also access the Fall 2023 ,  Fall 2021 ,  Fall 2020  ,  Fall 2019 ,  Fall 2018 ,  Fall 2017 ,  Fall 2016 ,  Fall 2015 ,  Fall 2014  versions.)

Useful links

  • The course  syllabus  
  • Canvas  (for Q&A, sign up to Ed Discussion via Canvas)
  • Download  MATLAB
  • MATLAB Tutorial
  • Download  CVX  (or  CVXPY  if you are a Python user)
  • Acknowledgments

The notes below summarize most of what I cover during lecture. Please complement them with your own notes. Some lectures take one class session to cover, some others take two.

  • Lecture 1:  Let's play two games! (Optimization, P and NP.) [ pdf ]  
  • Lecture 2:  What you should remember from linear algebra and multivariate calculus. [ pdf ]  
  • Lecture 3:  Unconstrained optimization, least squares, optimality conditions. [ pdf ]  
  • Lecture 4:  Convex optimization I. [ pdf ]  
  • Lecture 5:  Convex optimization II. [ pdf ]  
  • CVX Demo [ cvx_examples.m ] (MATLAB), [ cvxpy_examples.ipynb ] (Python)  
  • Lecture 6:  Applications in statistics and machine learning: LASSO + Support vector machines (SVMs) [ pdf ]  
  • Lecture 7:  Root finding and line search. Bisection, Newton, and secant methods. [ pdf ]  
  • Lecture 8:  Gradient descent methods, analysis of steepest descent, convergence and rates of convergence, Lyapunov functions for proving convergence. [ pdf ]  
  • Lecture 9:  Multivariate Newton, quadratic convergence, Armijo stepsize rule, nonlinear least squares and the Gauss-Newton algorithm. [ pdf ]  
  • Lecture 10:  Conjugate direction methods, solving linear systems, Leontief economy. [ pdf ]  
  • Lecture 11:  Linear programming: applications, geometry, and the simplex algorithm. [ pdf ]  
  • Lecture 12:  Duality + robust linear programming. [ pdf ]  
  • Lecture 13:  Semidefinite programming + SDP relaxations for nonconvex optimization. [ pdf ]  
  • Lecture 14:  A working knowledge of computational complexity theory for an optimizer. [ pdf ]  
  • Lecture 15:  Limits of computation + course recap. [ pdf ]  

Problem sets and exams

Solutions are posted on Canvas.

  • Homework 1:  Optimizing Cub Club, perfect numbers, and a review of linear algebra and multivariate calculus. [ pdf ]  
  • Homework 2:  Image compression and remembering John Conway, local and global minima, positive semidefinite matrices, copositive matrices. [ pdf ], [ conway.jpg ]  
  • Homework 3:   Radiation treatment planning, hands off my paintings, convex analysis. [ pdf ], [ wall_with_paintings.jpg ] MATLAB specific data files: [ treatment_planning_data.m ], [ Circledraw.m ] Python specific data files: [ treatment_planning_data.py ], [ Atumor.csv ], [ Aother.csv ]   
  • Practice Midterms: [ Fall17 ], [ Fall18 ], [ Fall19 ], [ Fall20 ], [ Fall21 ]  
  • Midterm: [ p df ]  
  • Homework 4:  Support vector machines, predicting the outcome of an election, Newton fractals. [ pdf ], [ HWSVM ], [ Hillary_vs_Bernie ]  
  • Homework 5:  New gym for Princeton, orbit of the Earth and daily temperature in NYC, Lyapunov functions. [ pdf ], [ princetoncampus.jpeg ], [ Circledraw.m ], [ plotgrid.m ], [ plotgrid.py ], [ TemperatureNewYork.csv ]  
  • Homework 6:  Theory-application split in a course, minimum fuel optimal control, computing square roots. [ pdf ]  
  • Homework 7:  Nearest correlation matrix, existence of rational solutions to LP and SDP. [ pdf ]  
  • Homework 8:  End-of-semester party at AAA's, Doodle and scheduling, SDP relaxations for nonconvex polynomial optimization, NP-completeness. [ pdf ], [ Party_people_in_the_house_tonight.mat ], [ Doodle_matrix.mat ]  
  • Practice Final Exams (data files on Canvas): [ Fall17 ], [ Fall18 ], [ Fall19 ], [ Fall20 ], [ Fall21 ]  
  • Final Exam: [ pdf ]  

Search button

November 6, 2015

Serena zheng.

Image: img_0761.jpg

Three years ago around this time, I was applying to Princeton, and I had no idea what I wanted to study.

I was, however, pretty set against studying computer science, or "COS," as we call it at Princeton. Despite having taken and enjoyed AP computer science in high school, I had this preconceived notion that all programmers must be nocturnal, anti-social guys who wore flip-flops and hoodies and were permanently glued to their computers, hacking away at code ("The Social Network," anyone?), and that just didn't sound like me.

Yet, after arriving at Princeton, I took two COS classes my freshman year, and they were the most gratifying out of all my classes. I loved being able to solve complex problems and their real applications with my weekly COS programming assignments, and writing clean, clear code that passed all tests on submission was always extremely satisfying. However, the stigma that I associated with becoming a COS major still bothered me, and I remained very undecided about my major at the end of my freshman year.

That summer, I ended up working as a camp counselor at a sports and technology camp, where my campers totally changed my perspective on programming. They were amazed by the fact that they could create their own cool, customized games with some computer code, and their energy and eagerness made me totally re-evaluate my own attitude.

When I returned to Princeton in the fall with my major choice lying right around the corner, I decided to explore the option of becoming a COS major and sought advice in all sorts of forms.

The first person I talked to was Justine Levine, my director of studies at Rocky College, who asked me the most perfect guiding questions: “What kinds of classes would you want to keep taking for the rest of your time at Princeton?” “What kind of independent work would you want to do for your junior projects and senior thesis?” When I thought about it, of all the classes I had taken, I felt like l had always gotten the most out of my COS classes each semester, and I was hungry to learn more. COS seemed to be the right fit, but I had no idea what COS independent work entailed.

At Justine Levine’s suggestion, I met with Professor Brian Kernighan, the COS departmental representative, or “dep rep.” With his kind, reassuring voice and relaxed demeanor, he offered encouraging answers to all of my inquiries about the COS department: Yes, the department is quite flexible, and we encourage students to pursue whatever they want for their independent work. Unlike other majors, where students write papers that are either recycled or filed away in basements, COS projects are often used by the Princeton community, or by an even broader group of people. Plus, the department is super accommodating for students who wish to study abroad! When I left my meeting, I was sure that COS was the best major on campus.

At Prof. Kernighan's recommendation that I meet some like-minded people, I joined Princeton Women in Computer Science (PWiCS), where I met tons of awesome, down-to-earth ladies who had all kinds of cool interests and lives outside of computer science, totally destroying my previous stigma about being a COS major. Their willingness to talk openly and offer advice about classes, internships, and being a female in COS is definitely one of the main reasons why I’m happy to call myself a Princeton Woman in Computer Science .

Now, I can’t imagine my life any other way, which is funny, because three years ago, as a senior in high school, I would have never imagined this — becoming a computer science major or studying at Princeton University. So, I’ve learned my lesson — keep an open mind! You never know what will happen.

Related Articles

PAWS Princeton Advanced Wireless Systems

Senior thesis-resubmission.

No description available


Please direct questions about course enrollment to Colleen Kenny, the CS Department's Undergraduate Coordinator. Ms. Kenny's contact information is provided on this page. The course instructors do not manage the course's enrollment.

Course Description

The practice of programming. Emphasis is on the development of real programs, writing code but also assessing tradeoffs, choosing among design alternatives, debugging and testing, and improving performance. Issues include compatibility, robustness, and reliability, while meeting specifications. Students will have the opportunity to develop skills in these areas by working on their own code and in group projects.

Administrative Information

Tuesdays and Thursdays from 3:00PM to 4:20PM in Computer Science Building 104.

Lead Instructor:

Robert Dondero, Ph.D. : [email protected]

Office hours: Tuesdays from 1:30PM to 2:20PM at https://princeton.zoom.us/j/3195363472 and Thursdays from 1:30PM to 2:20PM at https://princeton.zoom.us/j/3195363472 .

Graduate Teaching Assistants:

Xinran Bi : [email protected]

Office hours: Thursdays from 6:00PM to 6:50PM in Friend Center 010, and Fridays from 3:00PM to 3:50PM at https://princeton.zoom.us/j/5914220794 .

Jiawei (Ambri) Ma : [email protected]

Office hours: Wednesdays from 2:00PM to 2:50PM in Friend Center 010, and Fridays from 11:00AM to 11:50AM in Friend Center 010.

Nimra Nadeem : [email protected]

Office hours: Mondays from 2:00PM to 2:50PM at https://princeton.zoom.us/j/5310001339 , and Tuesdays from 6:00PM to 6:50PM in Friend Center 010.

Jipeng Sun : [email protected]

Office hours: Wednesdays from 4:00PM to 4:50PM in Friend Center 010, and Fridays from 2:00PM to 2:50PM at https://princeton.zoom.us/j/9883765259 .

When you join a Zoom office hour you'll be placed in the waiting room. The instructor will move you into the meeting when it's your turn.

Undergraduate Coordinator:

Colleen Kenny : CS Building 210 : 609-258-1746 : [email protected]

Prerequisites

The prerequisites for COS 333 are successful completion of COS 217 and COS 226.

You must have completed COS 217 successfully before taking COS 333.

It is possible to take COS 226 at the same time as COS 333. However, doing so is a bad idea unless you are a very good programmer. Specifically, doing so is a bad idea unless you received at least a B+ grade in COS 217. If your COS 217 grade was less than B+ and you want to take COS 226 and COS 333 concurrently, then discuss the matter with a COS 333 lead instructor during the first week of the semester.

The course uses these textbooks:

Required Textbook

  • The Practice of Programming , Brian W. Kernighan and Rob Pike, Addison-Wesley, 1999.

That book is available in the Princeton University bookstore and is on reserve in the Engineering Library.

Recommended Textbooks

  • Python in a Nutshell (Third Edition) , Alex Martelli, Anna Ravenscroft, and Steve Holden, O'Reilly, 2017.
  • Flask Web Development: Developing Web Applications with Python (Second Edition) , Miguel Ginberg, O'Reilly, 2018.
  • JavaScript: The Definitive Guide (Seventh Edition) , David Flanagan, O'Reilly, 2020.
  • Beginning Software Engineering , Rod Stephens, Wiley, 2015.

All of those books are available through the Princeton Library as e-books.

Academic Regulations

Please read the Policies , especially those regarding collaboration and plagiarism.

This page was written by Robert M. Dondero, Jr.

Economics JIW - Tips for Choosing a Topic: Home

Choosing a topic.

Choosing a topic that can answer an economic research question is challenging.  Some tips:

  •  Ripped from the headlines rarely makes a good economic paper.  You will be using data to determine causation or correlation.  Sometimes a similar event can be used.  Topics such as artificial intelligence may make a good policy paper but not a good economic one due to lack of data.
  • Literature Review: Your JIW should use primarily scholarly sources.  Start with Econlit (the database of the American Economic Association).  Econlit indexes major journals, working papers, conference proceedings, dissertations, and chapters in critical books. It takes a long time for scholarly literature to appear.   Preprints are called working papers in economics and major ones are indexed in Econlit.  Y ou are your own research team and have limited time.  Many articles are written over a couple of years and involve many people gathering and cleaning the data. Some starting places: see https://libguides.princeton.edu/econliterature/gettingstarted
  • Outside of finance and some macroeconomic data, most data will not have many points in time.  Data determines the methods used .   While a linear regression can be great for time series data, it is likely not what you will use for survey data.
  • Longitudinal or panel study :  same group of individuals is interviewed at intervals over a period of time.  This can be very useful to observe changes over time. Keep in mind when using a long running longitudinal dataset that the panel generally is not adding new participants so may not reflect today’s demographics.
  • Cross-sectional study :  data from particular subjects are obtained only once.  While you are studying different individuals each time, you are looking at individuals with similar demographic characteristics.  Demography is typically rebalanced to reflect the population.
  • Summary statistics : aggregated counts of survey or administrative data.
  • Typically around a 2 year time lag from the time the survey data is collected to the time of release.  The Economic Census and Census of Agriculture take about 4 years for all data to be released.  Many surveys never release the microdata.
  • Very little subnational data is available and is often restricted when available.   State level macro data for the United States is more prevalent.  City level data is often a case study or only available for very large cities.
  • Many micro-level datasets are restricted. It is not uncommon to wait a year before getting permission or denial to use the data.  Each organization has its own rules.
  • Historical data in electronic format prior to 1950 is rare. Most governmental links provide current data only.
  • What is measured changes over time .  Do not assume modern concepts were tracked in the past.  Definitions of indicators often change over time.
  • Data cannot be made more frequent.  Many items are collected annually or even once a decade.  Major macroeconomic indicators such as GDP tend to be quarterly but some countries may only estimate annually. 
  • What exists for one country may not exist for another country. Data is generally inconsistent across borders .
  • Documentation is typically in the native language .
  • Always look at the methodology. The methodology section is one of the most important parts of the paper. Someone should be able to replicate your work. Describe the dataset and its population. Describe how the data was subset, any filters used, and any adjustment methods. While you are likely not trying to publish in American Economic Review  or Journal of Finance , these are the gold standards.  See how they layout the articles and in particular the methodology and data sections.
  • The basic question to ask when looking for economic data is " who cares about what i am studying ?"  Unfortunately, the answer may be no one. Ideally, look for an organization that is concerned with your research as part of its mission. Examples include the International Labor Organization or the Bureau of Labor Statistics focusing on labor research; the International Monetary Fund or the Board of Governors of the Federal Reserve System focusing on monetary and fiscal concerns; the World Bank focusing on development; and the World Health Organization focusing on health. This does not mean these organizations collect data on all topics related to that field.
  • Find a topic for which there is literature and data but allows room to add a contribution.  Topics such as sports and music are popular due to personal interests but may not make good research topics due to lack of data and overuse.

   More tips:

  • Data is typically not adjusted for inflation.  It is usually presented in current (nominal) currency.  This means the numbers as they originally appeared.  When data has been adjusted for inflation (constant or real), a base year such as 2020 or 1990 will be shown.  If a base year is not provided, then data is current and therefore not adjusted for inflation.  If given a choice, choose current dollars.  Data is often derived from different datasets and many will use different base years.  Adjust everything at the end.  It is easier than doing reverse math!
  • While most datasets are consistent within the dataset for currency used such as all in US Dollars or Euro or Japanese Yen or each item in local currency, some will mix and match.  LCU is a common abbreviation meaning local currency units. Consider looking at percent changes rather than actual values.  If adjusting use the exchange rate for each period of time, not the latest one.
  • Economic indicators may be either seasonally adjusted or not seasonally adjusted.  This is very common for employment and retail sales.   Unless something says it is seasonally adjusted, it is not.  Be consistent and note in methodology.

Librarians are here to help!  Librarians can help to devise a feasible topic, assist with the literature search, and choose appropriate data.  Your data may fall into multiple categories.  Think of the primary aspect of your topic in terms of first contact.  Do not email librarians individually.  If unsure who to contact either put all that apply on same email or email just one.  If that person is not the best, they will refer you.  

Bobray Bordelon Economics, Finance, & Data Librarian   [email protected]

Charissa Jefferson

Labor Librarian [email protected]

Mary Carter Finance and Operations Research Librarian [email protected]

Data workshops

  • Environmental and energy data  (Bordelon), 9/23/2024  - 7:30-8:50 pm
  • Health, Crime and other Socioeconomic Data  (Bordelon), 9/23/2024 and 10/02/2024 - 3-4:20 pm 
  • Macroeconomics and trade data  (Bordelon), 9/25/2024 and 9/30/2024 - 3-4:20 pm
  • Finance data  (Carter), 9/23/2024 and 9/25/2024 - 3-4:20 pm
  • Labor and education data  (Jefferson), 9/23/2024 and 9/25/2024 - 3-4:20 pm

Workshops listed twice have the same content and are done as an opportunity to fit your schedule.  While you must attend at least one data workshop, it is wise to attend more than one.  If in a certificate program, with the exception of political economy which has to be incorporated into your JIW, other programs have different requirements which are typically for your senior year.  As an example, if in finance, if you choose not to explore a finance topic this year you will still need to incorporate in your senior theses so try and attend a finance workshop in addition to your topical workshop for your JIW since these are intended to help you for your time at Princeton and both the JIW but also the senior thesis.

  • Last Updated: Aug 28, 2024 9:32 AM
  • URL: https://libguides.princeton.edu/ECOJIWTopics

Princeton University

Dean encourages incoming students to seize opportunities and form strong bonds at princeton.

By Molly Sharlach

August 28, 2024

Students seated at a long table at the welcome lunch.

Members of the engineering Class of 2028 gathered for a welcoming ceremony in the Friend Center courtyard. Photos by Sameer A. Khan/Fotobuddy

Welcoming the incoming engineering class Aug. 26, Dean Andrea Goldsmith called on students to make the most of Princeton’s opportunities, embrace risk-taking, and form strong bonds with faculty members and fellow students.

“I hope that every one of you will take advantage of all that Princeton has to offer its undergraduates, and that you will find yourselves transformed by your experience here and the friends and the mentors you will encounter on your journey to becoming an educated citizen of the world,” said  Goldsmith , the Arthur LeGrand Doty Professor of Electrical and Computer Engineering.

Andrea Goldsmith addressing students at opening ceremony.

“This is a very exciting time to be a student in SEAS,” she added, noting the growth in numbers of faculty, graduate students and undergraduates, as well as new buildings in progress for the School of Engineering and Applied Science.

With a record 459 first-year students, engineering undergraduates represent about 32% of the entering Class of 2028. Around 42% of the first-year engineering students are women, a figure that is well above the U.S. average for engineering undergraduates, said Goldsmith.

Emphasizing the importance of diversity along all dimensions, she said, “The engineering profession needs that diversity of ideas, experiences and perspectives to create the best technology that will change the world for the better.”

Goldsmith said that students would have the opportunity to form strong bonds with engineering faculty members through both coursework and senior thesis research — highlighting the senior thesis and independent work as a unique aspect of engineering education at Princeton.

Four women speaking in a group

She also encouraged students to learn from their peers, both within and beyond the engineering school, and to embrace the breadth of a liberal arts education, “because what you learn will make you a better engineer and a better engineering leader.”

Sharing her own journey to becoming an engineer, a startup founder and an academic leader, Goldsmith told students to take risks and to not be afraid of failure. She also related the challenges she faced as a first-year student that nearly caused her to stop pursuing engineering.

“If you haven’t failed, you haven’t taken enough risks and you haven’t set your aspirations high enough. And I hope that all of you will do that during your time here and beyond.”

Man in sport coat stands at a podium and addresses the audience

Goldsmith said she looked forward to meeting students individually and invited them to share their feedback and perspectives.

“Even as the dean, I continue to supervise and mentor students, and this has always been the very best part of being a faculty member,” she said. “I welcome the opportunity to hear your ideas, learn about your experiences at Princeton, and provide you with my own perspective and experience that might be helpful as you craft your own professional journey.”

Many people at tables under large tent.

Related News

Margaret Martonosi standing outside

Margaret Martonosi on the National Science Foundation and the value of public service

princeton cos thesis

NJ R&D Council honors pioneering contributions by Princeton researchers

A female student floating upside down on a zero-gravity flight, giving a thumbs-up with her left hand and holding a piece of hardware for testing in her right hand.

These Princeton students are raising the bar for accessible satellite technology

Cliff Brangwynne at podium

University dedicates Omenn-Darling Bioengineering Institute at Venture Forward event

Award recipients in a group

Class Day marks achievement, determination and optimism

Brian Kernighan, left, and Claire Gmachl, right

Gmachl and Kernighan recognized for outstanding service and mentorship

Portrait of Andrea Goldsmith

Andrea Goldsmith

princeton cos thesis

Luigi Martinelli

IMAGES

  1. Topic 1: Introduction COS 320 Compiling Techniques Princeton University

    princeton cos thesis

  2. Princeton COS 126 Final Assignment

    princeton cos thesis

  3. Princeton University Thesis Template

    princeton cos thesis

  4. Princeton University Thesis Template

    princeton cos thesis

  5. Princeton University Thesis Template

    princeton cos thesis

  6. How I wrote an A+ thesis at Princeton

    princeton cos thesis

VIDEO

  1. Lancia Thesis Ballett

  2. Frisco & Felicia-23 Felicia Moves to Port Charles: We're having a party!

  3. Stephen

  4. CS 3001 Unit-1 Computational way of Thinking By Minakshi Panwar

  5. 8. Find the domain and range of the function. Write your answer in interval notation. F(t)=3+cos⁡2t

  6. Scott explains the thesis he wrote for Alonzo Church on proof in infinite dimensional geometries

COMMENTS

  1. Independent Work & Theses

    The goal of undergraduate research and independent work (IW) in Computer Science is to serve as a synthesizing experience in which undergraduates work on significant research or design projects. Given the broad diversity of intellectual problems in Computer Science, and equally broad possibilities regarding future career trajectories, the style ...

  2. Important Steps and Deadlines

    If you select an adviser who has not advised COS projects before, it is a good idea to also have a COS department co-adviser. Senior Thesis. The senior thesis project is intrinsic to a Princeton eduation and provides students the opportunity to take a deep dive into a research topic of particular interest.

  3. Guidelines and Useful Information

    Like AB senior theses, a BSE senior thesis will take 2 semesters and the final report is expected to be about twice as long as an ordinary single-semester Independent Work project. Note that on your fall transcript you will receive a "INC" for COS 497 and this will be changed to your thesis grade when COS 498 is completed in the spring.

  4. Computer Science

    The Master's degree at Princeton is a two year, full-time program. All admitted students will initially be enrolled in the Master of Science in Engineering (M.S.E.), thesis-required track. ... After being graded, a PDF of the thesis should be uploaded to Princeton's ETD Administrator site ... Three COS courses from the following list: COS 475 ...

  5. Undergraduate Research Topics

    Advisees typically have taken one or more of COS 226, COS 324, COS 423, COS 424 or COS 445. Pravesh Kothari, Room 320. Available for single-semester IW and senior thesis advising, 2024-2025. Research areas: Theory; Amit Levy, Room 307 . Available for single-semester IW and senior thesis advising, 2024-2025

  6. PDF COS BSE IW Handbook for MSCHE Re-Accreditation

    Click the "Submit File" button next to "Oral Presentation" in the "Manage your independent work" section of the IW portal. Click the "Browse" button to upload the file from your computer. Click the blue "Submit" button at the bottom of the page. Email a ZIP file with your slides to your adviser.

  7. Computer Science

    The COS AB Independent Work and Thesis Handbook provides more information about the COS department's independent work and thesis requirements. ... Electives: Three additional Princeton COS courses at the 200-, 300-, or 400 level, except IW courses (COS 397, 398, 497 and 498). This includes courses cross-listed in COS, regardless of the home ...

  8. Senior Thesis

    Senior Thesis Subject associations. COS 984. Term. Spring 2023. Instructors. Staff. View additional details for Senior Thesis. Registrar description. Footer. Princeton Advanced Wireless Systems Lab 35 Olden Street Princeton, NJ 08540 USA. Department of Computer Science School of Engineering and Applied Sciences.

  9. PDF COMPUTER SCIENCE INDEPENDENT WORK

    Required for all thesis students and all first-time BSE students. Logistics: Slides due in IW portal on April 18, 11:59pm EDT Oral Presentations Week, April 1822- Set up a time to present live (in-person or via Zoom) to your adviser. If your adviser is outside of the COS department, schedule a time to present

  10. M.S.E. Track

    April 29, 2024: Thesis due date to Adviser, Reader, and Department ([email protected]) May 7, 2024: (Dean's Date): students can re-submit thesis to Adviser, Readers, and Department with revisions for final archiving May 8, 2024: Thesis grades (Pass/Fail) due to Department from Adviser

  11. COS Departmental Requirements

    COS Departmental Requirements - (Starting with the Class of 2025) With computation and computer science now permeating all corners of society and the economy, a computer science education has become a good launching pad for almost any career. Core concepts and skills emphasized in the computer science curriculum include theoretical and quantitative analysis of computation; design/engineering ...

  12. Undergraduate Program

    Independent Work & Theses; Undergraduate Program FAQ; Minor Program; Funding for Student Group Activities; Student Life; Jobs & Careers; ... Room 211, Computer Science dpw (@princeton.edu) COS Majors, Transfers out of COS. Brian Kernighan Room 311, Computer Science bwk (@cs.princeton.edu) COS Pre-majors, COS Non-majors, Transfers in to COS ...

  13. PDF JENNIFER LAM

    Thesis: Towards Exploiting Skew in High Throughput Distributed Databases ... • Princeton Women in STEM Executive Leadership Board 2020-2021 ... o COS 418: Distributed Systems, (Fall 2022, Fall 2019) o COS 226: Data Structures in Java (Spring 2023)

  14. Independent Work

    Independent Work. Junior and senior independent work are defining features of Princeton's undergraduate education. As a student, you will get the opportunity to work closely with a faculty member on a scholarly project you feel passionate about. Your academic pursuits may lead you to conduct library, laboratory or field-based research, travel ...

  15. Declaring Computer Science for BSE'28 Students

    Step 1. Attend the BSE SEAS Open House — the Open House date will be announced in January 2025/. Step 2. Review Fall 2025 COS course offerings — these are available on the registar's website. Step 3. Contact your adviser — April 2025 is your academic advising period. Once you have completed your Academic Planning Form and declared COS as ...

  16. PDF Topic 1: Introduction

    COS 320 Compiling Techniques Princeton University Spring 2018 Prof. David August. 2 ... At Princeton (Computer Science, 1999-Present): • Professor ... • Thesis Topic: Predication • The IMPACT Compiler Research Group . 24 Who Am I? Professional Experience: • Intel (Oregon) -P6 multiprocessor validation • Hewlett-Packard (San Jose, CA ...

  17. Master's Degree

    The Department of Computer Science offers two masters-level degree programs: an M.S.E. and an M.Eng. These are two-year, full-time programs that are fully funded . All admitted students will initially be enrolled in the Master of Science in Engineering (M.S.E.), thesis-required track. In the spring of year 1, as part of readmission, all ...

  18. ORF 363 / COS 323, F24

    Undergrad Theses; Service; Presentations; Software; Designs; Old Projects; Personal; ORF 363 / COS 323, F24 Computing and Optimization Fall 2024, Princeton University (undergraduate course) (This is the Fall 2024 version of this course. You can also access the Fall 2023, ...

  19. Why COS?

    Why COS? November 6, 2015. Serena Zheng. Three years ago around this time, I was applying to Princeton, and I had no idea what I wanted to study. I was, however, pretty set against studying computer science, or "COS," as we call it at Princeton. Despite having taken and enjoyed AP computer science in high school, I had this preconceived notion ...

  20. Senior Thesis-Resubmission

    Senior Thesis-Resubmission ... COS 988. Term. Spring 2023. Instructors. Staff. View additional details for Senior Thesis-Resubmission. Registrar description. No description available. Footer. Princeton Advanced Wireless Systems Lab 35 Olden Street Princeton, NJ 08540 USA. Department of Computer Science School of Engineering and Applied Sciences.

  21. COS 516, Fall 2024: General Information

    Administrative Information. Lectures: Mon Wed, 11:00am--12:20pm ET, Location: TBD Professor: Aarti Gupta (aartig), CS Building 220, 258-8017 Office Hours: TBD; Teaching Assistant: Mike He (dh7120) Office Hours: TBD; Graduate Coordinator: Nicki Mahler (ngotsis), 131 Friend Center, 258-5387 Prerequisites: COS 226 and COS 326 (or equivalent programming experience)

  22. COS 333, Fall 2024: General Information

    However, doing so is a bad idea unless you are a very good programmer. Specifically, doing so is a bad idea unless you received at least a B+ grade in COS 217. If your COS 217 grade was less than B+ and you want to take COS 226 and COS 333 concurrently, then discuss the matter with a COS 333 lead instructor during the first week of the semester.

  23. Economics JIW

    As an example, if in finance, if you choose not to explore a finance topic this year you will still need to incorporate in your senior theses so try and attend a finance workshop in addition to your topical workshop for your JIW since these are intended to help you for your time at Princeton and both the JIW but also the senior thesis.

  24. Princeton Engineering

    Goldsmith said that students would have the opportunity to form strong bonds with engineering faculty members through both coursework and senior thesis research — highlighting the senior thesis and independent work as a unique aspect of engineering education at Princeton. Dean Goldsmith spoke with students after the event.

  25. Nelson Group -- Alumni

    Thesis: Using tumor models to investigate the effects of intratumoral heterogeneity and dietary conditions on tumor progression ... Princeton University: Tevyur Mosley (research specialist, 2021-2023) currently: Ph.D. student, University of Maryland Amira Pavlovich (research specialist, 2008-2014) ... Benjamin Spar (COS senior thesis; B.S.E ...

  26. Princeton police officer and suspect hurt in early morning shooting

    PRINCETON, Texas - A police officer in the Collin County city of Princeton was shot early Thursday morning after being attacked by a suspect.. The Princeton Police Department said it happened ...