CSCI 114 Fall 2005 Lab
Introduction to Computer Science Laboratory
Archived Class
Charles Cusack
Computer Science
Hope College



CSCI 125
CSCI 255
MATH 341



  • Brief advice
    Here are some suggestions for how to succeed in my courses.
    • Read every section of the book when it is assigned.
    • Do the suggested problems from the textbook.
    • Attend every class.
    • Do not be afraid to ask questions in class. You are likely not the only one who has the same questions!
    • Start your homework assignments early so you can ask questions when necessary.
    • Do every problem on every homework assignment.
    • Utilize the Computer Science Help Center when you get stuck while reading or doing homework.
    • Come to my office and/or e-mail me when you have questions.
    • Have an attitude that says "I want to learn as much as I can in this class" instead of "How good of a grade can I get if I do the minimum amount of work."
    General Advice
    The following things will help you do well in most courses:
    1. Focus: Focus on learning instead of grades. If you focus on learning, generally the good grades will come.
    2. Read: Read your textbook and reference materials. In many of my courses, I will not lecture through material during class. I expect that you know how to read and can learn some of the material by reading and doing suggested exercises (if they exist). Class time will be spent discussing the more difficult topics or expanding on what the book has to say. If you are not preparing for class time, you will not get as much out of class time.
    3. Attend: Whether or not attendance is required, you should always attend. There is always the possibility of missing important information if you skip class. In addition, my experience has shown that those who attend class usually do much better than those who do not.
    4. Practice: Learning is often accomplished through practice, not just by reading a book or listening to a lecture. It is much easier to understand and remember concepts when you see them in practice. Therefore you should do as many suggested problems or programs as possible.
      An analogy might help here. Learning is often like sports—you don't learn how to play basketball (or your favorite sport) by reading books and/or watching people play it. Those things can be helpful, but you will never become a proficient basketball player unless you practice. Practicing a sport involves running many drills to work on the fundamentals and then applying the skills you learned to new situations. Learning many topics is exactly the same—first you need to do lots of exercises to practice the fundamental skills. Then you can apply those skills to new situations. When you can do that well, you know you have a good understanding of the topic.
    5. Communicate: Most instructors are not mind readers, so it is important to communicate with them when appropriate.
      • Is there something in the book that doesn't make sense? Ask about it in class or in an e-mail.
      • Are you lost during class? Ask questions.
      • Having a hard time with an assignment? Attend office hours, stop by their office, ask about it before or after class, or send an e-mail.
      • Is there something about the class that you don't like? Talk with the instructor. Discussing things with the instructor can help clear up some problems. They may be unaware of some problem or you may not understand the reason behind some decision. Whatever the case may be, talking through things is much better than just assuming the worst. Even if in the end you don't see eye-to-eye, hopefully you will both appreciate where the other is coming from better.
      • Is there something you really appreciate? Instructors don't always hear feedback about the things that students like. Sharing these with your instructor will help them to keep doing these things. This will help you and future students, and it may brighten their day.
  • Homework
    • Start your homework early. This will give you more opportunities to get help.
    • Spend your time wisely. You will probably run across one or more topics or homework problems that will give you some difficulty. I often hear students say things like "I worked on that problem/program for hours and I just couldn't get it." Sometimes the problem is with how you spend your time. Successfully solving a problem requires both having the proper understanding of the relevant concepts and putting enough thought into it.
      • All the effort in the world won't help if you don't have the proper understanding.
      • Conversely, all of the knowledge in the world won't help if you don't put effort into thinking about how to solve the problem.
      In light of this, it is important to shift your focus as you are working on problems so that you are not wasting your time. Here are some specific strategies you should employ when you are having trouble with a problem.
      • Re-read the relevant section of the book. Although it may seem like a waste of time to be reading instead of getting your homework done, sometimes it is the best way to proceed. When I hear a student say they spent 3 hours working on something that should have taken 10 minutes, I usually suspect that there is something fundamental they don't understand. Had the student spent 20-30 minutes re-reading the book, they might have been done in a total of 30-40 minutes instead of 3 hours.
      • Dig in. Some problems are difficult and they take some serious thought to solve. So when you come to a problem whose solution is not obvious, put some serious thought into it. But strike a good balance here. Staring at a computer screen or piece of paper is not always the most productive thing to do. So make sure you try some of the other suggestions as appropriate.
      • Look at sample solutions. Many textbooks contain sample solutions. For some courses there is a student version of the solution manual available in the library. As you are working on a problem you should see if there is a similar problem with a solution. These can be useful as examples of how to approach a problem, write up a solution, write a proof, and sometimes even understand what the problem is even asking.
      • Move on to another problem and come back to it later. When you really get stuck and aren't making progress, sometimes this is the best thing to do. I am surprised how many times this works.
      • Get help. If you have tried the other strategies and are still stuck, it may be time to get help from someone who knows what they are talking about (e.g. me, the Help Center, someone who has done well in the course previously). However, make sure you are not going beyond the bounds of what is acceptable.
    • Review your homework. When you get your graded homework assignments back, go over them and try to determine what you did incorrectly. Then try to figure out how to do it correctly. If you cannot figure it out, ask me. You will see the material again (on future asignments or exams, for instance) so it is not helpful to ignore the mistakes and misunderstandings.