COS 240: Reasoning about Computation

Princeton University · Spring 2026

Frequently Asked Questions.

This F.A.Q. is under construction. Click on a question to expand.

Enrolling in the course

❓ I joined the course late, due to the Princeton shopping period. Is it possible to get an extension on the current Assignment since I did not have enough time to work on the assignment as other students?

We understand that joining the course late can make the initial workload feel more challenging.

That said, assignment deadlines apply equally to all students, including those who enroll late. Furthermore, the "shopping period" is provided so that students have the opportunity to find out more about courses they are interested in without paying extra. However, this should not be misinterpreted as permission to delay your active involvement in courses without the usual consequences. Thus, we are not able to grant an extension.

We encourage you to submit the assignment by the posted deadline and do the best you can with the time available. If you have questions about the material or would like guidance as you catch up, please feel free to attend office hours or reach out to your Preceptor for help.

❓ I want to switch precepts/enroll in the course but there is no enrollment space. What should I do?

Firstly, please keep in mind that during the "shopping period" some students leave the course. That might create openings in precepts and if you keep an eye at the enrollment numbers, you might be able to enroll yourself into a precept that has space. This is the best way to resolve this issue.

If you find yourself entering the 2nd week of classes and you still have not enrolled yourself in the course, please make sure you contact the Undergraduate Program Manager, Coleen Kenny-McGinley. See the Home page for contact information. The course's teaching staff do not manage enrollment or precept assignments.

❓ I do not have access to the course's message boards. What should I do?

If you are officially enrolled in the course, please make sure you have read the Message Boards section of the Course Policies carefully. If you have followed any and all instructions there and you still can not access the message boards, please contact your Preceptor (see Homepage). Your Preceptor should be able to add/invite you to the course's message boards.

In general, if you are not officially enrolled in the course, you will not be granted access to the course's message boards.

An exception to the above rule, is if you are not officially enrolled in the course, but you are "shopping" the course during the "shopping period". In that case, please contact Iasonas Petras and you will be added to the course's message boards until the end of the shopping period. However, if you are not officially enrolled in the course by the end of the shopping period, you will lose your access to the course's message boards after the end of the shopping period.

Preparing for the course

❓ What background knowledge is assumed for this course?

You are expected to have completed MATH 202 by the time you enroll in the course. This implies that even though experience with mathematical proofs is not required, you are expected to be confident in the following

  • Basic algebra and notation. Work with algebraic expressions, equalities, inequalities, and using standard mathematical notation.
  • Logical reasoning. Even though formal background in proof writing is not expected, you should be able to understand even in an intuitive way how to construct logical arguments.
⚠️ I am not "confident/good" with Math. What is the best approach for me to do well in the course?

Firstly, it would be important to understand why you believe that you are not "confident/good" with Math. Is it because you have taken Math courses in the past and did not perform well on them? Or maybe is it because you have discussed with many students and most of them share negative experiences with math-based courses? Maybe both?

✅ Proof based Math is very much like learning a new language. Try to approach this task with an open mind, regardless of previous experiences with Math courses or information you may have received based on others' experiences. Keep in mind that

  • Struggling with the course material at the beginning of the course (or even in some cases later) is expected. This is a necessary step to become competent in writing proofs. Overcoming such obstacles reinforces your understanding of the material and provides experience in dealing with such situations; both are invaluable aspects of learning.
  • The more you practice writing proofs, the more confident you will become in this task. The more confident you become in writing proofs, the more competent in this skill you actually are (and vice versa).
    Progress in Writing Proofs
    $$\text{Practice Writing Proofs} \rightarrow \text{Confidence in Writing Proofs} \leftrightarrow \text{Competence in Writing Proofs}$$
    You will have a lot of opportunities to practice writing proofs throughout the semester.
  • You should not take the course with the expectation that it will be "easy". Most likely, the course will be challenging, but it will be very manageable if you build the appropriate studying habits. Furthermore, the course feels very rewarding at the end of the semester, given the progress students typically make.

Questions related to Assignments

❓ The course policies state that I have to submit my assignment solutions typed. This might take me a lot of time. Why not submit them handwritten?

Typing the solutions makes them easier for the course staff to read. There is much less ambiguity this way. Furthermore, this course provides a good opportunity for students to learn how to use LaTeX for typing the assignment solutions, a skill that can save a lot of time when typing math.

In all cases, handwritten solutions will not be accepted.

❓ How should I approach the assignments?

Being organized and following a systematic approach when you work on assignments is imperative. We suggest the following process:

  • Start by spending some time reviewing the relevant course material (lecture and precept material as well as the readings). This is a very important step; do not start working on assignment problems without understanding the underlying theory! Try to finish with this step at least 6 days before the deadline.
  • Read carefully each of the problem statements in the assignment. For each problem, write down what is known to you and what is asked. Double and triple check the problem statements to make sure that you did not miss any details or misunderstand something.
  • Start working on each problem by trying a proof technique. If you are stuck/does not work, try another technique. Go back and forth and double check everything you wrote, in order to make sure you did not miss a key idea. Struggling with solving problems is a part of learning, it helps build problem-solving and proof-writing skills and develops independence and critical thinking, so allow yourself some time to think deeply about the problem and each approach you tried. Everyone experiences struggling with mathematical problems, even very experienced mathematicians.
  • Visit office hours to discuss any questions you might have on the problem set. Keep in mind that Graduate TAs and Lab TAs will ask to see and discuss your progress on the problem. If you have very little to no progress, it is very likely that they will not be able to provide meaningful help. It is up to you to use office hours efficiently.
  • Try to finish solving all problems in the problem set at least one day before the deadline. This will allow you enough time to properly type your solutions to the problem set and submit before the deadline. Do not underestimate the time it will take you to type your solutions.

❓ I completed my proofs for the assignment, but I am not certain whether they are correct or not. Can I ask from the course staff to take a look at my proofs and let me know if they are correct? "

Office hours are a great place to ask questions and discuss ideas, but they are not intended for reviewing completed proofs to determine whether they are correct.

Firstly, given the limited time during office hours, it wouldn't be possible to effectively pre-grade proofs for individual students. More importantly, a central goal of this course is for you to develop the ability to read your own proofs critically, identify gaps or errors, and revise them independently. Building this skill is an essential part of learning how to write rigorous proofs and is something we want to prioritize for everyone in the class.

That said, you are very welcome to attend office hours to ask specific questions, for example, about definitions, theorems you're using and in general discuss details of your proof.

Questions related to the Final Exam

❓ When/Where does the Final Exam take place?

Please see Princeton Final Exam Schedule.

❓ How should I prepare for the Final Exam?

It is always important to remember that preparing for the final exam is a semester-long process. Complete your readings on time; study theory, practice solving problems through Assignments, lecture and precept problems and problems listed in the textbook. If you maintain these habits, revisiting the course material for the final time before the exam becomes a straightforward process.

  1. Review the Lectures. Simply reading the lecture slides is not the correct way to approach this. Go through the lecture material and when you encounter a theorem or a problem, write the proof/solution on your own, keeping the proof/solution we provide hidden. Afterwards, compare what you wrote with the provided proof/solution.
  2. Review the Precepts. Your approach when reviewing the precept material should mirror the suggested process for the lectures (see above).
  3. Revisit the Assignments. Go through your solutions, the assignment solutions provided by the teaching staff this semester and revew the feedback the graders provided.
  4. Review the readings/textbook.
❓ Should I memorize theorems/formulas in preparation of the final exam?

The course is not about memorization. In general, you should study to understand the material, not to memorize.

On the other hand, during your studies you will use mathematial expressions/theorems so often that you will inadvertently remember some of them by heart. This kind of memorization, namely one that is a side effect of understanding concepts deeply, is welcomed.

Furthermore, sometimes memorization helps some students during exams. For example, it might save them some time.

Overall, keep in mind that any advanced formulas, expressions or theorems that we believe you might need for the purpose of completing the exam, will be provided by us in the day of the exam (see also Final Exam rules). We hope this information helps you make a decision on how to study.

Other Questions

❓ How does success in this course look like?

Success in this course is not entirely reflected by grades. Even though grades is one component of success, there are other measures of success that are very important.

  • Improvement on mathematical reasoning and proof-writing. By the end of the course, our hope is that you will have massively improved those skills. Your proofs may not be perfect, but you should feel confident in writing unambiguous proofs with proper structure, logic and rigorousness.
  • Confidence in your ability to face difficult problems. Your continuous exposure to mathematical proving techniques and approaches will enhance your confidence when dealing with such problems. Being persistent in your approach and insisting to try different methods and ideas is a core skillset of any student that succesfully completes the course.
  • Critical thought. During your involvement in the course, you will learn how to evaluate your own solutions, identify mistakes or logical jumps and resolve any issues in your proofs.