About the Course/Instructor
CSC 211 - Computer Organization and Architecture - Weinman
1 About the Course
- Q.
- What would a typical exam look like and will it focus on?
- Q.
- Can you tell us more about the format of the exams?
- A.
- Topics on the exams will be given on the course schedule.
They will tell you the kinds of things you should be able to do.
- Q.
- How does this class relate to other CS classes taught at Grinnell
College and software engineering?
- Q.
- How much of the learnings from this course can be applied
to a profession such as Software Engineer/Data Engineer?
- A.
- As I've already mentioned, it's closely related to the topics
in Operating Systems and Parallel Algorithms (CSC 213), and every
programmer should understand what's happening at least one level below
the layer of abstraction at which they're working. That makes you
a much better software engineer. You'll structure things to better
respect the constraints of the hardware and/or your code will be more
efficient.
- Q.
- What would you most highly recommend for a student to do in
order to be successful in this course?
- A.
- Spend as much time considering the circuit diagrams as you
do reading the English prose. Test yourself and don't waste time re-reading.
(I give sample exercises and learning expectations for each exam;
use them!)
- Q.
- How do you grade the assignment? Is it based on a rubric?
- A.
- I use programs to grade your assignments. That, or the mentor
and I check that you did things correctly. Most of the time, the part
either all correct or all wrong. (Binary seems fitting for this class.)
- Q.
- I never heard of Piazza or used it in any of the classes.
Why did you decide to use Piazza instead of just using Blackboard?
- A.
- I used to use Blackboard discussion posts. They are consistently
terrible. Piazza allows your peers to answer (they're often faster
than I am), and the user interface is much more pleasant as well.
(For example, it's easy to tag a post with the appropriate topic,
such as "Lab 4".)
But as a PostScript, I'm sorry if they show you weird advertisements.
- Q.
- Will there be any extra credit opportunities during the semester?
- A.
- If you truly wow me on some part of your Significant Bit,
a grade of "check plus" is greater than a 4.0. Other than that,
not likely.
- Q.
- When the mentor sessions will be held (in the works)?
- A.
- Yes.
- Q.
- Will the mentor sessions be structured as office hours or
as more of a lecture?
- A.
- Not office hours as homework help, but an opportunity (with
discussion, perhaps quizzes or exercises) to engage with the material
and/or ask more questions. More testing leads to better learning,
so having an excuse/opportunity to test your knowledge should be advantageous.
- Q.
- What programming language is this class using?
- A.
- C and MIPS.
- Q.
- What are the course and the instructor about?
- A.
- Those are the blank templates for me to answer these questions.
:-)
- Q.
- Is C the only high-level programming language that we will
use in this course?
- A.
- Pretty much.
- Q.
- What portion of the course material is focussed on understanding
historical choices made by individuals and corporations and what portion
is driven by modern theoretical understanding?
- A.
- Wow, that's a fantastic question. Many systems courses are
often just a dry exposition of "here's the way things are/were."
I like that this book tends to give you a bit more theoretical motivation.
However, they are less good at focusing on the history. (That is,
until the recent CACM article mentioned that we'll probably read later.)
- Q.
- Section 6.4 states You will collaborate with
a randomly assigned partner for each lab and homework.
The lab/assignment submission guidelines mention individual assignments.
Are there any individual assignments in this class?
- A.
- Oops. That's confusing. What you don't finish during our lab
hour becomes work that you must complete, I suppose as homework. These
items and due dates are labeled on the schedule as "Lab". The
things listed as "Assignments" are the individual homeworks.
- Q.
- When are assignments assigned and what is their format? This
should also cover the answer to another question I have: How long
do we have to complete each assignment?
- A.
- Three are assignments to build circuits in a logical simulator,
and one is an assignment to write some short programs in assembly.
They will typically be out for about 7-10 days, but you'll have to
manage your time as they may overlap some with your collaborative
labwork. Early in the semester labs will mostly be competed during
class, however.
2 About Me
- Q.
- In terms of not using certain products around the classroom
and office, I usually use head & shoulders shampoo, Dove soap, and
Old Spice deodorant in the morning. If I keep with those, would it
accommodate your allergies?
- A.
- Thanks so much for asking! Those are pretty average
things and shouldn't be a problem. The only situation I could imagine
is if you showed up at 8:30 am office hours immediately after showering.
- Q.
- How do you view yourself (e.g.: as an educator, as a person,
etc.)
- A.
- Um, I use the mirror? (Har har.)
That's a pretty general question, I'm not even sure where to begin.
So here's one (since it was Friday's Merriam-Webster word of the day
and I just learned it) I'm admittedly a bit of a martinet ("a person
who stresses a rigid adherence to the details of forms and methods")
, which is probably why I identify so well with the field of computer
science. I try to mitigate when this tendency is to my disadvantage,
though I do not always succeed.
- Q.
- How did you have so many minors in your undergraduate?
- A.
- It was only two, but the conjunctions make it confusing. Allow
me to parse. My first minor was Philosophy and Religion. My second
minor was Science, Technology, and Society. I loved both, so I made
sure that pretty much every non-(CS-or-math) class I was taking counted
toward one of these. Tip o' the hat: Professor Thad Smith taught me
how to read the newspaper. (Thanks Thad!)
- Q.
- What's your favorite programming language, and why?
- A.
- If you'd asked me a few years ago, I would have said Matlab,
because it was what I did all my research work in. As a vectorized
language with an extensive toolkit, I could write powerful code with
very few statements. However, it lacks a lot of elegance as it has
evolved over several decades with lots of backwards compatibility.
These days when I have no other reason to choose something like bash
for utter simplicity (piping, redirection, and the command-line tools
get a lot of things done), I probably go to Python for its
straight-forward scripting with nice lambda and list processing features.
However, its lack of strong typing is a big headache for any serious
projects.
- Q.
- How did you first discover Grinnell, and why did you decide
to become a professor?
- A.
- Even though I grew up in Nebraska (though the far west side
of the state), I'd never heard of Grinnell until I began looking for
faculty jobs. I decided to become a professor because it gave me the
freedom to explore the realm of ideas and work to solve problems I
found important. I became a professor at a liberal arts college because
I believe I can have more impact by teaching many hundreds of students
to be critical thinkers and forces for good in the world.
- Q.
- Can you tell me about your area of expertise in the field
of CS?
- A.
- My research involves applied computer vision. You can read
about some of my projects here.
- Q.
- How many hours do you sleep regularly, and how many hours
of sleep do you recommend your students to have?
- A.
- I usually try to be lights out before 10 pm. I don't have
a smart phone, but I retreat to my bedroom by 9 pm so that I have
a full hour of wind down time. I prefer to read (usually fiction)
from 8-9 pm, but during the school year I find that time is often
spent clearing a backlog of email or making sure I'm ready for class.
Thus, the hour of screen-free time is critical. My alarm rouses me
at 6 am, for a round 8 hours.
I don't have a reference, but I've lately heard that 8.5 hours is
a healthy amount. You will learn better and retain more if you get
at least 8 hours of sleep, rather than only 6 hours of sleep to get
two more hours of work done.
- Q.
- How did you become interested in computer science?
- A.
- I was introduced to programming at a summer camp around 7th
grade (BASIC). I continued to learn more through high school classes
(Pascal, then C++).
- Q.
- What is your favorite color?
- A.
- Generally thinks in the green family. (Darker, like forest.)
Perhaps something like 0x005400.
- Q.
- What would you be doing if you weren't a computer scientist?
- A.
- Whoah. That's a hard one since doing computer science is such
a long time part of my identity. I love reading, learning, cooking,
playing music, gardening, and enjoying the outdoors, so I'd probably
try to find a vocation suitable for the liberal arts-oriented person
in me that could connect as many of those as possible.