Tips for working more productively or efficiently

These tips have been gathered from instructors, mentors, and students in CSC-151. Please suggest others.

One of the most important things to remember is that the feedback loop in CS is much different than in other fields. In most disciplines, you can do something that is not correct and not realize it. Your essay might have an incomplete argument. You might be using a source incorrectly. You may have done the wrong calculation or a calculation wrong. When working with the computer, you get immediate feedback when something is wrong, even if it’s a minor thing wrong. That makes it much harder to tell when you have reached an acceptable level or when you are close enough to correct.

How do you deal with this issue? Get help! If you struggle for more than five minutes, it’s time to stop and ask someone for help. Most Grinnellians are not accustomed to asking for help that quickly. Some aren’t even used to asking for help at all. But it’s the right thing to do.

Readings

  • Acknowledge to yourself that it’s okay if you don’t completely understand the reading or the procedures mentioned in the reading. We do the labs to help you figure things out better. Stop reading when the amount of learning per time unit starts to decrease.
  • Take notes as you go.
    • Including pointers to things (i.e., find out more about X in ….)
  • After you finish each reading, write a one-minute summary of the key points.
    • In some cases, you might write a short summary after each section.
    • Do this without looking at the reading.
  • Do the self checks.
    • Some people find it useful to read the self checks first in order to see what might be most important.
  • Get familiar with Racket documentation.
  • Read (and play with) the examples; they are usually intended to illustrate a point.
    • You should also do this in most classes; CS just differs in that you have a more natural place to experiment.
  • Go to Mentor sessions; they help you learn about the key points.

Mini-Projects (Assignments)

  • Start early. There’s some evidence that our subconscious sometimes helps us solve computational problems.
  • Keep a list of potentially helpful procedures at hand.
    • Racket procedures you’ve learned and might use.
    • Procedures you’ve written
      • You might use them directly
      • You might use them as an example of how to solve certain problems
  • Don’t be afraid to experiment.
  • Don’t spend too much time stuck. If you struggle on a problem for more than five minutes, ask a question.
    • If you won’t get the answer immediately (e.g., if it’s on Teams), move on to the next problem.
    • Take breaks that don’t involve staring at screens.
  • It helps to work in 3813/3815, since there are often folks around who might help.
  • Find other ways to get unstuck.
    • Reread the assignment/problem.
    • Check the Q&A channel for ideas.
  • Accept that you might have to re-do parts of the mini-project to achieve the grade you’d like.
    That is, it’s okay to submit work that is not perfect.
  • Consider submitting your code early to see potential issues.
  • Use evening tutors, who can give you feedback on your code.

Learning Assessments (Quizzes and Exams)

  • Make sure that you have organized your materials and notes so that you can find things quickly.
  • Do the sample LAs.
  • Write your own sample LAs.
  • Attend the mentor sessions when LAs are being discussed.