Having the right attitude
There is much research out there that shows you can learn something if you want to. I'm not going to cite any of those here nor am I going to expound on them. I am simply going to first tell you my personal philosophy before this page continues into all the other things I find myself repeating as I teach this class. Whether this personal philosophy helps you or not probably depends how similar you are to me, which means I do not think this will work for everyone. However I do believe it is worth a try at the very least because what is life but one big experiment made of many small ones to figure out how to make life work for you!
Your success in this class has more to do with your attitude than some innate computer science ability, which is a pure myth. A person may have some initial aptitude, but that will only ever get them so far without hardwork. This class is more about acquring skills and ways of thinking. Sure it may seem that others are doing better than you, but when learning how to swim isn't that true as well? I bet you eventually did learn to swim; even if you did a whole lot more splashing and floundering than the others. The same idea applies.
The question is more "How badly do you want it?" and "How much effort are you willing to put in to get what you want?" Notice I say effort because it is true that learning this stuff for you will take more effort than some of your classmates, but you can learn it. The idea is to approach this more as training to reach some athletic goal. You cannot lift a large amount of weight or reach a particular time in a run instantly, you have to work your way up to it. The same applies here. Your homeworks, quizzes, projects, labs, etc. are all there to help you train and your exams are the main event.
And guess what, with this idea in mind, you probably already know of ways to "train" yourself to do better. Do all of the assigned work. And if the material we assign you is not enough to reach your goal, you already know what you need to do. You need to find more material to practice and train on to get to where you want to be.
I know that seems hard, but it is possible. College is a time of growing up, where you take ownership over your life and learning. This is one step in doing that. Getting what you want in life means asking for it and going after it, not hoping it will be handed to you. I know in some ways that is disheartening to hear. If there was an easier way I'd happily tell you, but there isn't. Just as there are no short cuts in athletic training (and yes I know there are steroids, but that is cheatting and it will not help you in the long run), there are no short cuts to working your "mental" muscles to be strong enough to succeed in this class.
And with that, I hope you do well, good luck, and train hard.
My Discussion Materials
- Disc01 Quiz
- Disc02 Quiz
- Disc03 Quiz
- Disc05 Quiz
- Disc06 Quiz
- Disc07 Quiz
- Disc08 Quiz
- Disc09 Quiz
- Disc10 Quiz
- Disc11 Quiz
- Review: Iterators and Generators
- Review: Iterators and Generators Challenge Question
Help with debugging
Here is a starter file to write your own tests for a project, homework, lab, etc.
Other hopefully helpful information:
- Main documentation
- If the '-i' flag is used when ok is run, when OK is done running you will be in the Python interpreter with the state of the last test available.
- When debugging ask yourself the following questions (most can be checked with a test you can write yourself or a print statement):
- Is the value of the variable what it should be?
- Is the code I think is running, actually running?
Preparing for Exams
Stress vs Performance
Remember the stress vs performance graph. With this in mind you should practice (1) staying in the optimal zone, (2) identifying when you are outside of the zone, and (3) getting back into the optimal zone. Or if you need a catch phrase to help you remember this, try: "Do not psych yourself out." or "Stay calm and carry on."
(Credit: Image found at World Economic Forum: How successful people stay calm)
Ways to help yourself with the above and to prepare for the exam are:
- Study the material (obvious, but should be said regardless)
- Have the right attitude. Everything you need to succeed in this class is available to you. The question is more how much you want it and how much effort are you will to put in to get what you want. With that in mind you should approach all of this as training, similar to muscle training. The more you work at it the better your "muscles" will get and the better you'll do on the exam.
- Practice the material. Redo old discussion problems, lab problems, homeworks, and quizzes. You will be surprised what you have forgotten. Note I said redo, not look at the answer.
- Study with a friend and have them check your answer, so if you are wrong you can keep working rather than spoil the answer for yourself. The friend can also then give you a hint if you are stuck.
- Use old exams. Take an old exam and pretend you are taking it for real and time yourself. This means setting aside however much time that exam was designed to take (usually 2 hours, 3 if it's a final).
- Timing yourself does multiple things:
- Adds stress which makes it feel more like the real exam
- Gives you an idea of how well you'll do at the real exam
- Let's you practice balancing your stress and performance
- Timing yourself does multiple things:
- Exams as time trials: When you have a long time to prepare (usually the final) use old exams as "time trials", where you can think of general studying as training and taking an exam as a time trial to see where you are currently at compared to your goal.