6 Placement 1
6.1 Read This First
For most of you, this is your first experience with college. Welcome!
Depending on your prior educational experiences, some things may feel different. You will, for instance, be given detailed assignments. You are expected to read them in full, and to take responsibility for what is in them.
As a very concrete example, the assignments will tell you something about what language to use. Every year, several students fail to read or follow these instructions (or think they’re just too cool for them). Every year the outcome is the same: this fails the grading software, they get a zero, and they don’t get a “do over”. In the extreme, this can even affect their ability to get into the course.
First and most importantly, we are preparing you for the professional world. This is a constant theme in the course: we ask you to hold yourself to high standards in everything you produce. Take pride in your work! When you put software into the world, for instance, you don’t get do-overs; mistakes have consequences. So we start modeling that here.
Second, the time we have allocated to the course we want to spend on people who actually merit the help. The time spent compensating for your mistakes is time we can’t spend on students who genuinely need help or have real questions. We want to spend time on the latter. Giving you do-overs is really not fun for us.
Finally, as a very practical matter, we are all busy with many responsibilities; we don’t have the time to keep re-grading things, revisiting prior grading, etc. As the saying goes, “you get one shot at eyeballs”, including ours. Especially during summer placement, everyone associated with the course is already doing a separate full time job. Some of this is (effectively) volunteer work!
For similar reasons, when you post questions, our answers will tend to be short and to the point. We aren’t trying to be rude; we’re just all busy and want to get to the point.
6.2 Language and Software
For the placement process, you will be using the Racket programming language. Follow the link to download Racket. Installing it will also install the DrRacket programming environment, in which you can write and run your programs. The first part of the reading (see below) explains how to use DrRacket.
For the following assignment, you must use Racket’s Beginning Student language. Go to the Language menu, select Choose Language, and pick the language from the Teaching Languages section.What are these languages? Racket is a large, complex, industrial language. Therefore, the book’s team has defined small, clean sub-languages of Racket for the purposes of teaching. These sub-languages both remove a bunch of features and libraries, focusing just on the parts you need at each stage, and give much more helpful error messages.
6.3 Questions
If you have questions, use EdStem (see Registration).
You will be goverened by the Brown Academic Code.
If you have prior programming experience, you may find this assignment quite easy. That’s because the assignments are designed so even students who haven’t had access to a computing course before can still have a fair shot at trying out. The assignments will grow in complexity, so you may well find yourself wanting to use EdStem later.
6.4 Library
(require 2htdp/image)
6.5 Reading
Read the Prologue of HtDP 2/e. You won’t need all the content of this part to do the work below (the first portion, through the “Arithmetic and Arithmetic” section, should suffice), but from the next assignment onward you will be defining functions and using conditionals (covered in the rest of the part), so you may find it useful read ahead.
Completely optional: If you are already familiar with programming or just want to learn more about Racket’s support for images, see the Quick Introduction. However, this introduces some new content that is not part of the placement. You can ignore this entirely.
If you are new to programming: people learn programming by actually writing programs and running them. As you read, type in the code in the document, see how it works, change it a little and see what happens. Actually trying the code in the assigned reading will be essential for you to get comfortable with the material. Do not passively “read” the material: you will get far less out of it than you imagine!
6.6 Task
Vietnam
Chile
Suriname
Saint Lucia
Turkey
You should create these flag images using the Racket image primitives (for rectangles, stars, etc.), not by finding the images and pasting them in. You are, however, welcome to use a Web search to figure out what the flags look like.
You may pick the dimensions of your flag, but please make it large enough for us to see (with a width of at least 100), but preferably not so large that we need to scroll a lot to see them all.
For maybe the only time this summer or during the semester, we will not judge you on absolute correctness (e.g., checking whether you got the precise ratios of the different parts right). We’re going to visually eyeball it for general adherence. Of course, feel free to geek out on the vexillological details as much as you wish!
6.7 Grading Standards
This assignment will not be graded. You’ll know when you’ve gotten the flags right; you don’t need us to tell you. Also, for some of you this may interfere with the end of the school year, and we don’t want to put extra pressure on you.
However, we still want you to turn in your work so that you have gone through the full cycle of submission. That way things will go more smoothly from the next assignment onward.
Therefore, please do turn in your work but please do not expect any feedback on this assignment.
6.8 Turnin
Please write a series of expressions in a single file such that, when the file is Run, the flags appear in the interactions area. If you do use define to give them names, make sure to use these names so that the criterion above is met.
Be sure to read and follow the instructions in Placement AFQ and Anticipated Frequent Questions as well (e.g., note the requirement of anonymity) for this and all subsequent assignments.
Please name your file p1.rkt (“papa-one-dot-romeo-kilo-tango”). Failure to use the correct name or otherwise follow these instructions may result in zero credit.
Instructions on how to upload your solution will be posted to EdStem.