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.