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.

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.

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.