About the Course/Instructor

CSC 161 - Imperative Problem Solving - Weinman

I will post answers to questions B.10 and C.11 from the questionnaire assignment here as I receive your submissions.
Note:
Historical answers about the course may no longer be accurate or relevant.

1  About the Course

Q
Out of curiosity, why is the hard deadline for all submissions earlier than the institutional deadline?
A
The institutional deadline makes the most sense for courses where term papers are the norm; because we have a scheduled final exam, I want to make sure you have time for adequate preparation. Moreover, it is not fair to a collaborative partner to work into finals week when their finals schedule may differ.
Q
I don t think you mentioned it; does your no-fragrance policy hold for this class as well?
A
The syllabus asks you to be considerate of it when possible.
Q
If we want to finish the additional lab exercises, where can we access MATHLAN computers to do so?
A
You can access the MathLAN remotely or you can also use any of the MathLAN computers on Noyce 3 (so long as there's not a class in session).
Q
Are there any questions we may ask in class about material or content that you would not be able to answer?
A
Um, probably something like, "What's the answer to the homework?"
Q
How much coding will we be doing on our personal laptops?
A
None will be necessary. It may be possible to complete some individual homework assignments on non-MathLAN computers.
Q
Regarding citations-In this answer, I tried to follow the Academic Honesty policy for CSC-161 as closely as I could. Looking at my response, are there situations where I do not need to be this strict, or is it better to always include citations like this?
A
The principle of academic honesty asks you to be forthright with the intellectual source of your ideas and work. In your professional work, respecting intellectual property law is equally important. Thus, any time an idea is sourced from elsewhere or does not originate with you, you have an obligation to make an appropriate note.
Q
Will we have any opportunities to revise our projects after the grades are out, and if so, can we still get a max grade on it? Will there be any extra credit opportunities?
A
There may be a few extra credit opportunities on some select assignments, but no out of class options. You can submit assignments as many times as you like before the deadline (or after, if you want to take the late penalty). For the autograded assignments, this allows you to track your progress and make revisions when necessary. However, the schedule of the course and the demands on the graders will not permit revisions beyond this.
Q
Why do you not include participation in the grading rubric? It is just my first time seeing this type of rubric, that's why!
A
I used participation some in previous iterations, but in the end I found it too difficult to make the sort of objective assessments of learning and outcomes I desired, so instead I focus on demonstrable artifacts and trust that you'll be good citizens regardless of whether you earn class credit for it.
Q
How would you like me to cite my sources? I have used parentheticals throughout this email, is that acceptable? Should I be using APA format? Chicago Style?
A
This may surprise you, but CS has no standard citation format. (Different publishers may, but that's not the same.) To me, the most important point is for someone else to be able to trace the source you are citing; that usually includes author name, title, and enough additional information to locate the source.
Q
You mentioned that 30-50% of the exam questions will be taken from labs, but about the short quizzes? Are they taken from labs and/or will questions from the quizzes appear on the exams?
A
Short quizzes are distinct and tend to ask you to do simpler things that check your understanding. Quiz questions will likely not appear on exams. (Though I wouldn't rule it out, I suppose.)
Q
Where are the Lab deadlines? I see deadlines for the Projects and for the homework s, but I can t find any for the Labs. I know we need to hand them in on gradescope, but I m not seeing any exact deadlines. There also hasn t been a Lab 0 assignment posted on gradescope yet.
A
In-class labs don't get submitted.
Q
Can I use an iPad for handwritten notes?
A
Thank you for asking. Since an iPad is a fully-functional computing device (with the laden temptations, distractions, and potential cognitive burden), I prefer them to be in the "excluded" category of electronic devices.
Q
How can evening tutors be a source of support on projects?
A
If I understand the question to be beyond the mechanics of allowable help, maybe they could give you some inspiration/ideas or encouragement as you pursue your chosen approaches.
Q
Could you provide more details on the types of problems we can expect on the homework assignments?
A
They'll be quite variable, but I hope interesting opportunities to put what you are learning into practice. They will not rely on the robots.
Q
And who exactly are we supposed to collaborate with on projects? Will you be assigning groups or pairs for this?
A
Yes, partners will be assigned for each module. We may make amendments on the fly for absences.

2  About Me

Q
I saw you on campus while I was doing my MAP. How was your summer?
A
Great! I took things fairly easy, since this was my first (entire) summer in Grinnell for the last three years.
Q
What is something that you would like me to ask you about (question 10 above)?
A
Turnabout is fair play! :) You could ask whether I've cooked anything interesting lately (I have a repertoire, but sometimes there's also new things). I also hope to do a little more hunting this fall, if I can find time. (Perhaps these two will intersect.)
Q
What is your favorite (or recommended) public land/park within 4 hours of Grinnell?
A
While I'm sure there are some good ones outside Iowa within that 4 hour timeframe, I'll keep to Iowa since I've spent more time exploring it. Two places that come to mind:
  • Before I had kids, I really enjoyed a hike-in overnight camping trip at Yellow River State Forest in northeast Iowa. It reminded me of my time in western Massachusetts. (They may be nearly old enough for us to return together.)
  • My family loves to visit Ledges State Park near Boone, Iowa. The campground itself is nice, if nothing special (though there is a "walk in" section for a slightly more remote experience). The best part is the canyon drive and the hikes. You get to ford the streams when you drive (in summer, kids line the roadside to get splashed), and it's also fun to strap on some sandals and hike through the streams as well as up the hills.
Q
What has been your favorite course to teach and why?
A
I like teaching CSC 262 Computer Vision. It's my research area, it's intrinsically cool (I'm biased), and students do a neat self-selected project.
Q
What was your first job out of college?
A
What do you mean "out of college"? :-) I graduated, when to graduate school, then came to teach at Grinnell. I never left! (And I love it.)
Q
Among all research projects you've done, which one is your favorite?
A
I'm still working on extracting information from old maps, and is surely the project (or really, set of projects) I've spent the most time on. They're just beautiful, interesting artifacts, and when they cover an area you know well, they take your brain to interesting places (i.e., "memory lane").
Q
What is something non-work related that you would consider yourself an expert in? (or if not an expert, capable in/knowledegable about)
A
I can't reasonably conclude I've spent 10K hours on anything else of note. Perhaps cooking. I'm by no means a professional or trained, but I attend to details (you'll know), I enjoy it, and I do cook a lot, so I consider myself fairly capable in the kitchen (or the fire pit). Tell me about your favorite recipes (or meals from home, wherever they are in the world; I love to eat internationally!)
Q
Do you have to be a left-handed to be a CS professor? ( I have Prof Rebelsky for CSC151 who is also left-handed)
A
Good observation from day 0! Last time I checked, it wasn't explicitly part of the job requirements. :)
Q
What s your favorite (or favorites, as I understand the struggle with personal superlatives) dish that your parents/grandparents/family would make for you as a kid? Does it come with good memories? :)
A
Thank you for asking this; consdering the question brings me joy. Some of my favorite family food memories originate with my grandparents who were children of Scandinavian immigrants), particularly around Christmas. So rice pudding, Swedish fruit soup, red cabbage salad, meatballs, and Danish layer cake is Christmas eve to me. (I'll gladly share my grandmother's recipes with anyone who wants.)
Q
You have mentioned your favourite type of reading, but not your favourite book. What is it, if any?
A
Oh, favorites are so hard. I'll say anything by Paul Auster, Haruki Murakami, or Neal Stephenson. I also really enjoyed recently re-reading Carlos Ruiz Zafón, but mostly because I've spent two years living in Barcelona, where his works are mostly set, so I "get" a lot more of it now than the first time I read him, which really added to the experience. (If I ever lived in New York City at all, I'm sure I'd enjoy Auster even that much more and would gladly re-read his canon.)
Q
Why did you like C programming, instead of other more modern languages.
A
I'm not sure I'd say I "like" C programming. It's been a long time since I needed to write in C for my own research, but it is essential for a wide swath of activities that need to interface fairly directly with hardware. That said, we teach a course in C so you can begin to learn about the hardware/software interface. (For much more about that, see CSC 211 Computer Organization and Architecture, which you could take next semester and build your own computer from the humble transistor all the way up!)
Q
What s your favorite food and color?
A.
Burnt ends. Green.

3  2024F

3.1  About the Course

Q:
Are we expected to do all of our work on the Noyce computers?
A:
While you are welcome to create your own C development environment (i.e., on a personal computing device), I won't generally be able to provide support for you to do so. macOS comes with LLVM/clang (which we will use for the course). Any Linux distribution should make it easy to install/use clang locally. The internets supposedly say LLVM/clang is available for Windows (https://clang.llvm.org/get_started.html#buildWindows) but I have absolutely no experience with that.
Alternatively, you may connect to a MathLAN machine remotely via your web browser through https://remote.cs.grinnell.edu. This won't allow you to do robot based work, however. For that, you and your partner will almost certainly need to huddle in Noyce 3.
Q:
Is it permissible to discuss a completed, fully turned in homework or project submission with others? As in, if I have already submitted a homework, can I then discuss my solution with a friend who took the class in a previous year, or would that be in violation of the academic honesty policy?
A:
To avoid confusion about all sorts of potentially unusual special cases I can think of, let's say that an assignment can become fair game for broader discussion (beyond the instructor) once it has been graded and grades released.
Q:
Are the projects going to be finished in class in one day or over a period of time after the module?
A:
Although the time varies with the project, you'll generally have several days to complete and submit each end-of-module project.
Q:
Often when I end a command with & , the terminal outputs something like 1] 86710 . What does this mean?
A:
The [1] is the backgrounded job number (you can background many jobs, and it's helpful to be able to refer to them specifically if you want to terminate one or bring it back to the foreground.) The second number is the "process ID". Essentially each running program is called a process, and the operating system needs a way to refer to it globally. (The terminal's background job number is valid locally only within that terminal window for a short time. PIDs, as they are called, can get very big and only wrap around infrequently, so they are more-or-less unique.
Q:
How precise can the scribbler robots be? I remember interacting with a similar robot and struggling to make polygons that close with the pen, even though my math should have been right.
A:
Would you believe I have never actually used them for drawing?! But if their sensor accuracy is any indicator, I'm guessing the actuator precision is also fairly low. These are educational robots, after all. However, if you need a fresh one for a project (not one that has been banging around the CS lab for over a decade), we have some "new" ones still crisply in their original boxes.
Q:
How often will we not be able to complete labs in class?
A:
This is a great and super important question. It is likely that all of the labs are longer than the allotted class time. So it's normal not to complete them. What you do with the uncompleted part is up to you, as it's really about how comfortable you feel with the day's topics.
Q:
How easy is C to pick up?
A:
As with most (interesting) things, the most accurate answer is, "it's complicated." Doing super basic programming things is fairly straightforward, though C is not a high powered language that does a lot for you the way some more modern languages do. However, it is a systems-level language that allows you to control a lot of things in a way that those modern language do not. As a result, if you want to learn to control those things (which we will do a fair bit of), there's a lot to master, and we'll spend the semester trying to get a good handle on many of them.
Q:
I am confused on the testing documentation process. Would you be able to explain a little more about the generated transcript and what we should write in our testing file?
A:
Your test file should document the range of scenarios (e.g., input values) that can occur, and then document (as specifically as possible) test circumstances that cover those cases, as well as the expected outcome. The transcript is just a recording of your program compiling and demonstrating that tests of the sort described in your file have been run (and hopefully produce the expected output/result).
Q:
What does the start of class normally look like? I prefer a nice mental warm-up and a quick rundown of what is due in the near future + what the goal of class will be that day.
A:
Administrative notes (upcoming events, talks, mentor sessions, homework deadline reminders). Then clicker questions after perhaps briefly setting the context for the day. There are exceptions to this general format but it's common.
Q:
How will we work on homework assignments? Such as, will we have to be in the room using Grinnell's computers, and if so, how can we avoid people seeing answers if we are in the same room?
A:
You certainly may code in any of the classrooms on Noyce 3. It's a common enough situation that "student working at console" is not a concern we have. (Hopefully no one will be peering over shoulders!) However, you will want to be sure you don't leave your console unlocked with your code up on it. (Or maybe don't set your font size to 44 pt.) :)
Individual homework assignments can also be completed via the "remote" MathLAN (https://remote.cs.grinnell.edu. (The robots won't work remotely.)
Q:
What do you think is key to not only doing well in this course, but generally in learning a new programming language?
A:
I posted previous students' tips for this question on the main page and I largely think they have it. In sum, start early, revise, and build good habits (both study and programming). To learn a new language, I myself usually have a problem I need to solve. I don't get it right or elegantly the first time, so revisions are usually needed. But the main thing is to try and do, not just read or copy/paste. To get it into our brains we must understand and adapt.
Q:
Will the more detailed topics for the quizzes be announced?
A:
See the Learning Outcomes. Each module quiz covers the topics introduced during that module.
(Though note that language learning is cumulative. For example, once you know how to write if statements (conditionals), it would be expected that usage of these might continue to occur, not that we would be assessing for them directly.)

3.2  About Me

Q:
Which module is your favorite to teach to students?
A:
Ooh, no one's asked that specific question before. Perhaps Module 100 because we get to use images, which can be fun data objects to manipulate. (Learning the mathematics of image processing got me started as a computer vision researcher 25 years ago.)
Q:
What was your sabbatical like?
A:
Wonderful! I (re)joined a research group there with interests closely aligned to my own, started a project, answered some research questions, published a couple of papers. And ate lots of delicious local food. While I had an office at the local university, I also chose to work regularly in municipal libraries all over the city, because each has its own feel. They are beautiful little ecosystems. (Also, not having to pay close attention to my calendar was really nice.)
Q:
You asked me in class what I plan to read this semester, so I am curious to hear what book(s) you plan to read. Or just what kind of books you like.
A:
I like a variety of books, but I stick mostly to fiction, as I get enough non-fiction in my work life. Whether it's more "literary" (usually modern), or the occasional thriller mystery, I generally read for pleasure. I like books that take me to another time, place, culture, broadening my horizons (e.g., Amitav Ghosh, Olga Tokarczuk). One of my favorite authors is Paul Auster. From the Grinnell community library this weekend I just checked out Martyr! (Kaveh Akbar), The Bee Sting (Paul Murray), and Touched (Walter Mosely).

4  2021F

4.1  About the Course

Q:
I was wondering if students could bring in their own keyboards to use in the computer science labs. They're neither glowy nor flashy, but I find using my own keyboard much easier - and cleaner - than using the generic lab keyboards.
A:
I have no intrinsic objection to this. However, there are a few practical matters to consider. First and foremost, you'll be pair programming throughout the semester. That means both you and your partner will be switching off who is "driving" the computer at the keyboard.
Traditionally, this task division between driver and navigator is physically enforced by sliding the keyboard back and forth. If you're ok with that, then we're done here.
That said, according to "the internet", plugging in more than one USB keyboard to most operating systems will just merge the inputs. So, in theory you could each use your own keyboard. That is a bit peculilarly exceptional, and I tend to prefer more uniform, equitable behavior among the students. But if you really insist, I would ask that you and your partner not both try to act as driver in this case. One of you should very clearly shove their keyboard away and have it literally out of reach when functioning as the navigator.
(Oh, and if you do ever disconnect one of the regular keyboards, please remember to plug it back in when you're done!)
Q:
Is it fine to use a Mac computer for this class? Is a windows computer better than a Mac for this class?
A:
The programs you'll write for the robots will be easiest done on the MathLAN Linux machines, where the supporting MyroC libraries are installed. (It's possible to get these for macOS, but it's not necessary. Everything robot-related will be done collaboratively.)
macOS comes with the same C build environment (llvm/clang that is fairly transparent and functions basically identically to the MathLAN. So long as you're writing standards-compliant code, it should be fine to develop your (independent, non-robot) code on that platform.
The web readings work anywhere. :)
Q:
Whilst learning to programme for C, is it okay for us to use another text editor like Visual code studio? Is there any consequences of not using the particular text editor that we are going to use in class?
A:
For your own personal learning and development, it is fine to use any editor and environment that you choose. However, the one we expect everyone to know is Emacs and the terminal command line. It would be unfair to thrust your partner into a foreign environment (or your instructor and mentor, for that matter) and expect them to be a capable driver. Thus, for working with your partner (particularly in class, but also elsewhere), please plan to stick to Emacs and the terminal.
Q:
Will we be using the computer lab computers for all work/homework/labs?
A:
Yes, more or less.
Q:
When you say that the grading brackets may be adjusted upward but not downward, do you mean that a student who is one day receiving an A- may later be receiving a B+ with no change in the numerical value of their grade? Under what circumstances would that occur?
A:
No, I mean the reverse; that is your letter grade moves upward. (The better one.) That usually happens if/when I totally bungle the rubric. (Which hasn't actually happen, but I reserve the right to make profound misjudgments! :)
Q:
What style of formal citation do you prefer for outside sources?
A:
Any that allows the educated reader to find the original. Usually that means including an author, title, and publication venue (frequently, a URL).
Q:
I was wondering on exams, will you care about the simplicity of code, or does that just pertain to projects and homework?
A:
A little bit, but it's not the overhwelming concern. Your first task should be to get correct code. (All other things being equal, a reasonably clear/concise expression and/or simpler algorithm is likely only to make the difference between one letter grade level, such as a A to n A-, or maybe B/B+ if the problem does not count for many points to begin with.)
Q:
For the grading, I noticed best of homework and midterms count toward 5% of my final grade. What does this mean?
A:
It means the grade is calculated as ...+0.05×max(homework_avg,exam_avg)+...
Q:
When can we work on Labs that we didn t finish in class? Which machines in campus can work on?
A:
Any time you want to! (But you should be sure to get a good night's sleep.) Well, I suppose that the lab does get physically locked. You can see the hours posted on the door.
Any MathLAN machine is a candidate (all the Noyce 3 computer classrooms), but the only ones with robots are in 3815 (our classroom) and 3828 (the CS Learning Center). Note there are classes in 3815 8:30 am-11:50 am and 1 pm-3:50 pm MWF.
Q:
This has sorta been answered on the website and in class, but do most people generally finish labs in class?
A:
Pretty much never. That's normal, so don't take the answer as demoralizing. An early version of these lab materials had an arbitrary "in-class exercises" and "after class exercises" section. The delineation seemed completely arbitrary and misleading to me, plus people's performance is highly variable. So I removed it. Consider the moral to be that there's always more for you to practice! When you feel like you've spent enough time on the topic for the day, then you can stop. (Just remember about those exam questions coming from the labs.)
In any case, if there's something I really want to be sure you get to, I'll assign it to turn in.
Q:
Are we not using P-web anymore to submit works? Why is it so?
A:
Gradescope is a far more powerful platform for quick feedback and efficient grading. Plus, it allows us to grade some elements of your code using other computer programs to check for correctness.
Q:
Will we ever work in larger groups than two people?
A:
Only if there's an odd number of people in the course. Then there will be one group of three. Two is an ideal number for the scale of tasks in this course.
Q:
As someone with a very little experience with CS, how can I gain more exposure to the subject beside taking the course? Are there resources I can tap into to gain more experience during the summer, or a break, or any chance to learn out of class?
A:
We do a lot to try to build community in our department. You can come to the seminar speakers, join some our related clubs or activities (i.e., the ACM Student Chapter or Code Club at the library, which teaches coding to middle schoolers). During the summer you might look for a research opportunity (i.e., MAP) or a summer internship (CLS will be a big help there).
Of course there are a huge number of online resources. Rather than blandly follow a general tutorial on "Learning X" (say, where X is some language), my recommendation is to pick a problem or task that is interesting to you and that you care about, and using that as a motivation to learn whatever it takes to solve the problem.
Q:
I guess a question I can ask is what the Grinnell environment like is because I have only been to the same school from 5th grade to graduating high school and have not been able to know any social skills and have not seen new people since being in the same school for 8 years.
A:
Wow, that's amazing. I'd love to hear a student response to this one. But I'll offer that Grinnellians are quirky and passionate. Some very much so, especially about causes they care about, and sometimes that extremity comes off in ways that are counter to treating people with dignity and respect. But Grinnellians come from everywhere and have a wide variety of experiences. Don't compare yourself to others, but learn from what their experiences may have to offer you.

4.2  About Me

Q:
Light mode or dark mode?
A:
I nearly always use my computer during daylight hours only, so I guess light mode works well for me.
Q:
Do you plays video games? If so, which ones?
A:
Nope. The last game I tried to play was Halflife (the original) more than 20 years ago. Perhaps five years before that I had an (original) NES and regularly beat Super Mario Bros. 3. Perhaps yet another five years before that I saved up $75 to buy a used Atari (can't remember the version; not the 2600) and a box of cartridges.
Q:
Why did you (Prof. Jerod) started doing Computer Science?
Q:
How did you get into CS in the first place? What do you like about it?
A:
I was quite fortunate to be first exposed to programming around seventh grade. I loved the magic getting the computer to do exactly what you wanted it to do. It truly felt like wizardry. That, and I always enjoyed the building and problem-solving aspects of it. Hooked from the beginning!
Q:
What are some hobbies that you like doing?
Q:
What do you do when you're not teaching? I'd love to hear about your interests and how they intersect with your work at Grinnell!
A:
Outdoorsey stuff includes: camping, mountain biking, hiking, kayaking, and fishing. Others are cooking, especially grilling and barbecuing, but I also cook a lot of international and regional foods, so please share your favorites with me! I probably spend most of my free solo time reading. (Not that much, considering two kids are part of the picture!)
I also appreciate musical, drama, and sporting events featuring our wonderful students. Tell me about yours and I'll see if I can make it. (It often depends on kids...)
Q:
How was your day?
A:
Been good so far! I'm still getting used to doing work in person. (And packing enough food for lunch!)
Q:
What attracted you to do research in Computer Vision?
A:
My first exposure was in a course on the mathematics of image processing. I was taken by the idea that these truly abstract operations, for which mathematicians usually have pictures in their head, could actually produce visuals I could see. Over time, I grew to love thinking about the conundrum of how effortlessly we see and process visual information yet how challenging it is to understand and replicate that capability with computers.
Q:
What is your most frequently played song recently?
A:
Oh, that's funny. Strictly speaking it's probably "A" by the Gits, because that's the one that always comes first when my iPod connects to my car stereo. Otherwise, I generally listen on shuffle (when I do, which is mostly when I'm mowing the lawn or the occasional long drive, for as long my family will tolerate it). With 22K+ songs on my playlist, I rarely hear the same stuff.
Otherwise, there was an article in the New York Times magazine last week about Meet Me at the Altar ("Saving Pop Punk? That's Just Their Warm-Up Act"). Since I still listen to a lot of punk rock (mostly from close to the turn of the millenium and before), some of it pop punk, I was intrigued to learn about what's been going on in the area. I put some of their YouTube videos on for a while over the next day or two. That's been about the heaviest I've listened to recreational music (especially new music) in a looooong time.
Q:
If an enormous asteroid was coming towards Earth and the crumbling of society was certain, would you travel to the point the asteroid was hitting or to the opposite side of the planet?
A:
That's one of the deepest questions we've had here in a while. I've thought of good reasons to do both. Consider me unsettled. I appreciate that reflecting on these things uncovers elements of my values in beliefs that I don't spend time processing deeply on a daily basis.
(If it makes you feel any better, my son asks me simple questions of the form "What's your favorite ___?" which I can never answer either, because I am terrible with personal superlatives.)
Q:
What is your favorite TV show?
A:
I haven't lived in a house with a television since 2001. I know it can be watched on the internet now, but I don't. I prefer to read fiction, but I do watch the occasional film when I am too exhausted to want to read.
Q:
Do you like C?
A:
Hrm. Yes, I suppose. It has its place, but I probably wouldn't try to do too many big things with it myself.
Q:
The application of C in real world programming and app development.
A:
Hm. That's not really a question, but I guess I'll give it a go. C still gets used a lot for controlling embedded systems (that is, usually stuff that works on things in the real world, like robots or anything with a sensor and/or actuator). However, learning about what other programming languages must always worry about under the hood (which we'll be exposed to with C) will always be useful for you.
Q:
I am wondering if we can discuss machine learning in the future.
A:
Well, if that's can we discuss future ML, maybe not. I don't have a very good crystal ball. But if it's can we discuss ML at some later date, then sure.
Q:
Do you have any pets?
A:
No, not since I was in middle school.

5  2019S

5.1  About the Course

Q:
What is your advice/tip to go through CSC-161 readings?
A:
Don't get bogged down in the details, but don't overlook them either. First, read the items in the order I've given them. (So if a textbook reading comes before a webpage we've written, read from the book first!) Second, for each reading section, ask yourself
What is the most important sentence/idea/example in this reading?
Prioritizing information is an essential critical reading skill and worth practicing. (Of course, you should also attend to the procedure given in section 5.1 of the syllabus.)
Q:
In 151, I had a few issues with partners who did not do any work or not show up at all. In situations like this, what are some things that can be done to prevent our grade from decreasing?
A:
First, you should tell me if you partner is consistently uncooperative. Although you will have the opportunity to provide feedback on your assigned partners (which will contribute to my assessment of them), your goal in this situation is to make sure your current learning needs are taken care of. While I expect a certain amount of maturity in handling (and learning to handle) interpersonal management, sometimes matters rise above that expectation. Please let me know when you worry for your ability to complete work in a timely fashion.
Q:
In CSC-151, I was used to having take-home exams which I felt more comfortable with as I could run my programs, identify my errors and debug the program accordingly. It also helped me to write a more efficient program in general as I could spend more time on the programs. Why is the in-class examination style preferred for CSC-161?
A:
Being able to think through problems and sketch out solutions on paper is an important real-world skill. To be productive, you need to think clearly, rather than extensively relying on the compiler to catch silly errors (in many ways, your human grader is smarter than the compiler) or just trying code to see what works. In that way, I get a better assessment of how well you can really think.
Moreover, it takes you 4-6 times longer to complete a take home exam and it takes me at least 6-8 times longer to grade them. With 400% more CS students than when we started giving take home exams in CSC 151, that kind of time becomes much harder for faculty to find.
Q:
How hard is it?
A:
Everyone's experience in the course is different, and that's largely because everyone draws on different levels of experience. I believe everyone can learn this subject. The more you practice it, the less difficult it becomes (which is of course true of just about anything).
Q:
What are the best ways to review materials in order to fully understand the procedure that I learned in class and be able to apply them to advanced problems? (In addition to hw assignments, labs and other classroom exercises)
A:
As I mentioned before, prioritization. You can also use the terminal man pages for quick reference.
Q:
Do we get extra credit for catching errors in the professor's code?
A:
Not explicitly, but I tend to take such notices/feedback as a good sign and it reflects well on your participation.
Q:
What are your concerns about this course/what don't you like about teaching it? How does C compare to other languages you know?
A:
The finickiness of the robots is occasionally a pain. Otherwise, I enjoy it.
C is dreadfully simple. (Emphasis on the dread.) Because it's so low level AND interpretation of many things is so dependent on the specific platform, writing correct and portable code can be a challenge.

5.2  About Me

Q:
What kind of car do you drive?
A:
A 2001 Jeep Cherokee. (It's in the shop now and may be on its last axle sadly.)
Q:
What's your parenting philosophy?
A:
Attachment (lots of emotional support) and self-guided limit learning (you can do what you're big enough to do; just try not to break your arm).
Q:
Do you like Grinnell Dining Halls?
A:
It's way better than my college dining hall was (though that was 20 years ago; it's comparable in quality to Grinnell's today). So yes, I always enjoy eating there. (But I am sensitive to the fact that I don't eat all my meals there.)
Q:
How do you feel about the weather in Grinnell?
A:
I like having four seasons. (And it helps that I have both a snowblower and an affinity for cross-country skiing, even though I prefer downhill.) So, all in all, I suppose I like it as well as anyone might.
Q:
what is the most interesting research you ve ever contributed to?
A:
Tough one! I love the current project I'm doing on extracting information from old maps, but the first research project I did as a graduate student had potential for significant impact: estimating the volume of stroke lesions from MRIs to help doctors make clinical decisions. I've done several others, too.
Q:
Why did you choose to become a CS teacher instead of going into industry?
A:
The short (true) version is that I worked as a summer intern at a company in the financial/market industry, and as a twenty year old I didn't really like the stories the grizzled software veterans told (even though I had fun for a summer), so I thought I'd go to graduate school to define and work on bigger problems. Eventually I decided that competing with myself to be a better teacher (you're important!) was way better than competing with other professors for grant dollars in a more research-oriented academic environment.
Q:
What is your favorite place in the world?
A:
Snuggled up on the couch reading a book with my two boys. Ok, I twisted that one. But here's another wonderful place from my life. Nothing particularly special about it, but the Eastern hemlock forest and the converging brooks are just magical. I love the way the sunlight in summer drifts through the woods like slow falling snowflakes on a calm winter day.
Q:
Opinion on pineapple on pizza?
A:
I'm definitely down. Even better on grilled pizza.
Q:
What are things that you enjoy most besides teaching?
A:
Cooking (everything except baking) and reading fiction. (Not usually at the same time.)
Q:
Is the education system for tech/computing/STEM in a place where you are satisfied? If no, what would you do differently?
A:
We're (as a discipline) woefully understaffed and many of us are ignorant of evidence-backed practices for quality teaching (and now we're too overworked to get caught up). So if I could wave my magic wand, those are two things I'd fix. Then we can work on culture, etc.
Q:
What nerd things do you like?
A:
Hm. I don't generally like reading SciFi, but I do like reading work by Neal Stephenson. (I'm not sure whether he'd like that as an answer to your question.) I like learning new hacks for solving problems (like cool shell command sequences). To name a couple.
Q:
What is the coolest thing you or a student have made the MyroC do?
A:
I hope to convince some of the students in my Computer Vision class this semester to use the camera to do something cool.
Q:
What courses did you take outside of computers when you were in college?
A:
My minors were "Philosophy and Religion" and "Science, Technology, and Society" so mostly courses in those two areas. (My second major was Applied Mathematics.) I also audited Ancient Greek 101 right before I finished my PhD.

6  2017F

6.1  About the Course

Q
Will we learn about efficiency & big-O notation?
A
We will not formalize our study of efficiency, though we will certainly keep it in mind as we discuss linear structures (arrays, lists, stacks, queues). These topics are more thoroughly discussed in CSC 207 and CSC 301.
Q
Will we work on programs not for scribbler robots?
A
Yes. (And I hope you might even find some of them compelling.)
Q
How hard is to get an A in your class?
A
The annoying answer is "it depends." My hope is that the rubrics and expectations are fairly clear from the beginning. My goal is that you'll know what you need to know or be able to do for every assessment. The "depends" part is based on how much effort it takes each individual to master those skills.
Everyone can do it, however. As an example, I started riding a bike with training wheels; once those wheels came off (perhaps age six), I likely accumulated a few skinned knees during my practice. However, my son started "riding" a bike without pedals (sometimes called a strider or balance bike) when he was two, and for two years he learned to push with his feet and gain balance. When he got a pedal bike last week, he took off riding the very first time like he was an old pro. He and I both learned to ride in our own time, but it seemed "natural" to him because he'd had so much more background preparation.
Learning computational thinking is like that. How much effort it takes depends in part on how much you practice all the supporting skills.
Q
Will we have the same partners for projects and labs?
A
Within the same module, yes. Once the new module starts, we will switch partners.
Q
Will the Exams ask for us to write extensive lines of code and if so, how will it be graded?
A
The exams will ask you to write short sequences or complete functions to a given specification. They are typically assessed by how many elements of a correct efficient solution are present, and less about whether you matched all the parentheses or braces correctly (assuming you formatted the code well-enough that I can understand your intent).
Q
Are the exams open note like in CSC 151?
A
No. Though references for the robot library will be provided when necessary.
Q
Under citing sources, the instructions say to include textbook(s), CSC 161 labs or readings; ... use complete citations for Web or other written sources. Does this mean that we do *not* need to use a full citation when citing our textbook/course materials?
A
That's correct. The principles at play here are to cite in order to acknowledge intellectual origin and allow your reader (the instructor, grader, yourself and your partner) to follow the reference. So long as you clearly name the lab (and perhaps give the URL for ease of click-through) or cite the book with a page number, we can do that easily enough. External resources require a bit more reflection on the reader's part and therefore warrant more information.
Q
Will we see an example of a completed references, code, and commentary file? I think having a finished product to use as an exemplar can help guide good formatting/submitting.
A
I agree that exemplar are convenient, but there's typically enough variation in materials that it can sometimes be problematic. With no standardized citation format in the computing discipilne (i.e., like MLA or APA), I look for the author/organization, title of the work, and enough additonal information to find the work myself (e.g., URL, publication date, etc.).
Q
how many (at most) extra credit points are necessary to move a grade up one bracket?
A
I cannot answer that question directly, but it is computational so I can direct you how to proceed yourself. The grade brackets and relative weighting scheme can be found in the syllabus. In addition, there are a total of 110 homework points available (some have built-in extra credit opportunities, too). You can count the total number of labs (days of class less exams and project days). Not all these days will have labs or lab exercises due, but it will give you an upper bound on the number of point required.
Q
can I use my Mac/iphone in the class just for look up a word or search some background information? I am not a native English speaker so sometimes I need help from dictionary/google.
A
That seems reasonable. However, if you're working in lab, it might be polite to inquire of your partner first. After all, there will be many concepts or phrases that may be somewhat new and foreign to many in the class. It's good to get in the habit of discussing them, rather than assuming it's your own shortcomings. Moreover, giving your partner the chance to explain something helps them learn better and keeps you both focused on the same subtask.
While I try to avoid concepts that are too idiomatic for non-native speakers, I encourage you to raise your hand and ask me if I use a phrase you don't understand. With a class population from around the globe, chances are very good you're not alone. Asking helps your classmates, too. (And it helps me know when I've said something unclear.)
Q
Can I come to the office hours about things that are not really course-relevant but still computer-science-related? (for examples, research projects, major, opportunities working in computer science, etc.)
A
Yes! That's certainly academics.
Q
Do you suggest me to learn some other programming languages by myself?
A
Once you have learned all three paradigms, it is relatively straightforward (if occasionally tedious) to teach yourself new languages. If you do not plan to complete 207, then the answer would depend on what you aim to achieve. Python is increasingly popular, versatile, and seems to have a reasonably slow learning curve yet with a lot of Python-esque idioms you can learn for increasing proficiency.
Q
What habits have you noticed amongst students you would consider successful in your course that is shared amongst them and separates them from other students and how do you define that success ?
A
Whoah, that's a great, deep question. To answer the last question first, success is not necessarily simply getting an A in the course, but being able make connectiongs amongst the concepts and between them and the other things you learn (outside of CS). It's also about how much you develop during the course, not only in your technical proficiency, but as a person (learning to solve problems and work collaboratively are sophisticated skills!) These students ask questions, tend to be highly organized, practice discipline (both in terms of things like time management, but also in approaching tasks like debugging). They also take responsibility for their learning, internalizing each day/week/modules' topics by deep collaboration. I'm happy to go on, but those are a few initial bits to consider.
Q
Which computers in Noyce run Linux?
A
All the classrooms on Noyce 3 run Linux (several are dual boot, so if you find one in windows, just restart it). In addition, the Math/Statistics open lab SCI 2401 and the basement physics lab SCI 0208 belong to the MathLAN.

6.2  About Me

Q
I see that you taught abroad in Barcelona. What was your overall experience with the Spanish University system? I speak Spanish fairly well and am considering study abroad opportunities for next year.
A
Since I was at an "autonomous" university, I'm not sure how representative it would be. Moreover, I didn't actually teach, I was a visiting researcher. Nevertheless, I found the European higher-ed experience fascinating; their educational tracks are very professionally-oriented and not at all a liberal arts education. I would be happy to help vet programs (beyond those we promote) that may have accessible CS content. However, if you are pursuing a foreign language, our CS curriculum is flexible enough to let you go one semester without taking a CS class, allowing you to experience the most suitable off-campus study (OCS) for your educational goals.
Q
What is your favorite course to teach at Grinnell?
A
That's a tough one, because I enjoy different things about each course I teach. (And my wife will tell you I don't do favorites well for anything.) Nevertheless, perhaps CSC 261 Artificial Intelligence, because students write in a reading journal as one of the learning activities. I learn so much about everyone in the class that way; it's very enjoyable for me.
Q
Do you like cats?
A
Frankly, I'm not really a cat person. I generally tolerate (sometimes even like) other people's cats (my neighbor's are especially friendly and wander into my yard to play with my kids). However, I have no interest in caring for one.
Q
Just curious, but what did you do while you were on leave last year?
A
I was a visiting researcher at the Computer Vision Center (a unit of the CS School) of the Autonomous University of Barcelona. While there, I worked on a system described in this paper I will present in Kyoto, Japan later this November. (Sorry, I'll be missing class!) I also worked to learn a new machine learning framework and shared the results of my efforts. My family and I traveled to visit several off-campus study sites for CS students, which I'll talk about later this semester in a Thursday Extra.
Q
Did you always want to be a computer scientist from the beginning?
Q
What interest you in computer science? In other words, how did you get into this field?
A
I would say I enjoyed computing from the moment I learned about it (one element of an 8th grade summer camp), but I'm not sure when I decided to be a computer scientist. I did recently find one journal from within a year or two of that experience predicting I would be an entrepreneur running my own technology company (i.e., a computer repair shop). However, my interests and activities varied throughout my education (in high schoool I played in bands-both concert and rock-competed in debate, and performed in plays and musicals ). I guess I always knew I wanted to engage in the liberal arts!
I love the orderly nature of computing (even though computing systems have chaotic emergent behaviors, interesting in their own right), but I also love engaging in abstract thinking. Perhaps my favorite crystallizing experiences are when you're working to solve a problem and you finally get it right. (Cue the happy dance!)
Q
And how do you see the combination of music and computer science?
A
Lovely. As an example, I've always been devoted to the music of Bach, whose work often echoes computational elements.
Q
how long did you live in Nebraska for?
A
Born and raised, until I left for college.
Q
One question I had for you was what was your favorite place to eat while you were a student at UMass Amherst?
A
Hands down, it was a place called Amber Waves, offering wholesome, delicious, fast, and cheap Thai food. Sadly, they closed after my second year in town. It's really hard to choose, but I suppose my current favorite may be a tie between Bueno Y Sano (burritos) and Antonio's (Pizza).
Q
What do you like most about Grinnell?
A
That the City has the same name as the College. Let me answer assuming you meant the former. I like that there is an active community arts scene (theater, music, etc.) and a desire for local offerings, whether it's small businesses, food production, or just connecting. I also like that as my kids grow, they can do a lot independently. Growing up in a similarly sized small town, I appreciated that a great deal.
Q
Can you describe yourself in 3 adjectives please?
A
Wow, you ask the tough questions, don't you. Let me try (with some help from my wife):
  1. Fastidious: I'm particularly detail oriented, a trait that tends to correlate with my professional discipline.
  2. Introverted: Despite appearances in class and my interactions, I need quiet time to think and recharge my mental batteries.
  3. Concerned: I have a deep love for my family, my colleagues, and my students.
Q
What are three bands you listened to as a teenager?
A
Let's see, framing it to high school, before I my horizons were further broadened in college, I'd list Offspring, Sex Pistols, and Rancid among the most frequent. (Though Nirvana would have to be a long-standing, frequent fourth.)
Q
Will we learn anything about your research and expertise during the semester?
A
You will do an assignment relating to one area (image processing), that I hope will be interesting. Other than that, you'll just have to ask me!
Q
What s your favorite time of the year in Grinnell and why?
A
Hmm.. again. Tough with the favorites. I love spring after a dark winter. Both flora and fauna seem to bud, coming alive again with the promised relief and nourishment of summer.
Q
How did you end up at Grinnell?
A
They were hiring. ... Ok, a less sarcastic answer. They were indeed hiring, and much earlier than most others. It was a perfect location (being from Nebraska, and my wife's family is from Minneapolis), and I love the down-to-earth nature of Grinnellians.
Q
What is your favorite part of being a professor?
A
Getting the opportunity to harness the curiosity and energy of young adults, by equipping them with powerful skills and a proper sense of responsibility for their work before turning them loose to do amazing things in the world.

7  2015S

7.1  About the Course

Q:
When will the weekly group mentor sessions for our 161 course be held?
A:
The mentors should put a poll up on Piazza soon!
Q:
One question I have is whether you prefer complete sentences or are okay with fragments when it comes to answering questions or writing clarifying sentences for code. Thanks!
A:
For answering questions, sentences are generally preferred (questions on exams and quizzes may be appropriate exceptions); in code comments, fragments are generally acceptable, as the main purpose is clarity in the context.
Q:
Does it matter if I forgot most of what I have learned from CS151?
A:
Does it matter if you forgot a lot of Scheme syntax? Probably not, but the high-level ideas will be critical. You will always use the algorithmic ingredients.
Q:
What is the difference between the work that will be posted in the Schedule versus the Deadline section? Is there one place we can go to to see all of the deadlines?
A:
"Schedule" just contains pointers to the readings and labs. "Deadline" indeed should give you everything to turn in.
Q:
The syllabus says that we will have four formal lab writeups, but will we still have daily mini writeups like we did in 151?
A:
Nope! For better or worse, you are left to your own recognizance (let me know if it's for worse so I can adapt future semesters). As the syllabus says, 30-50% of exam questions will be from labs, so that's motivation!
Q:
I know you say that we should be spending a minimum of 10 hours a week on CSC-161, but how much time would you like us to spend?
A:
Well, hopefully as much as you need to pass, but then as much as you like to get what you want out of the course. I recognize that students have different levels of interest and motivation, and this class might not be the most important for you. It might also just take you longer to work on a program. Many studies have shown an "average" of 10x difference in productivity for people working in the same group among professional programmers. That's a pedagogical fact I struggle with regularly. (After all, I can't reasonably say I'd like you to spend 100 hours. I'm not sure what the right average is for this class.)
Q:
What is the overarching theme of this course?
A:
The interaction of data (its representation) and algorithms (its processing). There is a rather famous book on this trope.

7.2  About Me

Q:
One thing I would like to know is whether you usually allow classes after 151 to call you Jerod or if that was a change with respect to all classes (if the change completely, what changed your mind and if it's usually just a thing after 151, why)?
A:
It's a new change overall. My undergraduate CS department was all first name (students there still compare it to other departments that are not and gush about the community). I loved that type of total community. When I started at Grinnell I didn't realize how completley awesome the students are and I figured it was easier to go from formal to informal adddress. With two new faculty coming into the department, I figured it was a good time to go for a cultural shift. In addition, familiar forms of address simply enhance a necessary sense of humility, which is important to my faith.
Q:
I don't think you have mentioned what type of punk music your band used to play. Was it new-wave, garage punk, pop punk, hard-core punk, glam punk, or something completely different?
A:
Mostly pop punk and some ska/punk (we had a very talented trumpeter).
Q:
Why do you enjoy teaching computer science?
A:
While I once worried a bit about teaching the same class for 40 years, the field moves so fast that's not really a meaningful concern. Moreover, the students are continually new, growing, going off, and coming back to tell about all the awesome things they are doing in the world. That's what I love the most. (Finishing my seventh year, I'm just now starting to get more of that.)
Q:
Will we finish the peanut butter and jelly sandwich?
A:
Is that a metaphysical question? :-) Or maybe I should say: We're done with these abstractions you call "peanut butter" and "jelly" and now we're looking at lower level things like tannins, pectin, oils, and carbohydrates.
Q:
What is your favorite part about Grinnell College?
A:
Great question. The students and faculty. Seriously. You are generally nice people and you care about what what is going on in the world. Truly, you inspire and challenge me daily.
Q:
If it's not off topic, how's Gus doing these days?
A:
Awesome! Thanks for asking (you're always welcome to). He's added the word "No" to his lexicon and seems to enjoy its use, but generally he puts together sentences that make me laugh all the time. He's also a big fan of locational prepositions, "right there", "up there", or especially "in the mouth." Like "Gus, what's in the sky?" Birdies! "What are they doing?" Singing. In the mouth.
Q:
What is a prediction you have or a belief you hold in the field of CS that hasn't been proven, but you think will come to fruition in some way in the next 20 years?
A:
We'll almost certainly have truly reliable speech recognition that can deal with the "cocktail party problem"-that is, be able to delayer multiple sources of input and pick out or attend to and interept the one of interest.
Q:
If you only had to teach one of your classes, which would you keep? Why that class?
A:
Whoah. That's a tough one. It might be cheating if I chose 499, but that one is fun for me not just because it's an independent project. I give an active curriculum of research education. I might keep CSC 105 (The Digital Age) for a few reasons. It covers all the big ideas in CS and we actively reflect on the social, ethical, and philosophical questions behind computing as well. It's truly a liberal arts course. (Though if it were the only one I taught, I'd probably rework some of the technical things in it.)
Q:
What is the coolest thing you have done with computer science?
A:
You all ask tough and interesting questions! I don't know if it's the coolest, but some recent work I've done that I'm proud of is processing old maps. Given just the image, it recognizes the words and from those alone, determines where on the earth each pixel would live. Here is an example.
Q:
Where did you go to college and what was your major?
A:
I attended Rose-Hulman Institute of Technology and graduated with a double-major in Computer Science and Mathematics (I also took two minors: Science, Technology, and Society as well as Philosophy and Religion.)

8  2015F

8.1  About the Course

Q
Will the daily readings generally include exercises to be completed on the MathLAN computers, or will they most often just be readings?
A
Usually they are only readings, but you are always encouraged to try the examples out on your own.
Q
I am just wondering how the exams will be formatted since they are in-class exams.
A
They will mostly ask you questions on writing and reading code, algorithms, representations, and principles. (Think of them like an extended CSC 151 quiz.) In addition, the syllabus states:
As a special incentive for mastering the laboratory exercises, 30-50% of the problems on each test and on the final exam will be taken from the laboratory exercises (with only slight editing).
Q
Prof. Rebelsky taught the 6Ps style of documentation in CSC-151. Do you have any additional suggestions for documenting our programs in this class?
A
Yes! See the details on Comments grading rubric.
Q
How possible is it to do work for the class from my laptop or without mathLAN access?
A
For problems that do not involve the robots, it's relatively easy. On windows, you can use the Cygwin environment to access the GCC compiler. On a Mac, you need the developer tools.
Q
How can we test codes in our laptops so that we don't have to go to the computer labs every time?
A
You can't for the robots, but for other problems, see above.
Q
What is your advice to students in order for them to do well in this course?
A
Don't panic. Practice. Go to mentor sessions. Solve problems for fun. Ask LOTS of questions whenever you have them, of your partner, mentor, tutors, or the instructor.
Q
Do we get the chance to choose our own partners for some activities?
A
Partners for in-class labs and projects will be assigned on a rotating basis in order to expose you to a wide range of thoughts, practices, and people. My goal is that you'll never work with the same person twice.
Q
Will we do any work with any other languages besides C in this course?
A
We will learn a bit of bash shell scripting.
Q
Are there any other external learning opportunities that you would heavily recommend here at Grinnell to complement our work in computer science (other books, papers, talk sessions etc.)?
A
Yes! Come to the departmental "Extras" (seminars, panels, etc.) usually held Thursday afternoons at 4. Our weekly CS table discussion is Tuesdays at noon. Ask to get on the csstudents email list.

8.2  About Me

Q
What is your middle name?
A
James. It's my father's given name and also my son's middle name.