This is a course about computer programming. Many professions require some form of programming: you may not realize it, but when an accountant uses a spreadsheet or a musician programs a synthesizer, real programming is going on just as when a professional programmer builds a website. That's because programming is just problem solving wrapped up in an executable language.
However, the main reason that I want you to take this course is not to learn a skill that you will find useful at some time in the future, but because good programming is a fun activity! It's a creative outlet. It's a way to express abstract ideas in a tangible form, and then to get immediate feedback on how well you've done. Moreover, designing programs will teach you a bunch of skills that will be useful to you throughout your life, even in the very unlikely even that you never touch a computer again. Skills like critical reading, analytical thinking, creative synthesis, thinking at multiple levels of abstraction, and attention to detail.
On the more concrete side, you should take this course if:
- You are a college freshman who wants to "try out" computer science.
- You tried taking CS 161 but were overwhelmed by the mechanics of making C++ programs run, and would like to focus on program design.
- You are a high-school junior or senior who is considering computer science in college.
- You are a high-school student or beginning college student who can't find a job for the summer, and your parents insist that you "do so em thing productive" that will save on college tuition.
- You have never touched a computer before, but would like to try.
- You want to satisfy the prerequisites for CS 162.
- You have written some simple programs in Java or C, but don't really know how to take the next step towards programs that do interesting things with data.
- You have heard about functions, structured data, iterative refinement, refactoring, or LISP, and want to know more.
You should not take this course if:
- You are an experienced programmer in a functional language like ML or Haskell.
- You already know how to use the object-oriented features of Java, C++ or Smalltalk to design program objects that model the real-world objects of the problem domain.
- You hate computers: you really want to volunteer for Habitat for Humanity this summer, but your parents are concerned that you will cut your fingers off, so they suggested this class instead.
If you have questions, contact me, your instructor, Prof. Andrew Black.
How to Register
OK, you've decided to take this course how do you sign up?
- If you are already a PSU student, sign up using the PSU Information System (banweb) in the usual way.
- If you are not yet a PSU student, you can become one through the Quick Entry Enrollment process. The cost is $10 and the formalities minimal. However, you do have to complete the "Quick Entry" process, which gets you a PSU student ID number, before you can sign up for any classes, so it makes sense to do this sooner rather than later.
Registration opend for all students for summer quarter on 4th May. General PSU registration information is here.
Most recently modifed by Andrew P. Black at 14:25 on Tuesday 12 May 2009