FAQ

[Note: this webpage last modified Thursday, 19-Jan-2012 15:07:18 EST]

This is an introductory programming course that serves multiple roles (first programming course for CS and IT majors, sole programming course for some other majors, or just for elective fun). Furthermore, some students just started college, while others are taking the course as they finish up.

So there is a lot of diversity among the students. This results in some misunderstandings, frustration, etc. This page collects many of the questions that frequently come up as students taking the course figure out how the course works. Enjoy.

Week 2 Email.

After the second week, some people are asking what they can do to better grasp the material. Here are some suggestions.

First, note the following...

Much of this material is in the course syllabus. Did you read it? You might look back at it to remind yourself... But I'll repeat some of that (and add some more) anyway...

How to succeed in this course

Pay attention in class. Once the code from class is put online, download it, make sure you can run it, make little changes to it, understand it. Do the assigned reading, and while you're doing that type things in and try them out as you read. Start the homework as soon as it is assigned; send something in a few days before it is due so you can get comments; do not wait until the day before it is due! Talk to others in the class, and work together. Take advantage of lab hours, email the instructor whenever you have questions (for quickest response), or stop by. Put the responsibility on yourself for doing well in the course, not (only) on the instructor. Get excited and interested! Do not let yourself fall behind, try to stay ahead if you can.

How to succeed in college

Much of that applies to college in general. The way things work in college requires much more independence and responsibility than is typically required at many high schools or community colleges. Ultimately, it is up to the student to take charge. There will not be anyone holding your hand to make sure you succeed. That is not the way it works. You will be given good advice and opportunities to succeed, but it is up to you.

What should students learn in this course?

See the syllabus. In brief, by the end you should be able to write basic programs from scratch in Python, be able to read someone else's code and understand it, and have a basic understanding of using programming for a variety of different types of tasks.

What does my grade mean?

ISU does not have an official policy of what an "A" means, what a "B" means, etc. See the course's syllabus for the policy used in this course.

Who cares about grades?

I really want everyone to get an A. That would mean you are learning everything you can, and probably being happy about it. Some students don't really care if they get an A, and just care about passing. That is not a good attitude. If you manage to scrape by with some minimal grade, your learning will suffer. If you do better in school, you will indeed find it easier to find a good job after graduating and succeed in that job.

What does any of this have to do with anything I will need for my job?

That is not how college works. This is not just training for some job. It is an education. You are being exposed to ways to think, solve problems, learn. Programming will have direct on-the-job uses for most people who take the course. But even for those who don't use programming in their job, programming is a great thing to be exposed to as a way to analyze and solve problems. And I am sure you are aware that technology is the future...

Why did we talk about BLANK in class when it was not on any homework assignment or on the exam?

That is also not the way college works. I would be glad to give homework assignments on everything we talk about in class. But that would not be fair, and I don't want that much grading work. Additional topics, excursions from the main topic, are often just as interesting as the topic of the day. I don't want to deprive you from this interesting material just because I won't grade you on it.

I follow the lectures pretty well, but then I really struggle on the homeworks.

Are you following all the suggestions in "how to succeed in the course" above? Are you really? Have you been since the beginning? If so, what can you do? Start it early and ask questions. You don't want to ask questions because you think they're silly? No worries, rest assured the instructor will think higher of you for taking the initiative to ask questions rather than "not caring, and just not understanding".

I spend several hours on the homeworks, and I still don't get them!

First, you should be spending several hours on the homeworks. The main time you should spend each week is doing the required reading, looking at the code from class once it is online, and doing the homeworks. Doing the homeworks is where the real learning happens. You have seen the instructor solve problems in class, and hopefully you have followed along. Now it is your turn. You never really master something until you can do it on your own. This is what programming is all about - starting with the most basic way to make progress you can think of, and then improving it bit by bit. That is the way to make progress on the homeworks.

The instructor acts like I have programmed before. I haven't! The instructor expects too much background/experience.

The instructor assumes no-one has had programming before. Some people have had programming before, and the class may be easier for them. But most people have not, and most people that put in a genuine effort do succeed in the course.

Why does the instructor "solve problems" or make mistakes in class, instead of just telling us how to do it from the start?

This style works for some people and doesn't for others. I will try to mix it up. But I tend to favor this approach because I personally like it. The reason is that it is often easier to remember the process that got you there this way - because you are just trying out the first thing you would think of, and seeing what happens. That's pretty easy to remember and recreate, rather than trying to "memorize" the way the finished product looks. There is definitely a place for memorizing things too, but I think you don't really know something until you understand why it makes sense.

I have no idea what the instructor is talking about during lecture.

There are some people who do not follow a lecture format easily, people who easily lose concentration. You probably know better than I do what you need to do to be able to pay attention. Maybe you take detailed notes and read them back to yourself right after class. Maybe you record the lecture, don't take notes, then replay/listen to the lecture later. Each person has a different style. If there is anything I can do to help, let me know.

If you are just very behind in the course, that is another issue. The later in the course you find yourself behind and "lost", the more likely the only viable solution is getting a private tutor - so don't fall behind.

Can I meet with you for an hour each day to go over the material again since I am struggling?

That is not feasible for me. I am glad to meet with you and look at something or answer questions any time you stop by my office. But I cannot provide extra "tutoring" outside of class -- I just don't have the time. That is why it is so important to stay on top of things. That way, if you have a difficult week, it is no problem to send me an email or stop by for a bit of help. Put another way, I can spend half an hour or so helping you some weeks, but probably not every week. So if you have a confusion, take care of it right away before it snowballs and becomes unmanageable.

Why does the instructor keep going when some/many people are not ready to move on?

One issue is that this course is a pre-requisite for other courses. There is a certain amount of material that must be covered for people to be ready for the next programming courses they will take. Even beyond that, there are always some people who think the class is going too fast and others who think it is going too slow. It is a judgment call on the instructor's part to set the pace appropriately to balance all the competing interests. Definitely let the instructor know your thoughts so his/her decision can be better informed.

Are we covering more or different material than used to be covered in this course? Are we going too fast?

We are covering about the same amount of material as I have covered each time I have taught the course. Each time I teach it, the particular content covered may vary slightly. This is because of changing interests among students, new ideas on what topics will be most interesting, and the ever-changing realm of programming technology. We cover, essentially, the fundamentals of Python programming, and a number of application areas.

It may be that we cover more or less material than other instructors do. That is not supposed to happen though because the faculty try to agree amongst ourselves about what is supposed to be covered in each course.

I do not know the material well enough because the instructor has not done a good enough job teaching it to me.

That is a very dangerous attitude to take. You can complain about the instructor, that is fine. If you have useful comments, you should let the instructor know so he/she can improve. But, ultimately you are responsible for your success in each of your courses. Some instructors are better than others, and you will have to still be able to succeed. Most instructors do try their best, but for various reasons things might be difficult for you (different learning styles, pace of the course, difficult material, too busy life outside of the course, "bad" instructor...). You still need to find a way to make it work. This is also the way it works in college. You will not be able to "complain" your way out of the grade you are given, so you may as well do the best you can given the situation of whichever course you are in. Of course, if you do have genuine complaints/concerns let your instructor know!

Why are we going so slow? I'm bored. I wish we could go faster.

As I said before, I try to set the pace and content to balance all the competing interests in the course. We are going fast enough to cover all the material that is needed as a pre-requisite for other courses. I give extra credit questions so those who work faster will have more to work on. But you should be learning more information on your own if you think you can. Again, that is how it works in the real world, so go ahead and get a textbook for something you're interested in, or read information online, or ...

What does this course mean to the universe?

Programming and computer science are very important to our society. Really, you could consider computer science as the heart of the economy today. It seems strange to me that someone would think this course does not matter to the world.