About the Course/Instructor

CSC 161 - Imperative Problem Solving and Data Structures - Weinman

1  About the Course

1.1  S2

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.

1.2  S1

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