CS/ECE 374A fa24: Frequently asked questions


Q: How to draw a DFA/NFA?

You are of course welcome to just use free form drawing by using a pen and a paper, but if you want nicer looking results, here are a few options:

Q: How to get DRES accommodation for homeworks and exams?

We believe that DRES accommodations are important, and we are happy to facilitate them. In particular, we encourage you to ask for such accommodations if you need them.

To this end, please email the instructors in the class your LOA (letter of accommodation) from DRES. Usually, accommodations for exams are done via DRES - you would need to allocate a slot with DRES for taking the exams.

Accommodations in detail:

  1. Exams: For any accommodations, you have to take the exam with DRES. You have to allocate a slot to take the exam with DRS. It is a good idea to do the scheduling two weeks before the exam. Schedule the exam in time *after* the class had taken the exam.
  2. Homeworks:
    1. We do not provide make up assignments.
    2. If you have DRES accommodation for homework, you can submit your homework up to 24 hours later. To do so, please email the pdf of your homework to the appropriate TA. We expect people to use this late submission rarely, on need basis, as stated in such LOAs. No submission would be accepted once the solutions to the homeworks are released.

Explanation: These letter usually say "These accommodations are not intended to substantially alter the nature of the course." However, we are trying to release the homework solutions in a timely fashion (i.e., 24 hours after the deadline) so that:


Q: Syllabus for the class?

The official course description is here. The unofficial (but potentially more useful) description is here.

When would discussion section solutions be posted?

A: The solutions, for the week discussion section, would be posted every weekend (hopefully) by Sunday morning.

Do we need to provide pseudo-code when describing an algorithm?

No (unless we explicitly ask you to provide it). But it is highly recommended - done correctly it gives us another way to verify your algorithm is correct. There are however many cases where pseudo-code does not provide clarity, and in such cases it is not helpful. Use your common sense.

Why do we need to provide pseudo-code when describing dynamic programming solution?

We only ask for the explicit iterative code for the DP, and there are several reasons:
  1. The iterative algorithm is much faster (first column [marked DP] in the table below):

    Yes. It is only a constant factor, but it is a significant constant factor.
    (Table taken from lecture slides.)

  2. This is what you need to know. Not only for this class, but more importantly to get a job - if you do a job interview and you solve something using DP, they would expect you to write code that uses loops and solves the DP. You need to practice doing it so you can do it.

  3. As usual, in the exams, if we want pseudo-code, we would explicitly ask for it (we probably wouldn't, unless we think it makes it easier [sometimes it does]).

Q: How do algorithmic questions with stated running time are graded?

For such questions, your solution should be correct (as usual), but the algorithm you present must run in the stated time or faster. If it is slower, then it would got no partial credit, and is an automatic 0. The policy is a bit draconian, but usually it reflects that getting a worse running time is usually trivial and uninteresting, and fails to demonstrate a mastery of the material.

Q: How do algorithmic questions asking for an algorithm as fast as possible are graded?

This means that you should do a best effort - namely, you should try to come up with an algorithm with reasonable running time - considering the material seen in class. In some cases, the problem might have ridiculously clever/complicated algorithms that achieve even faster running time than what we expect, but such solutions are neither necessary, nor wanted. Naturally, we are interested in an efficient algorithm - so an exponential time algorithm always worth no points. A polynomial time algorithm slower than the expected solution would give you some credit, as long as it is better than the naive solution. In some cases, the naive solution is so obvious that it would give you very close to no points on the question.

Q: Why don't you tell as the required running time?

Several reasons:
(A) If we state the running time, we get submissions that claim to achieve the running time, independently if they are even remotely correct, or achieve the claimed running time. It is a waste of everyone time!
(B) Figuring out the right running time is part of the problem. Sometime stating the running time is a very strong hint how the problem should be solved.
(C) Sometimes problems have multiple solutions, where one can get even faster running time than required (even without a major effort). We do not want to discourage such solutions.

Prairie Learn

  1. Q: What parts of PrairieLearn count towards the course grade?
    A: Only the Guided Problem Sets (GPS') are required for course credit. The additional exercises available are for practice.

  2. Q: When will new GPS' be posted?
    A: At least a week before the deadline. The usual deadline will be Tuesdays at 10AM CST. This may change depending on where holidays fall.

  3. Q: What is the grading scheme for PrairieLearn?
    A: Each question in each assessment in PrairieLearn is graded by taking the best submission before the deadline. You have unlimited submissions on all questions.

  4. Q: What order do I need to complete the questions in an assessment?
    A: It is strongly recommended that you complete the questions in-order, as later questions depend on the answers for earlier ones, though not always strictly required. Some assessments may require completing questions in-order before you can progress. This will be clear from the individual assessment page, so make sure to plan accordingly.

Last modified: Mon 2024-10-21 20:55:02 UTC 2024 by Sariel Har-Peled