Additional asterisks (*) after a question indicate that it was asked multiple times.

Questions

  • What is different from the last time this was taught? *

In class, I mentioned that the labs have autograders and that we have in-class quizzes. I also added more labs and removed some larger programming assignments.

  • how best to prepare for class quizzes

My plan is for the quizzes to be easy enough that if you are doing the classwork and labs, you should get close to 100% even without spending extra time studying. If you aren’t able to do the classwork or labs without significant help, whether that’s from humans or from Googling/using generative AI, then you should review the lectures and consider getting extra help.

  • are quizzes on computer or paper? **

Paper.

  • can this be an online only class? *

Grade-wise, you only need to be in class for the quizzes, and in fact, you could not take any of the quizzes and just take the final instead. Most people will have a better chance of succeeding in the class by coming to lecture, but it is possible to do it all online.

  • what does the homework look like

Homework (that is, labs) will be programming projects in C.

  • do we use an IDE? *

Nope, we use the text editor vim.

  • Is C still a relevant language to learn?

Yes! Not only is it useful for understanding how computers really work, it is also frequently used in the real world. Most operating systems (e.g., Windows, Mac OS, Linux), and their mobile variants, are at least partially written in C. C is also frequently used in resource-constrained environments, such as in embedded systems, because it is very bare-bones and doesn’t use as much additional memory as languages like Python and Java.

  • What makes C unique compared to java/python?

In class, I mentioned that we can directly manipulate memory in C, unlike in Java and Python, and that it’s not object oriented. There are a lot more differences, though! I’ll just list a few. C has pointers. C is compiled (Java is too, but a bit differently) whereas Python is interpreted.

  • Will 7th edition of textbook work?

I think so! Just look in the index or table of contents to find the topics that we cover.

  • are there contingencies in case there is another hack?

I hadn’t planned any, but my plan now would be to spend some time getting everyone set up to run C on their laptops if we had another hack.

  • why is it AoE timezone? **

In my research field, most conferences have deadlines in the AoE timezone, so it just feels natural to me now. Plus, I assume we have some late-night workers in this class, so I want them to have the opportunity to finish the assignments.

  • is the Linux server available off campus?

Yep! You can access it from anywhere as long as you have internet access.

  • what’s up with the optional final/labs?

Labs are optional because many students will be able to complete the lab assignments without additional help. Your quiz grade will be the maximum of your average quiz grade over the six in-class quizzes, or your final grade. This means that if you are happy with your quiz grade, you do not need to take the final.

What parts of this course are your group members most looking forward to?

  • learning the hardware *
  • linux ***
  • Git/GitHub **
  • pointers **
  • learning C ********
  • the friends we make along the way ****
  • learning a new programming language *
  • being one step closer to graduation *
  • modifying memory **
  • using a server
  • dynamic data structures
  • using vim ****
  • lab not required *
  • smaller class size *
  • continue programming education *
  • labs ****
  • lectures **
  • passing the class **
  • skipping the final **
  • applying programming knowledge to real world problems
  • getting a good grade
  • learning how computers actually work
  • coding *
  • discord
  • learning a new language **
  • learning about structs
  • ungraded practice quiz
  • the TBD week
  • learning to ssh

What parts of this course are your group members most worried about?

  • no IDE
  • Linux
  • in-class quizzes *******
  • lots of quizzes
  • Pointers *
  • Memory management *****
  • using command line *
  • class at 8am **************
  • classwork
  • accidentally using code from a different (language?)
  • time management
  • TA assistance
  • overall difficulty of course **
  • course might be boring
  • completing labs on time **
  • learning a new language **
  • syntax errors **
  • learning new IDE
  • learning C/debugging C/C is whack ***
  • work load of course
  • can’t use chat gpt
  • having to compile every time
  • having to use vim
  • github
  • bit masking