Also see [ abet.html ] (the description of CS201 submitted to the Accreditation Board).
Question -- Why do you want or need to take this class?
Goals
This is the first required class in just about every qualification the
department of Computer Science offers: BS Computer Science,
BAs, Bioinformatics, Computer Engineering, Minor in Computer Science,
and the certificate in Systems Admin. It is about creating your
own solutions to problems. You will leanr to analyse problems
and break down solutions into step-by-step recipes that a machine
can follow.
We will study a methodical
way of solving problems using computers: analysis, design, algorithm, code,
and testing.
At the end of the course you
will be able to solve problems that can be expressed simply in languages like C++.
Question -- What problems would you like to solve?
We will cover the first 8 chapters. The assigned readings are in the [ schedule.html ] for CS201. The rest of the book is covered in CS202.
Prepare for each class by studying the assigned reading. Start by looking at the contents of the web page for the class. It should contain a study guide. I hope to also include an audio podcast link summarizing the study guide. Use these guides to study the assigned pages in the text. Make notes as you read. THINK! Try examples out on the computers (if you have time).
Go back to the web page and see if your questions have been answered there. Take a piece of paper and print your name on it, and write one question about your reading. Bring this sheet of paper to class and hand it in. It can be a question you need to have answered to understand the reading, or it might be (given you understand it perfectly) be a question that you think someone else might need answered. I will answer your question in class and/or on the web page.
In the last class bring in a question on anything we have done that you want answered.
If you can't make it to class , use the [ contact.html ] form to send me your name and question and I will answer it on the web and/or by reply.
This work earns 1 point * 19 = 19 points total.
Class work -- (20 points 0.4%)
You will work on exercises, review
questions, etc. in class. I will answer your questions and give
(short) lectures and demonstrations on some topics.
Hand your question (or a blank sheet) with your name to provide evidence that you are there!
In the first class, hand in a sheet with your name and answers to the two questions above.
Quizzes (108 points, 21.6%)
There will be 9 quizzes
(dates in
[ schedule.html ]
)
each worth 12 points max on the assigned
reading, recent classes, labs,
and projects.
A typical question will ask you to write on a piece of paper a
an algorithm or program to do something (Example: print your name). Another may give
you a program or an algorithm to correct or complete.
There will often be a question on the project you have just submitted for grading.
Notice: I expect you to master grammatically perfect C++ because computers can not handle bad syntax.
Quizzes contribute 12*9 = 108 points (21.6%) to the course total.
Laboratory work (100 points, 20%)
There will be 10 laboratories. Each will have roughly 2 hours work to be
attempted. The grade will depend on how much work you have done at the
end of the laboratory -- as well as how well it is done. Again see
[ schedule.html ]
for details and times.
Each laboratory can earn a maximum of 10 points. These will be assigned as a letter grade (A=10/10) at the end of the 2 hour period based on how much work you've done and how well it is done. A D grade(D=7/10) is for working hard the whole period. An F is for not working or not turning up(F=0). Note you can leave early if you are happy with the grade you have earned at that point.
The work will normally be graded at the end of the lab session by the teacher. However, some students have scheduling conflicts and must have a written agreement of when and how they will submit their work for grading.
If our systems or your account are not working I stretch due dates/times to include the downtime.
Once completed you are free to (1) leave early, (2) help others, (3) do
project work, (4) try examples in the reading, (5) do your own experiments, or (5) tap into legal and
relevant Internet resources (including EMail).
Project Work (90 points, 18%)
You will develop five programs, each in two or three iterations. See
[ schedule.html ]
and
[ projects.html ]
for details.
After you hand in a project you may also have to answer a quiz question on the work you've just done and hand in that.
Warning -- you will get ZERO points if there is evidence that you copied your project work from someone and don't document where you got it.
Programming requires independent thinking and mastering unfriendly software. It also involves writing something, testing it, and discovering that it is wrong. Sometimes it takes a lot of effort to find and correct a mistake (debugging). Don't be surprised if you spend a lot of time correcting your own mistakes. The process is like a "Crime Scene Investigation" -- with less sticky stuff. The time spent debugging is reduced, if you work out a detailed plan for a program before you start and follow the books advice carefully. Practice reduces the number of mistakes you make -- especially if you keep a log or journal of what you are doing and learning.
If you get stuck, see me or any faculty. I am happy to comment on any algorithms, data, or programs if you bring a printout of the problematic code and the symptoms. You can send me a copy of the code (in ASCII) including a description of the problem by email. The [ contact.html ] form makes this easy. Note: I'm not a psychic and so I usually need to know what went wrong and see a copy of the source code.
The other hard lesson is learning to use good style. The best way to learn this is to try and be given advice. You will be able to resubmit each project to get additional points.
Each submission worth is worth a maximum of 10 points (100 points for course, 20%).