Succeeding in CS
Succeeding in Computer Science
Below you'll find advice and guidelines from the CS staff for students in the program.
Although course prerequisites are listed in the course catalog, it is important to get an academic advisor to help plan your coursework each semester. Often the START Center provides academic advising; however, you should get a member of the computer science faculty to advise on courses within the computer science major. If you don't have an advisor contact the program chairperson Greg Gagne.
Getting Help and Using Your Instructor
You are encouraged to get help with assignments before they are due. Instructors have posted office hours that are listed on their doors, in the syllabus, and on their Canvas as well as personal web pages. If you find the posted office hours to be inconvenient for your schedule, you can also arrange a special appointment in advance by contacting your instructor.
All lower division classes have teaching assistants available, in which case you may want to make an appointment with that person for help. In addition, the first-year sequence (CMPT 201 and CMPT 202) offers a supplemental instructor that holds additional office hours. The START Center provides tutoring for most classes as well.
Preparing for Classes
Read the material to be covered in advance - it will make a lot more sense in class if you have previewed the material to be covered. There is another reason - repetition reinforces learning. A good strategy is to preview the text and online notes - skimming for terminology and conceptual structure, attend the classes and take notes, and then return to the text and read for detail. Don't make the mistake of putting off reading the assigned material until just before the test.
Attendance is strongly advised, even if you read the text - the author may not emphasis the same points that the instructor will emphasis in class. Usually additional information is also provided in the classroom and good note taking will be essential.
Participate in class and ask questions. You may prepare a list of questions in advance based upon your preview or reading of the text. Besides - asking questions exercises your grasp of the material, and reinforces your learning.
Working With Others
Don't feel as if you necessarily must tackle this class on your own. Rather, work with your fellow classmates and all learn the material together. Some things you can do include:
In addition, some programming assignments (especially in upper division courses) are assigned to a group of students rather than individually. This is typically how software is constructed in the "real world." Being able to build a program that is a collection of work contributed by several different people is an important skill you can take to the marketplace upon graduation.
Doing Well on Tests
There are two kinds of tests: in-class and take-home exams. The type of exam given is at the discretion of the instructor. Are take-home tests easier? No, take-home tests often ask more detailed questions or questions which require more thought. You may expect that the amount of time you set aside to review for an in-class test is about the same amount of time you will spend on a take-home test covering the same material.
Tips for Taking Exams
In-class exams: Please write legibly. Granted you are probably under time pressure, but indecipherable handwriting may hurt your grade! Think before you write–compose your answer in your mind before you put pen or pencil to paper.
Take-home exams: Since you have more time to construct your answers, the expectations are higher. Don't forget good grammar, sentence structure, and logical exposition. As college students you are expected to be developing good writing skills–use them. You are also encouraged (and perhaps in some cases required) to type your answers. Program source code may also be required in some cases.
Writing Well-Constructed Programs
In course programming assignments and in real life, readable, well-formatted code is essential. If your instructor requires that you follow a set of coding standards be aware of what they are and follow them.
In brief you should at least adhere to the following guidelines:
Follow an "engineering" approach to solving problems:
CAUTION: Programming can be mentally stimulating. You may experience being in the "zone" or losing track of time while designing and coding programs.