About the Course/Instructor
CSC 161 - Imperative Problem Solving and Data Structures - Weinman
1 About the Course
- Q
- Will there be any work in the future that will not be on Zybooks?
- A
- Nope. (At least, not for this class.)
- Q
- For this class, we'll be using zyBooks as an IDE, but do you
have a suggested IDE for continuing to program in C outside of class?
- A
- No. If you want to "play at home", honestly, I recommend
exactly what we use ordinarily for this class: a good old fashioned
plain text editor and the command line for compiling and running programs.
- Q
- I don t have any questions for now but I was
slightly wondering that there should be a place where we can just
see everything due for that day so that we don t miss
any deadlines. I mean that with every day has a heading and we know
what exactly is due that day because if you miss a certain section
or lab on zyBooks and see it the next day with a deadline that has
passed it is already too late or maybe you don t realize
that a certain lab is due this wed and not next wed.
- A
- See the Assignments tab in your zyBook. All the activities
with deadlines are there.
- Q
- Since all our activities are in zyBook, will we get a chance
to learn how to do some of the behind-the-scenes stuff on our own?
Such as compiling and linking programs?
- A
- I have not built it into the course work, unfortunately. Without
access to a standard platform to do so, it's less than convenient.
If you already have a Linux (or even macOS) platform it wouldn't be
hard for you to figure out. Otherwise, the bold could try the website
repl.it. The rest can safely wait until CSC 213 (if you choose
to take that class).
- Q
- Also, can we use functions, pointers, etc., in LAs even if
we haven't gotten to them yet?
- A
- I prefer you didn't use pointers, but I really can't (and won't)
stop you. Functions are always a good idea, so if you choose to use
them before the book introduces them, I am more supportive of that.
- Q
- Where do we see our LAs?
- Q
- Where do we submit and see the LA s?
- A
- They are their own section(s) in the textbook, typically labeled
"Lab: ...". They are also linked from the LA assignments.
- Q
- Will lab assignments be additionally graded (for having elegant
code, for example), or will we get the points if it passes the test
cases provided by the textbook?
- Q
- How would LAs be evaluated exactly? For example, will there
be emphasis on concise code, effectiveness, abstraction, or etc. ?
What procedures must I follow to receive an A on the assignment?
- A
- The LAs are auto-graded. So you get the mark assigned by the
zyBooks site. This is not ideal, but it's what we are equipped to
do right now. I invite conversations, even after you have completed
your work, about how you might improve the expression of the algorithms
in a way that might be more reader friendly, acceptable by professional
peers or the graders in a "normal" semester of 161. You can see
this page for my style grading guidelines: https://weinman.cs.grinnell.edu/courses/CSC161/2019S/rubric.
- Q
- Do we have a final project or a final exam?
- A
- No. (See below.)
- Q
- Are LAs akin to the mini-projects/demos of CSC 151? Or are
they problems that have brief solutions?
- A
- More the latter. (Except for the last-it's not a brief solution,
exactly, but it's not a mini-project either.)
- Q
- Is all the coding going to be done through the book website?
- A
- Yes.
- Q
- How do we access the lecture`s recording? Will that only be
available for absent students? (or anyone who is willing to review
the work in class), and then navigate down to "Recordings".
- A
- Recorded class sessions are available in Blackboard, Collaborate,
click the menu hamburger at the top, to the left of "Sessions".
Anyone who can access this course can view them.
- Q
- Am I correct in assuming that the reading listed for a certain
date is to be completed before that day s class?
- A
- Yes.
- Q
- Just to make sure I understand the deadlines correctly. PAs
are due before class but on the zyBook Assignment
panel, all four PAs this week are not due until this Friday, 1 pm,
CST, right? Same as CAs? All four CAs are highly recommended to be
submitted before the next class, but on the panel, all four CAs this
week are not due before next Monday?
- A
- That's right. You have a little bit of flexibility, plus it's
far too much effort for me (and you) to worry about concrete deadlines
for each day of class. (That's especially reasonable for CAs, as you
may in some limited circumstances have time in the next class
period to continue working on them. However, you definitely
should do the reading and PAs before class, otherwise there's not
much point in coming to do the CAs.)
- Q
- Do you have any particular format by which you like citations
in programs?
- Q
- What is the correct way to cite someone for code you used?
- A
- See Syllabus, Section 8. "No specific ..." under bullet
4.
- Q
- Can you test/compile code in the LAs without submitting?
- A
- Yes! Absolutely and highly recommended!
- Q
- Can you redo LAs before the deadline if the computer or automated
grading flags something as wrong?
- Q
- Is there any chance to make up points after an assignment is
turned in and graded?
- A
- Yes, you can submit these as many times as you like. You can
keep submitting even after the deadline, but only the work from before
the deadline will be counted. (Unless I add a later deadline for some
reason.)
- Q
- What are hours of peer tutors this term?
- A
- See Syllabus, Section 9.1. Peer educators.
- Q
- One question that I have for now is when to complete certain
LA's. The syllabus says that I should start them as soon as I am able,
but how will I know that is the case? I'm assuming that if I read
section 1.1 then I should be able to complete LA 1.13, correct? I
just wanted to see if the numbers for the LA's matched up with the
content of the readings.
- A
- This is a good and very fair question! The system isn't perfect.
While the LAs are tied to specific weeks, they aren't perfectly tied
to the particular topics we have discussed on a particular day. They
are, however, tied to a chapter, so if we've finished the chapter,
you should definitely be able to tackle the LA. Feel free to ask if
you ever have questions or are unsure about it.
- Q
- Will there be a midterm assessment or a final assessment?
- A
- No. While I'm convinced (by scientific research) that testing
aids learning, I've not found a satisfactory or equitable way to accomplish
this via remote instruction.
- Q
- For clarification, are we allowed to work on PAs with our peers?
I didn't find anywhere in the syllabus that explicitly stated that
we could or couldn't work with others for PAs.
- A
- Yes! That's totally fine. It's not necessary, or even expected.
Best practice is probably to read and think through things on your
own. If you answer wrong, the textbook will offer you an explanation.
If you come up short, dialogue with your peers (or the CS Peer Educator
staff) is totally welcome. It's not forbidden to ask questions before
you answer, but I worry you'll learn less from doing so.
- Q
- CAs, how do we give credit to the people we work in during
class?
- A
- This is a great question. Our system isn't perfect. Many of
your CAs are very short and embedded within the section(s) of the
text for that day. I suppose I should create a bright line here, so
let it be this: if you are working with your assigned lab partner
and complete a CA during class, you do not need to give explicit credit,
as it will be assumed the work was collaborative. (Though if you want
to keep in the habit, you can certainly put a comment in your source
code.) However, outside of class if you work with anyone (even if
it was your class partner for the day, you will be required
to give attribution. See the penultimate bullet of Section 8 for a
guide.
- Q
- Should I do the extra non-required reading (like 1.6-1.12)?
- A
- These examples are there for your own edification, so when
they're not listed as optional, they're recommended, but not required.
If they are listed as optional, they really are that. It's the extra
stuff in the textbook we won't be covering, but I didn't have any
reason to hide it from you.
- Q
- Do you have extra credit activities for the class?
- A
- No, I generally find extra credit opportunities are not available
equitably, and equity is something I care deeply about. (So please
let me know if you ever have any concerns in this regard!) I instead
prefer to focus on the learning goals of the course and let your grade
be based on meeting those alone.
- Q
- Just as a hypothetical, would it be possible to go to graduate
school in CS as a math major? Is it weird to do such a thing?
- A
- Yes, that's definitely possible. (I know of one doing it right
now.) You do have to have a fair bit of CS background, though, and
should plan to make up a deficient course or two.
- Q
- How difficult are the LAs? I remember being incredibly stressed
out at the end of the term in CSC-151 from the Demos because the final
demo was incredibly challenging.
- A
- We're (mostly) using the "many small programs" approach.
So each LA is designed to focus on just one or two things. The very
last LAs are a little bit more comprehensive.
- Q
- I was wondering if the content that we learn in this class
would also help us better navigate coding languages we already know.
- A
- Absolutely. Having a lower-level perspective can help you understand
why languages behave the way they do.
- Q
- Is there a way to practice coding outside of zyBooks? (an app
similar to DrRacket but applicable to this language that we can use?)
- A
- Yes. You can program C in any text editor and compile it in
just about any environment. I haven't set up a tutorial for this because
it's not a planned part of the course, but the web is full of resources.
Because C is so heavily tied to the specifics of a machine, you don't
usually find web apps, but repl.it is one online tool I have
heard reasonably good things about.
- Q
- In the scenario that we are not able to understand a certain
concept or assignment and have asked for help before the deadline.
If the deadline eventually passes before we can fully understand concept/or
question, will we still not be able to submit the assignment past
the deadline?
- A
- That's correct. You need to plan to work ahead. I have office
hours nearly every week day, and the evening tutors are available
(for general help in C) every day but Friday and Saturday. Together
we should have you covered!
- Q
- Is it possible for students in the same or nearby timezone
to work with each other more often?
- A
- There is no required collaborative work other than what transpires
during class. If you want to collaborate on CAs outside of class,
you are welcome to do that with whomever you wish.
2 About Me, etc.
S2
- Q
- Do you have any book recommendations?
- A
- I'm an avid fiction reader. Before I became avid, Paul Auster
was my favorite author. I was surprised how much I enjoyed reading
Don Quixote. To pick one off the wind, one newer book I read in the
last decade that stuck with me is Hanya Yanagihara's The People
in the Trees. I also like reading Haruki Murakami, and even
Neal Stephenson, though I don't consider myself generally a sci fi
fan.
- Q
- Do you prefer cats or dogs?
- A
- Frankly, I'm not much of a pet person, but if I had to choose,
I'd say I lean slightly more canine than feline.
- Q
- Are you on campus?
- A
- Not really. I live close, but I'm not working from on campus.
If I walk by with my kids (which I often do, once the weather is warmer!),
feel free to say hello!
- Q
- I'm curious about your background: Did you ever work in industry?
What inspired you to become a Professor?
- Q
- What is your experience in tech outside or prior to your academic
career? What is your primary research in CS?
- A
- I did an extended internship as an undergraduate before then
doing a summer research experience, cemeneting my path into academia.
(The contrast informed my choices.) Broadly speaking, my research
is in computer vision and machine learning. See more details here:
https://weinman.cs.grinnell.edu/research
- Q
- Why did you decide to be a professor in college?
- A
- First, for choosing my scholarly activities, I loved the freedom
of choice an academic appointment granted me. Second, rather than
go to a large research university, I chose to be at a smaller teaching-oriented
institution like Grinnell because I get to work closely with a cohort
of simply amazing students like you! I went to a small college myself,
and the experience was truly life-shaping in all the best ways.
- Q
-
- Q
- What are the best ways to continue learning CS over the summer?
- A
- Practice! Pick a project that forces you to learn something
new. I often find that more motivating than just sitting through some
internet videos.
- Q
- Did you tell us about your hobbies? If so I'm sorry I missed
it :( Let me know!
- A
- Does raising two boisterous boys count? I like to go camping
with my family. (Tent/hike-in camping earlier in my life, then more
car camping. Finally, I bought a camper trailer during the pandemic.)
But anything that gets us outdoors. I still like to fish and kayak
as well as hike. I barbecue. (And grill. They're different.) I love
to cook generally, especially foods from around the world. I welcome
you to educate me on the finer points of your cuisine, wherever you
may be from.
S1
- Q
- I do not have questions that explicitly pertain to the course,
but on a more personal level why you got into computer science?
- A
- Tl;dr I learned about BASIC at a middle school summer camp.
I got hooked on controlling the computer, this infinitely flexible
tool. From there, I never looked back. But I was so fortunate that
I had access. Access to summer camp. Access to folks who could
make such an introduction. Access to courses in my high school. (The
list goe son.) I recognize my tremendous privilege in that access,
and wish everyone had the same opportunities I did. Even if not everyone
wants to program or learn what computing can do, I long for the day
everyone has the chance to.
- Q
- Were there any fields of computer science that you thought
you would like, but didn't?
- A
- Hrm. No one has asked that yet! Interesting. First I was going
to say no, and then I thought, well, even the stuff I didn't find
interesting at first have become more interesting as I learn more
(and can make connections to them). But, I will say that perhaps computer
networks still haven't been all that gripping for me.
- Q
- What tips you received have been the biggest help to you during
your CS career?
- A
- One of my favorite course experiences was "Research Methods
in Computer Science". Because we're taught the discipline largely
as one of software engineering or abstraction (as in theory), and
not like natural sciences, with an empirical/experimental component,
this class gave me a lot of insight about how to structure a research
program.
- Q
- What is your favorite programming language?
- A
- I don't harbor some secret love for a particular, esoteric
language. My favorite language is the one that's best for the job.
These days, I'm writing a lot of Python, and I think it's mostly developed
fairly nicely (though I am not a PL [programming languages] guy),
except I hate the use of whitespace to delimit blocks, and would much
prefer punctuation (even though this is essentially redundant, since
good style demands you use whitespace to suggest the block structure).
- Q
- This is more of a personal question, but how many classes in
CS do students usually take before landing on any tech internship?
- A
- I'm not sure, and it really depends. Some times 1. Sometimes
2. Sometimes 3. I recommend you meet with the STEM Community Director
of the CLS Office for some strategic planning and advice.
- Q
- What does your research focus on?
- A
- My research area is computer vision. Recently, I've been applying
that to integrating various information sources to "read" old
maps. You yourself can read more about my projects here: https://weinman.cs.grinnell.edu/research