Advice from successful CSS 343 students (how to be successful in 342) --------------------------------------------------------------------- (Unedited, other than formatting, from previous CSS 343 students.) -- Do assignments -- Go over lecture notes right after class -- Read textbook 1. Begin each homework early. 2. Try to really understand the examples and handouts from class, don't just copy them into homework. 3. Before taking exams, review all of your homework and class notes. 4. Don't be afraid of asking questions. No question is stupid. 1. Never miss class. 'Nuff said. 2. When doing assignments, do not let yourself get to the point of frustration when you hit a wall. Seek out the professor ASAP and have the solution pulled/extracted from you. Better to annoy her with too many questions than with too little skill in the execution of your exercise. Besides, it lets her know you're paying attention. Not only do the homeworks. Understand them very well. Stock up on lots of Mountain Dew! Start doing the homework as early as possible as last minute changes can often lead to disasters (true personal experience). To be successful in CSS 342, I would suggest taking good notes during class and reading the assigned chapters in the book. It would also help to learn how to use the debugger in Visual C++. I did not take the time to learn the debugger until the later part of the quarter. Using the debugger allowed me to spend more time learning the key purposes of the homework assignment and less time debugging. Read your assignments thoroughly as soon as you receive them. This way if you are confused by something, you'll have time to ask questions before getting too deep into coding. Go to class, pay attention. The one thing that hurt me during 342 was procrastination during assignments. Almost all the assignments that I did, I started within a day before they were due. This lack of seriousness was reflected in my final grade. I did not realize that assignments could alter the grade so dramatically effectively turning my A into a B. ummm... advice, huh? how about don't plan on having a social life for the next three months while you're becoming very good friends with a great looking c++ book ;) Stay ahead of the reading, labs, pretty much everything, stay ahead of the game. When it comes to the midterm and final, practice writing programs more than reading the chapters and notes. 10 Keys to Success in 342 (and in life, as well) Key #1: read the material in the book prior to the lecture on that particular topic. Key #2: read the homework instructions thoroughly. Key #3: get started early on all homework assignments. Key #4: read the homework instructions thoroughly. Key #5: know the definition of Big-Oh like you know your phone number (that'll make sense later). Key #6: read the homework instructions thoroughly. Key #7: assume nothing, know everything (however, if you dare assume, be sure to document it). Key #8: read the homework instructions thoroughly. Key #9: "be the code" Key #10: and for the love of god, read the instructions! Start Labs immediately upon assignment. Allow 15 hours minimum per lab. Code C++ test programs to understand more fully how C++ OO programs operate/work. Pay attention in class. Get lots of rest so you can perform better on labs / tests. See teacher before/after class and ask questions about topics. Don't wait to last moment to do Labs because lack of expertise with C++ language will byte you. Don't go off on tangents and try to solve logic problems that teacher presents in lieu of studying. Plan/schedule time to do homework/labs. It's important to pay attention in class, but be willing to devote a lot of time to the programming. The only way you will learn this stuff is by doing it, and in many cases doing it a lot. If you need help, find someone to talk about with it- I have found that there's plenty of assistance available, from your teacher and from computer lab TAs. And regarding writing code, understand that sometimes your first attempt will not work- that's okay, I have often found that after I bang on it for a while, it's a good idea to take what I've done and ruthlessly throw it away, starting fresh. This applies from everything from a single line of code to a complete function. Because once you've had some time and experience with what you're trying to accomplish, you have a better structure envisioned in your head. And that's my two cents. Make some friends in your class. It helps to have 2 or 3 people to talk to about what you're learning or the current assignment. When things are confusing, the other people in the group might be able to help you. When others are confused, helping them will strengthen your understanding of the subject. When everyone is confused, you can work together to figure things out. Leave plenty of time for debugging, it ALWAYS takes longer than you think. My advice to 342 students would be to start early on programs. Also it helps a lot to draw out pictures of how the programs is going to work. Pictures also help to create a better understanding of how programming ideas work (ie linked lists). Do your own work-really. My advice to the 342 students are for those who procrastinate. Get started early so that one will know what he/she is up against. If this is done, procrastinating to finish the rest of the program won't be so bad. My next suggestion would be to pay really close attention during those weeks when big-oh is being taught. 1. Do not skip any day of class because every single class time is extremely important. (I never skipped any!) 2. Listen to the instructor carefully. Ask if you have any unclear questions. 3. Take a good notes. 4. Study in group if necessary (when you have any exam coming up!) 5. Of course you have to read all of the assigned chapters in the books 6. Search on the Web with the related topics is an optional 7. Study your labs, do problems in the text, study hand-out, and you will be fine in the exam. Make sure to study ahead before the exam, so you won't feel too stress. Relax. This should be a fun class. 8. For the programs, make sure you read over and over the questions and instructions before you start to do your labs. 9. Don't jump into implementation your program. You should design how and what your program will be and then go from there. 10. Have a really good communication with your instructor so that when you have any problems, he/she can help you to catch up or find a way out (in a good way!) 11. Good luck! My only advice is write more codes on paper and then go to the computer. This will save time and help better understand the assignment, even the C++ code. Next, start the assignment right away! My advice is to not wait two years between classes. AHHH!! Do all the homeworks individually. Don't let anyone out worked you! :) CSS 342 is way more difficult than 341. So spend more time to understand each componets and spend a lot of time to practice by acutually writing code. A story was told in 342 of a student recomending getting drunk to aid in the programming of recursive algorithms. A heavy buzz is more than enough. How to pass CSS 342: always write your own code (no cheating!) Start assignments early and finish as fast as possible to allow time for revisions. Ask questions if you don't understand and don't be afraid to ask for help if needed. I have no advice that they haven't heard before. One thing that helped me was to try to design the program on paper first (this will also help you for the tests where you don't have the compiler's help). Define what the function needs to do, then go through the function step by step. Of course there are times when I am not sure what will work or I haven't thought of all scenarios and I have to test it out, but in general, it helped me if I tried to designed and organized things first. Then if you don't understand, ask questions - instructor is very helpful :) Before sitting in front of the computer DRAW a model/design of your project. I bought a drawing board, which I found especially helpfull when I was solving problems that involved pointers (i.e. linked list homework.) Start asssignments right away. When stuck, ask other students questions when your brain is overloaded, take time to have a beer, don't write code you don't understand. If there is something you don't understand from the book and class, have the students who help in the lab to help you with it or explain it to you. Sometimes a different point of view is all you need for it all to make sense. - Read or at least skim the chapter in the book being discussed before the class - When you have completed an assignment, read and check off every sentence in the assignment instructions. This way you aren't getting a lower grade by not following directions. -Turn off your cell phone during class!!! The most important thing is to listen to the lecture very carefully and understand within the class. Think logically while programming. Read the assignment very well because there are a lot of hits for the programs. Don't just copy the examples, think why you are doing (typing) that. Ask why to yourself. 1. Do homework problems promptly 2. Try to understand and how to solve the problem in different ways if possible. 3. Read the textbook and try to understand what the code really does. 4. Discuss with classmates if have problems and try to solve it 5. Study hard and practice as much as possible It is always easier to give advice than to follow it. But following this advice early on would have helped me spring quarter. 1) Even though it isn't required in the assignment, do the documentation for the program. Describe the program in your own words, followed by an algorithm, then pseudocode, then your favorite compiler. This will minimize the time you will spend in front of your compiler, even though it is your favorite. 2) Start your assignments early. You will never know when a simple problem will tie you up for hours trying to figure out. I think the best way for Css342 students to success which is let them down load the source code in the book, and walking through the code. 1) Do not get behind! 2) It is better to practice the material in many little pieces rather than a few large pieces. Repeated practice will serve better, since this is a skill-based activity, instead of trying to absorb it all at once. 3) Remember to make it fun! Because it is fun as well as challenging. Therefore, reward yourself for doing well, because programming is only easy for those who happened to be wired by nature for it, or those that have been doing it since they were 15 years old. Violation of Rule 1 will make this rule difficult to adhere to. 4) Remember that you are lucky to be here doing this, and hard work will bring tangible as well as internal rewards.