5 Placement AFQ
Q: Can I request an override into 0190?
No, the only way to get into 0190 is through the placement. This is both out of fairness to everyone, and because there is important material in the placement that I need to make sure students know (and very often isn’t covered by other preparation). The placement gives all students a uniform vocabulary and knowledge at the start of 0190.
Q: Can I join the placement if it’s already begun?
Yes, you may; you don’t have to reach out to us, just start turning in your
work. The only rule is you have to finish it before the final due date (read on
to understand what the due dates mean). After the final due date we close the
process. All of us staff have other tasks to tend to, so we can’t re-open it
for individuals—
Q: Are there any prerequisites?
No, by design. We’ve noticed that there is no computing background that more than 1/3 of the placement students have, so any prerequisite we expect would be unfair to 2/3 of the students. More broadly, the goal of coming to college is to learn new things, not just to demonstrate what you previously know. We have therefore designed a process that lets you learn and demonstrate learning.
Q: Should I do anything now to prepare for the placement?
No, you don’t have to do anything.
Q: Will it be self-contained?
Yes! In general, none of our introductory computer science courses expect you have had any prior computer science!
You can start reading any time you want: Readings. You can also self-test: Self-Testing.
Q: Do I actually need as much time as we’re being given?
Some of you are learning programming for the first time. That’s not easy; it takes time. We want you to have a fair shot at this.
Even if you’ve programmed before, we’re expecting you to do so in a somewhat different fashion from what you’ve seen. That will introduce a bit of a learning curve.
Many of you have other things going on in the summer.
Q: What do I need to turn in work?
All work will be turned in using Gradescope: see Registration. You do not need a Brown account to submit; therefore, RISD students can also submit without having a Brown account.
Q: What do the grades on Gradescope mean?
Nothing.
Well, almost nothing.
Gradescope insists on assigning numbers to everything (a common mistake that computer scientists make, and guess who built Gradescope). This doesn’t match the grading processes we like to use in this course. Since we can’t win this fight with Gradescope, we simply compute a percentage based on how many tests you passed, and report that back to you. In general, a grade of 100 of course means you passed all the tests, but we will also be checking your code for quality (against the Design Recipe), which means you could end up with less than a perfect score even if Gradescope gives you a 100. So don’t be mislead by that number.
Q: How is work weighted?
We don’t publish hard weights and cutoffs, because we want to have the flexibility to adjust them based on how students perform in aggregate. For instance, when we add brand new material, we may not always correctly judge how students will fare. Instead, we adjust our expectations up or down depending on how it went.
When the placement is done, we will give you one of three grades. If you did really well, we’ll give you an A. If your work was solid but we have some concerns, you’ll get a B. Otherwise, we will regrettably inform you that based on the quality of your work, 0190 is not the right course, and you are better off in one of the other introductory courses.
Note that these “grades” are only for placement decision-making. Once the semester begins, everything is reset and you start from a clean slate. Therefore, your performance on placement affects your ability to get into the class, but has no impact beyond that.
Q: Do you have any advice on asking questions on the forum?
Yes!
One common trait we’ve noticed from past summers is this. Those coming directly
from high school, in particular, are often accustomed to asking questions
instead of re-reading the problem statement; teachers, ostensibly with a desire
to be “helpful”, answer these questions—
Therefore, before you post, re-read the assignment. There’s a very good chance that you missed a detail in the wording!
Of course, you may still think there’s an issue: the prompt might be ambiguous, wrong, incomplete, or inconsistent. (This happens much less often than you think.) In each case, you should be able to (a) identify which of these is the problem, and (b) ask a crisp question that explains why (e.g.: if you think it’s ambiguous, you should be able to describe an input that reveals this, and point to text(s) in the assignment that provide multiple readings). This is a key skill you need to develop in your progression as a programmer, so we’re expecting you to start working on it here.
You may worry that this sounds like a big ask, and this may discourage you from trying. Don’t be discouraged. You may not get it right, of course; but we do want you to try. We respect your attempt and will help you get better: it’s part of what we do as educators.
Q: What do the “due” dates mean? What are the actual deadlines?
We want to accommodate a variety of summer schedules. At the same time, we don’t want to be in a constant state of grading ourselves (since we also have other, full-time work in the summer). Therefore, most assignments have (soft) “due” dates, but there is one (hard) final due date for all of them.
All work is technically only due by the listed final date. If you can’t meet
the earlier, “due” dates—
However, if you only turn everything in at the end, you may fare poorly. You may have made mistakes on earlier assignments that, given feedback, you could have fixed in later ones.
Therefore, most assignments have a soft “due” date. If you turn in your work for that assignment by that date, we will give you feedback soon after. You will then be able to use this feedback to improve your performance for the next submission. If you miss the “due” date, there is no guarantee you will get feedback on that assignment until after the final hard deadline.
Note that once you have gotten a grade for an assignment, you cannot turn it in again. In particular, you cannot use the soft due date to turn it in, get a grade, then use that feedback to turn it in again by the hard due date. You have to show improvements in the next assignment instead.
In short, in the best of Brown traditions, we leave it to you to
decide how you want to structure your summer. You do not need
to inform us about your plans. Since the “due” dates are soft, you
don’t need to ask for an “extension”—
Note that this late policy applies only during the summer. There is a completely different policy once the semester begins.
Q: What do I do if I miss a soft “due” date?
You don’t have to tell us anything. Just turn it in whenever you can, and do so by the final due date.
Q: You say the final due date is firm. Is it?
Yes! No exceptions! We’re telling you this up front so you can plan ahead.
Q: Can I submit work early?
Yes. Any time after an assignment becomes public, you can submit solutions. However, we will not look at your work (or provide feedback) until the soft due date.
If you post questions on the forum, please make sure you pick the correct tag, to avoid confusing students who are in earlier homeworks with questions about later ones.
Q: Will the placement process be effective in helping me decide which class to take?
We believe so. It’s based on past placement activities that have been found helpful through both qualitative and quantitative checks as well as student input.
However, some students find that the pace and intensity of summer placement is much less than that of the course. This is by design: you are presumably doing other things in the summer and not trying to take a challenging computer science course in addition. Therefore, you can expect the course to be more demanding than the placement.
Q: Does the placement require prior knowledge of computer science?
No. By design, it assumes no prior knowledge. Every year students who have had no prior exposure to CS get into the class and do well in it. This is a test of what you can learn here, not a test of your prior knowledge.
Conversely, prior knowledge may even get in the way. We will expect you to program in a particular way that probably doesn’t match what you’ve done before. If you decide you “already know everything” you probably won’t pay attention to this, and may very well fail to place into the course. This too happens every year.
Q: If I don’t want to continue with the placement process, what do I need to do?
Nothing! We simply assume that anyone who hasn’t turned in all the placement
work by the deadline is no longer interested. We don’t do any additional
bookkeeping, so you don’t need to tell us or explain yourself. You are welcome
to stay on the forum if you’d like, or unsubscribe—
Q: Help! I didn’t do well on one of the problems! What do I do now?
Keep calm and carry on (with the problems). We find that students stop doing them too early when they should have kept going. We care about your overall progression, so if you can pick up your performance, that’s fine. Don’t panic, all is not lost!
Q: Why are you so insistent on how functions are called, filenames, etc.?
For every assignment, part of your work will be “auto-graded”, which means that we will run programs that grade your programs. (If you really want, you can even see the code here.) Computers are dumb. So if you don’t follow our instructions precisely, the auto-grader will get confused, and say your program is incorrect. You will be sad when that happens.
Real-world software development depends on you following specifications precisely.
When you ship real software, you don’t get do-overs.
We’re busy.
Q: The Design Recipe looks complicated. Do I have to follow it?
Precise signatures.
Clean purpose statements.
Good examples/tests of the functions.
A function body that follows what the book says.
Starting with the second placement work, you will even be graded on the quality of how well you do the above steps.
However: You don’t need to write a template. Use them if you find them useful, but you don’t need to provide them.