0% found this document useful (0 votes)
52 views

Survival Guide

This document provides a survival guide for students taking CS 135, an introductory computer science course. It outlines the course philosophy and goals, which include focusing on fundamental concepts and building knowledge in small steps rather than large leaps. It emphasizes that doing assignments is key to success in the course, as assignments provide practice and feedback. Lectures illustrate concepts but students must take their own notes, as not everything is written on slides. The textbook is integral to the course and should be read before lectures and assignments.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views

Survival Guide

This document provides a survival guide for students taking CS 135, an introductory computer science course. It outlines the course philosophy and goals, which include focusing on fundamental concepts and building knowledge in small steps rather than large leaps. It emphasizes that doing assignments is key to success in the course, as assignments provide practice and feedback. Lectures illustrate concepts but students must take their own notes, as not everything is written on slides. The textbook is integral to the course and should be read before lectures and assignments.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

CS 135 Survival Guide

Why a survival guide?


CS 135 is designed to be well within the reach of all university students. There is no material in CS 135 that is beyond your abilities, and there is no reason that you should not succeed in it. However, the nature of computer science can make any introductory course a challenge to those who do not develop the right work habits. This survival guide is a collection of guidelines, tips, suggestions, and background information to help you make the best of your opportunities. It is based on the experience of rst-year students facing their rst university course in computer science.

Course philosophy
We designed CS 135 for students in diverse programs, keeping in mind the large range of possible ways in which computer science might be integrated into future studies. By choosing to focus on fundamental concepts and study them in depth, we are giving students transferable skills on which to build (rather then providing a shallow overview of the breadth of the eld of computer science). The material in CS 135 lends itself very nicely to being built up in successive layers, where a new layer is added only when the previous one is completely explained and understood. One of our goals is to progress through the material in small steps rather than huge leaps. When you use a Web browser, e-mailer, or other modern computer application, theres a lot going on behind the scenes. One of our goals is to have as little magic as possible. You might hear us saying Know your tools. That means understanding not only what the tools do, but how they do it. In many cases, we will show how to implement built-in features of Scheme, rather than just describe them. Each component of the course has a role to Doing the assignments is the play: lectures, the textbook and assignments teach you the material and give you a chance to prackey to doing well in the course. tice; assignments and midterms provide diagnosThe process of arriving at the tics, giving you feedback on whether or not you answer is more important than are on the right track; and assignments, midterms, the answer itself. and the nal are used for assessment (computing your mark in the course). Lectures illustrate concepts and techniques; assignments give you practice in those concepts and techniques, strengthening your existing skills and teaching you new ones. Most of the learning in CS 135 takes place through your working through problems on your own. In many cases the nal answer isnt particularly relevant; its going through the process of arriving at the nal answer thats important. Doing the assignments is the key to doing well in the course. Skipping assignments would be like trying to learn to play a musical instrument without practicing, attempting to master

a language without speaking it, or claiming to be an outstanding artist or athlete based solely on theoretical understanding of the underlying principles of the eld. In previous offerings of rst-year courses, we have discovered that the number of assignment questions submitted was a better predictor of nal grades than were high school marks. Some students make the mistake of thinking that these components arent important because they only account for 20% of the nal grade, or that they can skip one assignment because its worth so little. But an assignment question worth less than 1% of the nal grade could provide important insight into a concept tested by a nal exam question weighted more heavily. If assignments are so important, why You must earn an overall passing arent they weighted as a greater percentage of the nal grade? Your nal grade is supgrade in the assignments in order to posed to be an indication of how well you pass the course. have mastered course material. Thats assessment, which occurs after learning. Lectures are part of the learning process, so you dont receive marks for attendance. If we took the assignments out of the nal grade computation, youd be tempted not to do them, and put yourself in serious danger of failing the nal exam. So we make them worth a little bit to encourage you to do what you should be doing for your own good anyway. In fact, you must earn an overall passing grade in the assignments in order to pass the course.

Lectures
Weve tried to create a lightweight implementation of the basic course outline. Instead of having a xed set of slides for each lecture, weve grouped slides into thematic units we call lecture modules, with only a rough idea of how long we will take to cover each one. That way, if you ask a lot of questions, we dont have to rush over subsequent material to catch up with a ticking clock. The instructors work from the same set of lecture notes, though each will say different things, and possibly write different examples on the board (or overhead projector, or data projector). If you have to miss your lecture, it is better to attend another lecture than not attend any that day. However you should be aware that as the sections may drift a little out of sync, you may still end up missing some material. In addition, you should be sure that you are not taking a seat from someone who is legitimately enrolled in that section. For possibly the rst time in your life, no one Deadlines are rm. is forcing you to go to lectures. You are free to not attend. This honour system is built on the assumption that this freedom will be exercised responsibly. Other aspects of this assumption include the assumption that students will complete the required work on time, as deadlines are rm and no bonus assignments are handed out to bolster marks. You may be tempted to skip lecture because the text of all lecture slides is available on the web; surely you can do just as well reading them? If we thought that, we wouldnt be lecturing. The slides are like basic musical chords over which we improvise a melody; the chords alone do not make up the whole song. Not everything is written down on the slides. Its not that weve 2

deliberately left things out; its just that we dont design the slides to be the sole source of learning, but rather as an aid in lecturing. The handouts contain the text of the slides so that you dont need to scribble madly while we display them. That frees up your time so that you can take proper notes on what we say in class. Weve seen students write down only what we write on the board, or not write anything down at all, guring that the slides do all their work for them. Thats a mistake; you cant possibly remember all of what is said in all of the lectures you will attend during a term. Taking notes helps x information in your long-term memory, keeps you active, and allows you to preserve insights that you gain during the course of a lecture. Going to lectures reserves three hours of dedicated time each week during which you are think- You cant remember all the ing about course material, with the aid of someone important stuff in a lecture; who understands it thoroughly. Its a rare student take notes. who is disciplined enough to skip lectures and adequately substitute for that experience. Of course, not every minute of lectures is quality time, but you wont know what youre missing if you dont attend. Take something discreet to do (like your math homework or a good novel) during the stretches where theres an extra example of something you already understand, and make sure you keep one eye and ear on whats going on. Youre sharing space, so dont do anything that might annoy or distract your classmates: dont let your cell phone ring, dont rustle food wrappers loudly, and dont play video games on your laptop.

The textbook
CS 135 wouldnt exist if it werent for our textbook, How to Design Programs. CS is not a eld blessed with an abundance of good textbooks, due to its very short history and the ever-changing nature of the curriculum. This is one of the better textbooks. The lectures are designed on the assumption that youll do the assigned readingsbefore lecture if possible, but certainly before you attempt to do the corresponding assignment. This is not a textbook to be used for reference, to be looked at only when you run into trouble on an assignment. That will only increase the amount of time youll need to get your work done. (Well say more about doing assignments below.) On occasion, we will use the same examples in lectures as in the textbook, illustrating different aspects. More often, we will use different examples, and at times, we will parallel the book by covering the same concepts using different language and a different approach. Sometimes, we will go more in depth than the textbook (it assumes eighth-grade knowledge of mathematics, and we can expect better than that of you) and sometimes we will skim a topic, leaving the details to the readings. But the textbook always informs and directs our efforts. The textbook is available on-line, but we recommend that you buy a physical copy. Paper has more psychological weight; you will be more inclined to take your readings seriously, and get more out of them, than if you view them on a screen. Its quite unusual for the publisher to agree to such an arrangement; neither they nor the authors are really making any money from it. Since the book is so integral to the course, were not going to change books; used copies will be available for you to purchase if you act fast, and you in turn can sell your copy to next years students. 3

Assignments
It is on assignments that poor work habits may be most obvious, since programming, approached incorrectly, can quickly become a timesink. Its possible to spend far too much time on CS assignments, because its easy to believe that youre really close to a solution and the next change you make to your program will have it running perfectly. Hours go by before you realize it. Dont waste your time grinding away at a question; if you feel youre not making progress, go on to another question, or even switch to working on another course, and come back later. Weve had students say, I cant nd an example in the textbook that looks like this assignment question. We try not to ask assignment questions that look like examples, because we want you to be able to write programs from scratch, not just modify examples that you dont fully understand. Some students try to do CS assignments by looking at the assignment Use the for the rst time while sitting in front of their computer. They read the rst question and immediately start to write a program. Wed like to suggest a design recipe. more productive approach. Read the assignment away from your computer, and think about how you might solve the questions. The lectures and the textbook teach something called the design recipe. This is a process to go through in writing a Scheme function or set of functions to solve a problem. The authors of the textbook came up with the design recipe by observing students in the lab and noticing when and how they ran into difculties, and what worked to help overcome their difculties. We encourage you to use the design recipe by assigning marks to its various components (since they help us to see that you understand what you are doing). You can, of course, get your program running and then put in all the components worth marks afterwards. But following the process properly will save you time and reduce frustration. In CS 135, the programs you have to write are usually quite small; most of your time should be spent on thought. The design recipe may include templates, which are function skeletons derived from data denitions. Some students in previous offerings of CS 135 Use the have reported that the assignments took half as much time when they used public tests. the templates as we suggest. We also provide public tests. You must use the public tests to prevent losing marks when our automarking software cant nd your answer because you spelled the name of your function incorrectly. You may use your own computer, or you may use the computers in the public Mac labs in the Math & Computer building. Details on how to copy your les to/from the Macs, how to electronically submit your work, and some details of the program style that we expect can be found in the submission and style guide, also included here in the course handouts. We have scheduled assignments (roughly one per week) so that the work is spread out evenly across the term. We recommend that you start each assignment shortly after nishing the previous assignment, putting in a solid but not excessive amount of time. This allows you to have time to set it aside and come back to it later. Starting early allows you to discover difculties and get help, and you will nd that when you return to questions fresh, you will see ways to solve problems that you couldnt see before. Although this advice holds for any course, it is particularly important for computer science. You should try to complete the whole assignment, but if it turns out that you dont have time 4

to do it all, submit what you have, even if it is incomplete. You will still get written feedback from the markers, and you may get some marks as well. When you skip an assignment, you are likely to nd the next one more difcult. Do your best to avoid skipping assignments, and make sure you have a sense of how to do each question, even if you dont submit each one. Finally, when you get back your assignments, dont just glance at the mark and toss it aside. Learn from your mistakes. Model solutions will be posted on the course web site shortly after each assignment is due. In some cases several alternate solu- Pick up your marked tions will be presented. Study these to make sure you understand assignments; learn the material; this will pay off on later assignments and on exams. from your mistakes. This is true even for students who receive perfect marks, as even a solution that has no obvious aw might be able to be improved in elegance or other attributes. If nothing else, knowing how to nd a shorter solution will be of great benet on exams.

The midterm exams


The midterm exams have a diagnostic purpose: they give you feedback on what you thought you understood (but didnt) and what you thought you didnt understand (but did). Having a chance to take an exam before the nal also gives you an indication of what that experience might be like. As with assignments, if we dont make them worth some percentage of the nal grade, students tend not to take them seriously, and so their value is lost. So midterms account for a modest fraction of the nal grade. Midterm questions will resemble assignment questions, except that we cant ask you questions that will take too much time, either to discover the answer or to write it down. You also wont have a computer to use during the midterm (or on the nal exam), meaning we cant ask you questions for which you need to go through a process of discovery and renement (as we can on assignments). We wont ask you to write down memorized denitions. Obviously, you need to know the syntax of Scheme and the meanings of terms and phrases that we use. But we will test that understanding by asking questions where you need to use this material, not just repeat it from memory. The best way to do well on the midterms is to learn the The course does change material as its presented in class and exercised in tutorials and on assignments. It helps to plan for exam study as part from term to term. of your weekly schedule. Start preparing review sheets as you learn material rather than waiting until right before an exam. During the midterm exam period, there is a temptation to neglect all courses except the one with the next exam; if you do this, you may nd yourself behind and unable to catch up. Your studying should be active. Find questions in the textbook not already assigned and write out complete answers. Course personnel will be happy to answer any questions you encounter along the way. We recommend not using midterms from past years as study guides. Each term, we create midterms from scratch, and the course does change from term to term. Past midterms may give you a misleading sense of what this terms tests will be like. As with assignments, we wont ask 5

you to do things that are just minor tweaks on lecture examples; we try to design questions that test deeper understanding. We also recommend not cramming at the last minute. This type of study results in shallow, easily forgotten understanding of a sort inappropriate to CS 135. Cramming works best when you have to repeat denitions and do things nearly identical to what youve already done, and were not going to ask you exam questions like that. 1A midterm marks are a shock to some students, because theyre the rst conrmation that grades tend to be lower in university than in high school. We dont plan it that way, but were probably asking more of you than your high school did, so it makes sense. We dont have a predetermined average or failure rate in mind, and we will not adjust the marks with a bell curve or any other method, unless we feel that a test was somehow awed. We try to design tests that are good indicators of the necessary breadth and depth of knowledge. Typical midterm averages in rst-year CS courses are between 65% and 75%. Dont let a low mark throw you. Examine your study and work habits, with the advice of an instructor or tutor, and see what you can do to improve the results of the next test. As a signicant fraction of your mark is based on the nal, you have adequate opportunity to improve your performance. Dont let a high mark lead you to become complacent and slack off. CS 135 gets harder as the term progresses (most courses do, since later material can build on earlier material). But the course is designed so that students can do well if they approach it correctly.

The nal exam


Most of the comments we made above about the midterms also apply to the nal exam, but there are some key dif- Start studying early, study ferences. The nal exam isnt diagnostic, but straight asactively, and dont cram. sessment. For that reason, it makes up the most signicant component of your nal mark, which will be viewed by observers as an indication of how well you have mastered course material. Also, you dont get the nal exam back, so there is no chance to learn from your mistakes. You should approach the nal in the same fashion that we recommended you approach the midterms: start studying early, study actively, and dont cram. In order to pass the course, you must pass the weighted exam mark (the sum of each exam percentage multipled by its weight, all divided through by the total exam weight).

Final grades
Youd think that there wouldnt be much to do once the nal exam is over: enter the grades into the spreadsheet, and submit the nal marks. But we have to make sure that the marks reect what we know of the students with whom weve been in contact. We go over the spreadsheet looking for anomalies (for example, students who have good marks up until the nal exam). We also go over the exams of all students with computed nal marks between 46 (sometimes lower) and 49, 6

looking for evidence that they deserve to pass. The students who end up failing (and we hope that this number is as small as possible) are those for whom we cannot nd any evidence that they should continue with a successor course. In previous years, these were students who did poorly on the midterm exams and didnt take steps to improve their habits, or those who did okay on the rst midterm, worse on the second, and submitted few or no assignment questions in the second half of the course. Since entry to CS 136 requires a mark of 60 or better, we will In order to pass the review the situation for students with computed nal marks becourse, you must tween 56 (sometimes lower) and 59 as well. The exam marks are a crucial part of your mark. As noted pass the weighted above, in order to pass the course, you must pass the weighted exam mark. exam mark (the sum of each exam percentage multiplied by its weight, all divided through by the total exam weight).

Getting help and avoiding trouble


Sources of assistance
We encourage you to ask course personnel for help. The tutors have regular ofce hours, as do each of the instructors; the tutors answer e-mail sent to the course account, and the instructors will answer personal e-mail. Generally, ofce hours are not used enough, except perhaps right before an assignment is due. Note that course personnel tend to be available during the day; if you like to work late at night, thats okay, but be warned that help is generally not available at that time. Getting help from fellow students can be problematic. While we encourage you to talk about ideas learned in lecture or from the book, you should avoid asking others about specic questions on assignments. You might nd yourself accused of plagiarism, which we discuss in the next section.

Plagiarism
Plagiarism is the act of representing someone elses work as your own. Some students do this deliberately, believing that getting a good mark on an assignment by copying from a friend is more important than doing the work themselves to learn the material. This will hurt them on the midterms and nal exam, which largely determine their nal grade. But it also hurts other students, because the plagiarist has earned marks they do not deserve, and that will be taken as evidence of their having demonstrated skills that they do not really possess. When they turn out to be incompetent, in later classes or in the workplace, it reects badly on their classmates; even those who earned their marks fairly will come under suspicion. For this reason, UW takes a rm stand against plagiarism. The course Web page contains a pointer to UWs Student Academic Discipline Policy. The standard penalty for plagiarism on assignments in all CS courses is a zero on the assignment, a deduction of at least 5% in the nal mark, and a letter to the Associate Dean for Undergraduate Affairs to be placed in your le; penalties are 7

more severe for cheating on exams, as well as for repeat offenses in this or other courses. We have access to software that analyzes assignment submissions for similarities and isnt fooled by simple tricks like renaming variables. Some students inadvertently stray into plagiarism by not beDo not take notes ing careful when they talk with others. Conne such discussions during discussions to high-level overviews of general concepts, not details of how with other students. to solve specic questions. Do not take notes during such discussions, and when you write or type up the ideas, use your own words and phrases. A good way to make sure that your write-up is different from others is to leave some time between the discussion and the write-up (planning for this has the nice side benet of getting you to start on your work earlier). Dont look at someone elses programs written for an assignment, or show your programs to someone else. Dont search on the Web or in books other than the textbook for answers to assignment questions, or even for hints. The penalty is applied equally to those who use answers supplied by others and to those who supply the answers. Helping a friend by showing them your assignment is not only unfair to others and a violation of academic rules, but it will also result in your being penalized along with your friend. Dont do it.

Summary
Surviving CS 135 isnt like running an obstacle course; its more a matter of applying common sense. Look for the reasons behind everything youre asked to do in the courseif you cant gure them out, ask an instructor or tutor, who should be able to answer your questionsand keep those reasons foremost in your mind as you do your work. Its important to us that you not only get through the course, but that you enjoy yourself and see the material as interesting and valuable.

You might also like