About the Course/Instructor
CSC 211 - Computer Organization and Architecture - Weinman
1 2026
1.1 About the Course
- Q.
- For an excused deadline extension, do we also have to submit
our unfinished work on the actual deadline?
- A.
- No. (That would count as a Gradescope submission, which you
probably want to minimize.)
- Q.
- To confirm: does this class not have an associated Canvas
page?
- A.
- I just published it, but the only purpose is to manage a central
repository for the Lab Peer Assessments and some online readings.
Most everything else will happen through Piazza (communication) or
Gradescope (homework submission).
- Q.
- Is there a specific IDE we have to use for programming or
are we free to choose one that we would like to use?
- A.
- Because you'll be targeting a specific machine (not the one
on which you are writing the code), the programming process for this
class will feel a little bit different. While you can certainly write
the code in whatever editor you choose, it will probably be easiest
to use the editor and IDE tied most closely to the target machine
environent (simulated or real). Thus, MARS for simulated MIPS code
and MPELab for the actual PIC32 MIPS microchip.
- Q.
- Why are there no longer term projects in this class similar
to other CSC classes. (unless the homework's are the longer term projects)
- A.
- Labs 8 through 10 all connect and build on the same artifact:
your datapath and assembler. We've just scaffolded it so you're working
on one piece at a time. The first few labs and assignments have you
building the pieces that go into that datapath from the (relative)
ground up, perpetually increasing your level of abstraction. In short,
incremental deadlines help everyone!
- Q.
- Will we have group projects in this class like we had for
CSC-161?
- A.
- Yes! Every weekly lab will be collaborative.
- Q.
- Should I print the readings that are not from the textbook
and bring them to class?
- A.
- It's not required, but you certainly may if you believe it
would be helpful.
- Q.
- What is the grading scale for the homeworks and labs?
- A.
- I should make this one of the assignment questions, shouldn't
I. You can map percentages onto grade points with a simple linear
scale, i.e., 50% is 2.00, 75% is 3.00. For the final mapping over
to letter grades, see the syllabus. (The College then maps the final
assigned letter grade back to a grade point.)
- Q.
- How much of the course is going to be coding and how much
of it will be actually building computer parts?
- A.
- I don't know if I can give you percentages, but Assignments
1-3 and Labs 1-4 and 11 are circuits. Assignments 4-5 and Labs
5-7 involve coding. Labs 8-10 (you build your computer) involve
both.
- Q.
- Are there any homework assignments that will not be turned
in via GradeScope?
- A.
- No homework assignments. The collaborative labs get manually
checked (in person), and the lab peer assessment uses a Microsoft
Form, shared directly to your email and available through Canvas.
- Q.
- Can we take pictures of the board after class ends?
- A.
- Usually not. I prefer you decide how to organize whatever
we construct on the board in your own notes, as this will help increase
your learning. (If you're not done when class ends, we can usually
delay the board erasing.)
1.2 About the Instructor
- Q.
- I am curious about your academic/work trajectory and how/why
you decided to become a professor!
- A.
- I did one extended internship in industry as an undergraduate
before transitioning to a summer research experience that put me on
a path toward graduate school. Although I thought I was headed for
a research career in industry at tha time, I eventually 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.
- What college did you graduate and get your PHD or master from?
- A.
- I went to college at Rose-Hulman Institute of Technology (CS
and Mathematics double major), and completed MSc and PhD in Computer
Science at University of Massachusetts Amherst.
- Q.
- I don't remember if I asked you previously, but what's your
favorite place that you've traveled to?
- A.
- Oh my, that's such a hard one! I've already admitted to being
terrible at favorites (and I've visited 24 countries so far.) It doesn't
make this easier, but if I eliminate the places I've travelled to
by living there for an extended period of time (Nebraska, Indiana,
Massachusetts, Germany, Denmark, and Catalunya), I'll narrow it down
to 2024 trips to Valencia, Spain for their annual Fallas festival
(highly recommend!) for the beautiful creations, intense pyrotechnics,
and renewing fires at the end; and some time spent in the Dolomites
region of Northern Italy, where you can hike beautiful mountains and
hit up the sausage/beverage shacks along the way for sustenance. (Or,
in winter, ski to said shacks.)
- Q.
- I see in the About section
that you enjoy reading fiction - Any recommendations? (When I am
not reading for school/independent study, I enjoy reading things that
people I know found interesting/entertaining/meaningful/etc.)
- A.
- I like reading authors from other cultures (usually in translation)
who can give an enriching perspective on another place or time. Writers
such as Amitav Ghosh, Olga Tokarczuk, and Yoko Ogawa come to mind.
Oh, and I finally got to recently read Love in the Time of Cholera
by Gabriel García Márquez, which was delightful. Also Shantaram
by Gregory David Roberts is a gripping tale that has stuck with me.
Paul Auster remains my favorite American author, and I always enjoy
Haruki Murakami. You're also always welcome to ask me what I'm currently
reading. (Often it's just a simple thriller for fun.) I most recently
finished Gaëlle Bélem's The Rarest Fruit.
- Q.
- What is the longest single flight you have taken?
- A.
- Houston to Sydney (for ICDAR
2019 with four MAP students) was 17h15m.
- Q.
- Have you ever built your own computer?
- A.
- I assume you mean from high abstraction components, rather
than from (say) raw transitors. I built one my senior year of high
school with an AMD K5 (133MHz), which I later upgraded to a K6 (400MHz).
Both of those CPUs live on the shelf in my office if you ever wanted
to see. Then in college I built another with a K7 (600MHz). It still
runs (Dual boots Windows 98 and RedHat 4). It lives in my research
lab. I "recently" used it to pull a file off a floppy disk for
someone.
- Q.
- I d like to know about any hobbies you may
have; are they art-related?
- A.
- I feel as though cooking is my most active hobby, but I do
play music (guitar and piano) to scratch the expressive side, and
I enjoy woodcraft, but I usually only do so when I have a specific
need/task. Last month I built a frame for one of my wife's oil paintings
(of a favorite fishing spot back in Massachusetts) using scrap wood
from our house's recent remodel. Last week I also used some of that
wood to build a silverware divider (far more utilitarian!) in our
new kitchen.
- Q.
- What are your thoughts on generative AI? Will I be able to
get a job in CS when I graduate?
- A.
- It's interesting, but it's not yet ready to replace all human
knowledge work. There seems to be a general post-COVID downturn in
the tech market these days that makes job seeking take longer than
in the recent past, but I believe you will cultivate foundational
skills that should have enduring value as you continue learning and
growing.
- Q.
- How's research going?
- A.
- Thanks for asking... Solid! My collaborators at the the University
of Minnesota recently published a paper on reading
and linking text on historical maps (ICDAR 2025) and we have a forthcoming
paper on detecting and reading text in photos (WACV 2026). Both are
currently ranked #1 on the respective test benchmarks! (MapText
and Incidental
Scene Text).
Previous Terms
2 2025
2.1 About the Course
- Q.
- Do you have any suggestions on how to take good notes for
this class?
- A.
- We will refer to figures from the book extensively. I'll show
them on the overhead. Advice? Bring a paper copy of the textbook and
don't be afraid to draw/write annotations in it. Barring that, coming
with printed copies of circuit/datapath figures (rather than code)
from the book could work. (I will post them to P-Web documents for
anyone to download.)
- Q.
- Were the two exception cases for assignment due date occur
concurrently, do we get a 48-hour extension on the assignment?
- A.
- I love that you're thinking critically about the corner
cases. :-) This hasn't happened yet; I think we'll take it on a case-by-case
basis (i.e., how far apart are these incidents and how close to the
deadline). Thanks for checking all the inputs!
- Q.
- How will the exams be structured? Will we get a small note
sheet? Basically more info around the exams would be nice.
- A.
- You will get to use a provided copy of the "Green Sheet"
(more formally known as the MIPS Reference data card from your textbook),
which has the details of the MIPS instruction set architecture. Other
than that, you'll expect to work problems that assess your mastery
of the learning outcomes as shown on the course schedule (click each
exam to see them). They are otherwise closed book and closed notes.
(Calculators will be provided when needed.) Although you can't use
a note sheet for the exam, I encourage you to consider writing one
as a way of consolidating knowledge in preparation. However, testing
yourself (not re-reading) is perhaps the best way
to learn.
- Q.
- Will we be using any programming languages other than C in
this course?
- A.
- Absolutely! We'll be learning a RISC assembly language called
MIPS. Not that you'll write programs in it beyond this class, but
it will help you to better understand the hardware/software interface
and therefore write more performant programs in higher-level languages.
- Q.
- Just being curious, why are we using the MIPS edition of the
PH textbook, not the RISC-V edition?
- Q.
- Why are we not learning ARM? Isn't that more relevant nowadays?
- A.
- Briefly, we've been teaching from the MIPS platform and using
MIPS hardware since before RISC-V existed. RISC-V avoids several quirks
that MIPS has, and the programming environment should be less finnicky
as well. Hence, a switch could happen in the future.
Once you finish the course, I recommend reading the textbook's Appendix
E, "Survey of Instruction Set Architectures" (formerly called
"A Survey of RISC Architectures for the Desktop, Server, and Embedded
Computers") for comparisons.
- Q.
- [Preface: I am not suggesting nor implying any intent or
need for myself to do this] Are we allowed to use any programming
assistance tool that is purely trained on our own code?
- A.
- Interesting thought. I suppose it's something I'd consider
(but for now I don't believe a truly "from scratch" model would
produce anything but useless jibberish or mostly repetitions of what
it's previously seen, unless you have written a truly stupendously
prodigious amount of code).
- Q.
- Preface: I saw you mentioned printing out lab exercises Do
you recommend printing out readings prior to class?
- A.
- I probably wouldn't go so far as to universally recommend
it, but it may happen often enough that you'd like to have them. In
short, I think it's not an unreasonabl ploy. (But probably print 2-up
and 2-sided to conserve paper-or of course you might consider purchasing
the physical textbook).
We have enough copies of the fourth edition (out of date in many regards,
but consistent with our sixth edition in enough) for many people to
borrow one for an extended period. Just let me know.
- Q.
- Is there any chance to implement popcorn reading in class?
- A.
- Um, probably not.
- Q.
- Is there a specific late policy for the class?
- A.
- Surprisingly, nothing as precise as what's already there.
Mostly, once I've paired students up for work for the day, I'll have
marked you as absent. (But you should still come if/when you can.)
- Q.
- If I need to present my Significant Bits the first week after
Spring break, is my proposal due before Spring break but not the first
week of Spring break?
- A.
- That's correct. A SigBit for Wednesday March 26 (Week 8) would
have its proposal due on Wednesday March 5 (Week 7).
- Q.
- One question I have is regarding the usage of circuits and
such. Will there be any guidance on how to use them safely without
lighting a fire, as I have never worked with that low level of hardware.
- A.
- Yes! We'll do our best. The likelihood is pretty low for extreme
disaster, though very minor incidents are possible.
- Q.
- How can you/ will we digitally build a computer? Are we just
running a simulation of a computer on another? Wouldn't that be limited
by the underlying computer?
- A.
- Absolutely! For example, if your underlying physical computer
doesn't support parallelism, then your virtual computer simulation
can't have true parallelism, even if the virtual ISA supports it.
- Q.
- Are we allowed to use an index card during the our bit presentation?
- A.
- Of course! You can use whatever aids are right for you.
- Q.
- Will we be able to take photos of bread boards and our work
in this class to add to our portfolio.
- A.
- What a great idea! I'm open to that, as long you don't get
derailed into other distractions that may appear on a mobile device.
- Q.
- What days specifically are our Quizzes usually on? When can
we expect them to be graded?
- A.
- I usually try to have the labs and quizzes on the same day
each week, but the MLK observation and faculty retreat days have complicated
that. Nevertheless, the dates vary and are listed on the course schedule
(mostly Wednesdays in the first half, and mostly Fridays in the second
half). I usually try to grade them the same day, and put them into
campus mail the next day.
2.2 About the Instructor
- Q.
- What was the first computer you programmed on?
- A.
- Something from the Apple ][e family in BASIC.
- Q.
- You ve been asked about chess but what about
other board games? Any favorites?
- Q.
- What s your favorite game or food?
- A.
- Board games are not my forte, but the ones I regularly agree
to play with my children (other than Sorry!) are an old (simpl)
strategy game called Twixt, and the far older Mancala.
As for non-board games, the ones I still play most often with my kids
are UNO and Phase 10. I'd like to get back into cribbage, since it's
a good way to teach them combinatorics.
As for food, that's a hard one. I love food. But maybe burnt ends
(a special barbecue preparation of beef brisket), because they're
so hard to come by (unless you happen to live next to a good barbecue
restaurant).
- Q.
- What is something I could ask about you later?
- A.
- Oh the irony. Anyway, how about upcoming summer projects?
(Will need to be sufficiently close to summer!)
- Q.
- Do you play DnD? With the subsequent question, have you played
DnD? (I have a running theory that the majority of professors at this
school have had some experience with DnD, based off past classes)
- A.
- Never have!
- Q.
- What unit/topic are you most excited to teach us this semester?
- A.
- Two points. First, I really like the beginning where we consider
the physical substract of modern computers. (It took me along time
myself to come around to this knowledge-I'd already taught this
class three times before I dove this deep.) Then, I appreciate the
last lab sequence where all the pieces come together and you have
the chance to have the pride of ownership in having developed pretty
much the whole stack.
- Q.
- What do you do beyond Computer Science?
- A.
- I often read fiction (global, literary, historical, mystery/thriller,
and/or quirky). I enjoy cooking, grilling, and barbecue. I also try
to do things outside as much as possible, whether it's reading and
cooking, or gardening, camping, mountain biking, fishing, hiking,
kayaking.
3 2023
3.1 About the Course
- Q.
- Do you maintain classroom statistics (average scores/test
scores/quizz scores) and/or share said statistics?
- A.
- No, I do not. If you have any concerns about how you are doing
in the course, I encourage you to visit me in office hours to talk
about how you're approaching the material (and of course to answer
any questions that said scores may have exposed).
- Q.
- Are quizzes usually conceptual questions or code? Is it on
paper?
- A.
- Quizzes are indeed on paper and will be a mix of problem-solving
or question answering, all related to the learning outcomes for the
previous week.
- Q.
- If I have a previous edition of the textbook, would that be
okay to use, or should I find a copy of the 6th edition?
- A.
- The fifth edition is serviceable, but anything older starts
to become problematic. For the parts we ll cover, although
page numbers are different, section numbers are the same everywhere
except chapter 4 (subtract 0.1 starting at 4.6).
- Q.
- How much does a background in physics help in this course?
- A.
- Only a little bit in the first week, but not all that much.
It's certainly not required!
- Q.
- Are there any available data on how well students' grades
were in this course?
- A.
- No.
- Q.
- How will we know which grade we got for our Significant Bit?
Will we know immediately after?
- A.
- I will send a completed version of the rubric to you via campus
mail shortly after your presentation.
- Q.
- Are we going to use Teams like other CS courses?
- A.
- No, our primary communication tool will be Piazza, with Gradescope
for grading (and P-Web a bit of occasional glue).
- Q.
- I'm wondering what the written exams/quizzes will be like?
Are they just going to be about information from the readings like
the one for Monday, or is there more that needs to be studied?
- A.
- Each exam (and quiz) has a set of associated learning outcomes
that describe what you should be able to do.
- Q.
- Do you think computer hardware or computer software is a more
promising career choice right now?
- A.
- I think knowing about both is great-as our Turing award-winning
author has said, it's a golden age for computer architecture, and
we're about to see computing paradigms shift as more specialized hardware
comes to the fore.
- Q.
- What are mentor hours listed on your website?
- A.
- Whereas I don't have office hours myself on Thursday, this
is another opportunity to check in on matters regarding the course
(most prominently, getting lab work checked off).
- Q.
- What kind of final will we have? (Multiple choice, essay,
short answer)
- A.
- It will be like a slightly longer version of the mid-term
exams. Some code writing or circuit creation, analysis of designs,
and/or performance, etc.)
- Q.
- I would like to know more about how your exams are set up,
and how you prepare students/how we can prepare.
- A.
- Set up is indicated just above. For preparation: review the
learning outcomes specified for each exam and work problems addressing
them until you feel comfortable. Visit mentor sessions and ask questions
of the mentors (the more specific the better!) or me.
- Q.
- Is there any way we can get free
extensions for assignments?
- A.
- Emergencies notwithstanding, the only standard policy on extensions
is for system failure (MathLAN and/or Gradescope).
- Q.
- What happens if we don't get enough teamwork feedback for
a grade?
- A.
- Fair question. I don't have an obvious or perfect solution,
but I will do my best to interpolate from between the responses we
do have.
3.2 About the Instructor
- Q.
- What do you enjoy about teaching (in general and in this course)?
- A.
- Generally, I love sharing a passion for technology (sometimes
it really is like magic) and help others learn skills to help them
build whatever it is they can dream. Truth be told, while the best
pedagogy has the students navigating the shoals of new-to-them waters
when learning to problem solve, there is occasionally a bit of a performative
aspect to being in the front of the class. It helps that I enjoy that
as well.
In the course, not a lot of students have played with the lowest levels
of their computing technology before, and I think it's so valuable
to understand what's happening underneath all the layers of abstraction
we're so used to (even if they are usually so beneficial).
- Q.
- What kind of foods do you like?
- A.
- I love to eat (and cook) foods from all over the world. (There's
a only a very short list of ingredients I don't care for.)
That said, regularly occurring cuisines in my household included Chinese,
Indian, Italian, Spanish, and I guess "American" (whatever that
means!).
- Q.
- What is your computer science background in?
- A.
- I do computer vision. You can read about some of my recent
projects on my research web page.
- Q.
- What's your favorite part about being a computer scientist?
- A.
- From a purely abstract point of view, learning about beautiful
patterns of computation. From an applied perspective, I love writing
programs and developing technology that helps solve important problems.
- Q.
- I want to ask about how do you learn and how that has affected
you in getting a job as well as your professional background and history.
- A.
- That's a fun one! I have learned a lot about learning science
since becoming an educator myself, and I think that like most folks,
I learn by doing. Reading is one thing (I enjoy it and do a
lot of it), but until you try something out and put it into practice,
it has very little chance of sticking (for most people). Also, learning
is effortful. Gotta put in the work! In part, I have my job
because I love learning (working in education means you're surrounded
by it, and there are lots of opportunities to keep probing at ideas,
part of the work of the university), but also because I worked to
learn the things that would help me do my job (like taking education
classes; maybe it will surprise you to learn that is not ordinarily
strictly a requirement to get a PhD and become a professor). They
have also helped me do more things in the job I have-like teach
this class! I didn't know a lot about electronics before I started
teaching this class, but I wanted to learn so I could grapple with
the lower levels of abstraction.
4 2022
4.1 About the Course
- Q.
- What day of the week will quizzes usually be?
- A.
- The schedule shows they are almost always on Fridays.
- Q.
- Is there any preferred format for notebooks for the class?
I know other courses with a lab component (for instance, in physics)
require certain types of notebook for use in the lab.
- A.
- You don't need to keep a lab book the way you might in other
science labs. The lab staff will be checking off the functionality
of your work, but not your notebook records. Thus, how you choose
to record things are up to you.
- Q.
- What would your dream computer look like?
- A.
- Oh. Hrm. I don't know, there's a lot of different ways I could
take that question. Probably it would use a lot less power than current
models do.
- Q.
- I remember during class time that you said I can send my topic
anytime I want regardless of the date I am presenting. I just wanted
to confirm this.
- A.
- Yes, you can submit your SigBit topic proposal early, any
time up to your proposal deadline.
- Q.
- When did you decide to adopt the electronics devices policy?
- A.
- I first applied it to my Spring 2018 courses.
- Q.
- What will the structure of the midterm and final exams look
like? Will there be a practical portion to them?
- A.
- I'm not sure what is meant by "practical." You'll have
to solve problems and write code. For each exam, you'll be given a
list of learning outcomes (i.e., things you are expected to know how
to do) as well as a set of potential practice problems from the textbook.
- Q.
- I have class regulary on Thursday when mentor session is held.
Is there any alternative options that I have?
- A.
- That's mentor office hours, not the mentor session, which
will be at a different time. So it's not any different than having
classes that conflict with my office hours. If you do end up having
a conflict with the scheduled mentor session time, I'm sorry.
- Q.
- What should a student do if he or she gets COVID-19 or need
to be quarantined?
- A.
- Reach out to me ASAP. Communication will be most important
so we can determine how best to proceed with keeping you on track
with the course.
- Q.
- I have seen the cases for other classes doing hybrid classes
because of COVID, and I was wondering how it would look like for CSC211
(if we are using physical circuits... etc... )
- A.
- If you are out sick and/or need to isolate, you will be granted
an extension on any labs requiring the use of physical hardware.
- Q.
- What things do students that do well in this class do? Another
way of asking this question might be what are a few historically profitable
habits in regards to this class?
- A.
- This is such a great question! I only see a small part of
student's study habits, but here are some things I've noticed.
- They take good notes. (I'm happy to review your notes with you if
you want feedback).
- They ask questions during class.
- They start homework early and use several opportunities to ask questions
each day as they arise.
- They attend mentor sessions.
- They work suggested practice problems from the textbook and ask questions
about those they do not understand.
- Q.
- I wonder if you have any extra tips for working on the labs
in this course, and how to best absorb the information in the course
(I did find your recommendations for reading texts especially helpful).
- A.
- For physical circuits, work slowly, and carefully. Keep your
build organized. Double-check your work AS YOU GO. If it doesn't work
after you've built it all, it can be very tedious to double check
then. (Though you'll need to.
For simulations, you'll also want to keep things well-organized and
documented.
For homework start early, and ask questions at several points as you
hit roadblocks. Don't wallow for especially long periods.
- Q.
- What should a student do if they feel like they are falling
behind?
- A.
- Come and talk in office hours (instructor and/or mentor's)
and go to mentor sessions. Try to come prepared with questions about
things you feel uncertain about; that will go a long way toward helping
to focus discussions.
- Q.
- Will we be learning how to solder, or doing any soldering??
- A.
- Sadly, no. That's covered in PHY 220 (Electronics),
and we'll be doing all our work on the breadboard for easy construction/deconstruction
(with no hazardous fumes).
- Q.
- Will there be any particular safety equipment or procedures
we will need to familiarize ourselves with when putting together/handling
physical components? I tend to get somewhat anxious about breaking
equipment, and the Dilbert comic reminded me how easily things like
frying a stick of RAM can occur.
- A.
- Thanks for asking! Most of our equipment is not that expensive
(ranging from pennies for individual chips to about $50 for the Microstick),
but some general care will go a long way. We won't worry too much
about it. (And, per the comic, it's CMOS chips that are more dreadfully
susceptible to static; that's one reason we're using TTL chips.)
- Q.
- Do I get to keep anything I build?
- A.
- Only memories. But some will be driven by software, so that's
certainly yours to own. (You'll have to supply your own microprocessor
on which to run it, though.)
- Q.
- When will I be able to declare as a CS major?
- A.
- The process will begin collectively for the class of 2024
in late February or early March so that we can hit the "by spring
break" declaration deadline.
- Q.
- Most of the CS classes before are all related to codes. How
do we study for this class then? Do we need to focus on the concepts
and how they're connected, or rather focus more on the lab practices?
- A.
- Some of this class will also be about writing code (in assembly
language), but otherwise using circuits and logic to solve problems
related to computing design. Each exam will have a list of skills
you're expected to perform and textbook exercises to help practice
them.
- Q.
- In this class, we'll be learning about the MIPS architecture
and assembly language. How big of a difference is there between MIPS
and ARM? Will we be able to work in ARM assembly fairly easily after
this course?
- A.
- While I am not intimiately familiar with ARM, I surmise you'll
be able to take it up, as it shares a lot of underlying design philosophy
with MIPS (namely, RISC).
- Q.
- Will we be informed about quizzes ahead of time, or are they
intended to be surprise quizzes?
- A.
- They're all on the schedule already. No surprises!
- Q.
- Are there opportunities for extra-credit in the class?
- A.
- No; equity is important for me and I want my course credit
practices to be based strictly on the learning outcomes, rather than
extras you may or may not have bandwidth to accomplish.
- Q.
- It is interesting that Assignments and Labs take up a bulk
of the grade for the class. Is there a pedagogical or psychological
rationale/explanation for this?
- A.
- Well, the remainder would just be timed exams and quizzes.
Making it more like 80-90% exams would be more like educational practices
in many other countries perhaps, but I think this is more a balanced
measure of all the skills I want you to be able to demonstrate in
the course. Some things need more time, and some things I can be surer
of by way of an exam, so I've tried to balance their contribution
to your overal assessment.
- Q.
- Also slightly related, but are there some mistakes people
have made in the past on assignments and labs that we should be wary
of?
- A.
- Hrm. Not paying attention to grader feedback on the style
points. Not reading instructions carefully (for example: "we won't
use the delay slot in MARS, so don't write for it" was one instruction
a very smart student ignored, and it cost a lot of points.)
- Q.
- How much of the stuff we learn in this class can apply to
Arduino boards?
- A.
- Quite a lot actually. You'll have a few deficiencies, but
nothing a few tutorials won't remedy.
- Q.
- If you had limitless resources and authority to change anything
about the way this class (or any other CS course) is taught in Grinnell,
what would you change?
- A.
- Hrm. I'd love if we could do a two-semester required course
that integrated 211 and 213.
4.2 About the Instructor
- Q.
- It would be interesting to ask, What are your
passions besides Computer Science?
- A.
- Top #3: Cooking (esp. international cuisines). Doing things
outdoors (including cooking). Reading (not necessarily outdoors or
about food, but mostly [literary?] fiction, as a break from my
non-fictional day job.
- Q.
- Who is your favorite (or role model) computer scientist of
all time?
- A.
- My family will tell you I'm terrible at favorites. I certainly
admire Turing because he thought creatively, wrote exceedingly well,
looked for applications across a many number of disciplines (cf. evolutionary
biology), worked for the public good, and suffered through some of
the most awful oppression imagineable.
- Q.
- Which class is your favorite one to teach?
- A.
- Ditto. Bad at favorites. I enjoy CSC 211 (actually using my
fingers on something other than a keyboard is very nice), and CSC
261/CSC 262 (my specializations, which I love to share enthusiasm
for).
- Q.
- What was your favorite computer science course in college?
- A.
- Probably my favorite class was the mathematics of image processing.
It was a math class, but launched my professional career in a way.
I eventually took computer vision as a computer science class, but
it was the math class that I most appreciated, being fundamentally
about representation (with a totally new appreciation for linear algebra).
- Q.
- P=NP?
- A.
- 0x0
- Q.
- I'm always curious to learn more about my professors: What
got you interested in computers in the first place? Why are you teaching
this class in particular? What's your favorite class to teach?
- A.
- I took a BASIC programming class at a summer camp in 7th grade.
I loved the logic and control that came with writing programs; to
me it felt like wizardry (this was decades before Harry Potter).
I started teaching this class because there was a need. While I took
Computer Architecture in college myself, I did not in graduate school
and I remembered only the experience of having created my own computer
design, but almost none of the actual material. So the first time
I did not teach the labs, only the lecture section (it was not taught
in a workshop format then). It turns out I really enjoy teaching the
class and have learned so much in doing so (it also was an excuse
for me to take PHY 220 Electronics with Professor Tjossem a
few years ago so I could really understand what was happening one
level of abstraction below where I was working). This class is now
one of my favorites. For the others, see above.
- Q.
- Do you like/play chess?
- A.
- I don't play chess. My kids do, though. They play against
each other (ages 6 and 9), since their old man doesn't.
- Q.
- How much has the field of Computer Architecture changed since
you first came across it? (Except for Moore s Law,
the proverbial silicon elephant in the room.)
- A.
- I mentioned I used the same textbook in 1999. That hasn't
changed, but the field's embrace of the ideas in that book are finally
coming around, a quarter century later. RISC machines are dominating
now, because portable computing is the major source of sales and even
Apple devices are now exclusively using RISC (ARM) chips. It may be
the the days of CISC (x86) are numbered.
- Q.
- What is your least favorite color? What non-CS courses at
Grinnell would you recommend to a student?
- A.
- Oh, but there's 16,777,216 to choose from. How could I ever?
(No idea: favorite is green.) I love the Catalog's six Elements
of a Liberal Education, so I strongly encourage students to experience
the multiple "ways of knowing" outlined there.
- Q.
- Do you have a favorite algorithm related to machine learning?
- A.
- Oh, so many to choose from and so bad at favorites! Temporal
difference updates (from reinforcement learning) are pretty cool,
but I also love belief propagation. Or maybe just Bayes' rule!
- Q.
-
5 2020
5.1 About the Course
- Q.
- How will you grade things anonymously? I notice you want us
to include a reference document for each lab, so will that be used
for you to know our identity?
- A.
- Your name won't be on the physical work that we look at, but
since you will turn it in through a computer system, the folder it
belongs to is associated with your name. And yes, the references do
de-anonymize you (through your "initials"-cum-signature), but
we don't read that until after we've established a baseline grade.
- Q.
- Is there a software that we would need to download for the
course?
- A.
- It is optional and will be covered as we progress through
the labs. In short, all is available via the MathLAN already, though
it is free/libre and also available for your own personal devices.
- Q.
- What parts of the course have students historically found
most interesting, and what have they most struggled with?
- A.
- Ooh, that's a cool question. I always ask what students enjoyed
most about he course ... but those papers are locked up in my office
on campus. I'd like to think the biggest struggles are with the software
we use, rather than any concepts. I look forward to learning your
answers to these questions.
- Q.
- I was originally going to say no further questions, but I
remembered I wanted to ask what steps should I take to get a tutor
for this course.
- A.
- It s very early in the course, and I sense
you might be having some trepidation. I admit it feels like we re
moving fast, but I will also share with you that the class sessions
are in fact exactly the same and at the same speed as in our fourteen
week semester. (There s only fewer of them.) So take
heart - you can do this, just like many students before you have.
I encourage you to develop connections with those in the course and
perhaps find ways you can work and study together. (The labs are collaborative,
so you already have that as an advantage.)
There aren t generally individual tutors for courses
above the 100-level intro sequence (CSC 151 and CSC 161). However,
the mentor and I are available for copious amounts of office hours,
so I hope you will avail yourself of us to ask lots of questions as
they arise. I wouldn t be sad if you dropped by every
single day!
Please keep me posted on how things are going for you.
5.2 About the Instructor
- Q.
- What do you like to do for fun?
- A.
- I love cooking (especially barbecue and grilling - they
are different! - but also many foods from around the world), being
outdoors (fishing, hiking, camping, etc.), and traveling. I also read
fiction extensively (I try to spend my last hour of the evening reading
fiction.)
- Q.
- Have you taught your children how to code yet, and if not,
do you plan on teaching them while they re young?
- A.
- Yes, we started playing Robot Turtles at age 4, and my 7yo
is already programming in blocks languages (for his legos and Scratch,
Jr.).
- Q.
- What s your view on bionic implants, specifically
cybernetic eyes?
- A.
- Sounds hard, but it would be cool for the visually impaired.
And game changing for those who wire in alternate spectral modalities
(i.e., infrared, thermal, etc.). Mind blown.
- Q.
- I m interested in increasing course integrations
for the Maker Lab and was wondering if you had any project ideas on
how the Maker Lab could help enrich CS courses.
- A.
- None immediately come to mind, but I will let you know!
- Q.
- How did you end up at Grinnell?
- A.
- Briefly, I wanted to focus on teaching at least as much as
I do on scholarship (research); Grinnell's application deadline was
earliest among the places I applied, and they won the race by giving
me an offer to work here first. I'm tremendously fortunate to belong
to such a fantastic community.
- Q.
- This might be kind of mundane, but how do you want me to address
you in emails? Professor Weinman, Jerod, Prof Weinman, Prof Jerod,
something else?
- A.
- Either Professor/Prof. Weinman or Jerod, I suppose. Just Jerod
is fine. Thanks for asking!
- Q.
- Favorite dinosaur
- A.
- Hm. Big thumbs up to Iguanodon.
6 2019
6.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
is 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.
- 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.
6.2 About the Instructor
- 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 things 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.
7 2018
7.1 About the Course
- Q
- Are we allowed to use calculators during class and/or exams?
- A
- Yes; I'll make sure they're provided at appropriate points.
- Q
- why does the course need to be 2 hours 3 times a week?
- A
- It's a workshop-style lab science course. That means
we need plenty of time for you to work in class where your partner,
the mentor, and professor are available simultaneously.
7.2 About the Instructor
- Q
- Do you have any hidden talents?
- A
- I'm assuming you mean hidden from you, rather than hidden
from me (which would mean the answer is "I don't know-they're
still hidden!"). I'm a fair fingerstyle guitar player and a pretty
decent cook.
- Q
- Do you have any insight into the (possible) overlap of computer
science and religious studies?
- A
- Just as one example, there is a lot of computational work in
reconstructing ancient texts (usually religious). I find both image-based
and language-based approaches deeply interesting.
- Q
- What is your favorite thing to eat when you are sick?
- A
- Hm. I suppose it depends on what I'm sick with. Usually I don't
eat much of anything, but try to drink a lot of water and tea.
- Q
- Where is your field of expertise in CS.
- A
- Computer vision, powered by machine learning and artificial
intelligence. Most recently, I've been working to automatically
extract textual and geographical information from photographs of historical
maps.
- Q
- Why did you decide to major in computer science, is that reason
still the same, and do you have any regrets?
- A
- I was first introduced to programming in seventh grade at a
summer camp. Since then, I've loved controlling the machine and using
it to solve problems. While I currently program machines to learn,
I still love using them to solve problems (see the previous question.
No regrets about CS!
- Q
- Why have you decided to continue teaching at Grinnell for so
long?
- A
- Well, getting tenure certainly helps. But in all seriousness,
I share Grinnell's commitment to social justice, and I love the kind
of student that ethos attracts, particularly in Computer Science,
where its easy simply to be dazzled by many other factors.
- Q
- How did you decide on what you wanted to specialize in and
learn it?
- A
- As a college junior, I took a class on the mathematics of image
processing. I loved the simultaneous beauty of the abstraction and
the concrete visual results. From there I continued to learn more
about computer vision and machine learning (taking college classes
in each). So at its root, it was about exploring to find something
that truly fascinated me as useful, interesting, and beautiful.
8 2015
8.1 About the Course
- Q
- In the past, I ve used Stack Overflow and similar
websites for information while working on assignments. Could you clarify
what level of specificity is allowed when looking for help online?
- A
- Per the syllabus:
- Your written work must be your own. You must not share code (unless
explicitly permitted) or copy written solutions. In short, although
you may collaborate with others to understand how to solve problems,
you should be able to construct and explain each solution on your
own.
- All the work submitted (code, experimental data, write-ups, etc.)
must be your own. Code or documentation provided by the instructor
must be attributed; no other code or written work (from any source)
may be shared with others or copied for your own use.
That means (more or less) you shouldn't copy solutions from online,
but if you didn't understand the transistor reading you're more than
welcome to find other sources discussing them.
- Q
- For someone who enjoys coding, but is unsure about his interest
in the actual construction of circuits and the inner workings of computers,
how will I stack up against the students who have a background in
this field? Should I be worried?
- A
- Nah. We're all in this together, and my best advice is that
all good programmers understand what is happening at the level of
abstraction beneath where they are programming.
- Q
- How much time should I expect to spend on the weekly assignments?
- A
- It will vary. Some will be holdovers from lab, but my hope
is 1-2 hours, on average.
- Q
- Is tutoring available for the class?
- A
- No; for better or worse I'm your primary resource other than
your peers.
- Q
- What language will we be using in this class?
- A
- MIPS, C, and logic gates.
- Q
- I am curious about how much the workload will be from the course.
- A
- Me too.
- Q
- The David Kramer cited under section 5.5 of the Syllabus is
not David Kraemer, the student, correct?
- A
- I'm assuming not, but as was pointed out in class, I've never
seen them in the same place simultaneously.
- Q
- In section 5.1 (The Final Notes
part), you say, After carefully reading the material,
mentally review and try making a few notes to yourself...
Is this supposed to mean that we need to physically write down our
notes? Is mentally taking notes enough or do we need a physical reading
journal?
- A
- There's no formal journal requirement, but you're more likely
to remember what to ask about in class if you actually write things
down (you'll also perhaps answer your own question, as writing is
a form of thinking).
- Q
- The other question is: the significant bits assignment page
(in the Schedule section) tells
us to arrive to class 10-15 minutes early in order to set up. Because
I have another class until 10:50, this is impossible for me. Is this
condition necessary to fully complete the significant bits assignment?
If so, what should I do to accommodate this?
- A
- That's a good question (I've always done this at 8 AM). No,
I don't think it's an impediment; but you will want to be ready to
go at 11 sharp. You could consider setting up in the 9 AM hour (no
other class is there) and locking the workstation screen.
8.2 About the Instructor
- Q
- I am debating right now whether I should go to grad school
or get a job. I always find it interesting to learn more about why
people choose one over the other. Why did you choose to become a teacher
over working in the industry?
- A
- I love that as an academic I have the freedom to pursue the
questions that matter and are interesting to me. I also am blessed
to interact with the wonderful and creative people that you all are
in the classroom. It all means I never get to stop learning.
- Q
- What things do you like to do outside of teaching?
- A
- Many things revolving around food: gardening, preserving, barbecuing
(yes, with fire at 225), and occasionally hunting and fishing
as well. I also love playing with my toddler (who I sometimes make
music with).
- Q
- Do you listen to music for fun? If so, what is currently your
jam?
- A
- These days I listen to broadcasts more than my own picks. WMUA
(jazz and world music blocks) from 8-3:30, KCRW
(Morning Becomes Eclectic and Eclectic 24) from 3:30-5, and IPR
(Studio One Tracks) from 7-9.
When I run, it's my iPod punk playlist, though.
- Q
- What is your vision for the future of AI and its various implications
for humanity?
- A
- I'm not sure I have a vision, but I hope it's positive.
- Q
- I have a few questions regarding lab with Charlie, but nothing
specifically for you (though I am curious if there are photos from
this band you were in).
- A
- (One has been hanging on my inside office bulletin board for
seven years.)