CS 111 | Intro to Computer Science | Spring 2002 |
Class meetings: Tuesday and Thursday, 8:00-9:15, Goodrich 104
Labs: Tuesday or Wednesday, 1:10-4:00, Kingery computer
lab
"640K ought to be enough for anybody."
Bill Gates, 1981
|
|
Topics and Syllabus | Quantitative Skills Center |
Example Homework Applets | Course Description |
Java and BlueJ Resources | HTML Resources |
Course Policy
Read it all!
Even though you have a paper copy of this, you should read it on the web to see where the links go.
E-mail. I will often use e-mail to communicate with you between classes. Check your e-mail regularly--at least once a day during the week and at least once on the weekends. Be sure to keep important messages until you no longer need them. You can make an e-mail folder for this class or save messages to your user area on the Scholar drive.
What this course is about. At the core of computer science
is the study of the algorithm, a recipe-like set of instructions that describe
the steps to be taken to solve a problem. We will study a number
of ways to express algorithms. The most common one will be the programming
language Java, but we will also express some algorithms using pseudo-code,
assembly language, machine language, "bare bones" language, and Turing
machines. In the process we will discuss what it means to solve a
problem with an algorithm, what the minimum requirements are to express
an algorithm, and what limits there are to problems that can be solved
with an algorithm. Although all of the programming you will do will be
in Java, we will focus on ideas and problem solving skills that can be
implemented in any computer language. The emphasis will be on algorithm
design and the writing of programs that are easily read, understood, and
maintained.
What this course is not
about. Computer science is not about designing web pages, burning
CD's, multimedia, or graphics editing. These are all interesting computer
applications,
but they are not part of the study of computer science. If you are interested
in these or other applications, you can learn about them in the Media
Center.
Important note:
This course does not count as a lab science course! If you are using
it as a distribution course, you still need to take at least two lab courses
in biology, chemistry, or physics.
Java. Java is a relatively new programming lanugage developed
by Sun Microsystems. To write programs we will be using the Java
programming environment BlueJ, developed at Monash University in
Australia. Java and BlueJ are free! See the CS
111 Resources page .
Homework. Weekly homework assignments will be made.
Homework will be due on Tuesdays at noon in the box outside my office.
Homework will be accepted late for less credit up until the assignment
is graded and returned to the class, usually the next class. Homework later
than this will not be accepted.
Labs. We will have approximately nine required lab periods.
These will involve reading, running, and modifying previously written Java
programs. Be sure to read through the lab handout before coming to
lab so that you have some idea of what will happen. If you don't,
you will find the lab to be very frustrating.
Most of your real learning
of Java will take place in the labs. Although I will not usually check
every detail of each lab, it is important that you finish each lab and
that it is working correctly. Understanding the labs will be crucial in
the programming projects.
Your lab grade will be based
on attending and completing the labs. More specifically, I will take attendence
at the beginning of lab and I will check your work when you are
done. Full credit for a lab depends on both, so be sure I have a second
checkmark for you on my sheet before you leave.
Projects. Three programming projects will be assigned.
These will use and extend the programs you study in the labs. The
projects will be graded not only on how well they run and solve the desired
problem, but also on how well they are organized and how easy they are
to read and understand.
After reading each project
description, you should review the recent labs looking for things that
will be useful in the project. Very few things from the labs will work
exactly; they will need some modification. However, it will be easier to
modify things from the labs than to reinvent them on your own. Very
important: Begin working on each project promptly! Waiting until two
or three days before it is due is inviting disaster.
There will be three optional "open"
labs the weeks when the projects are due. These are times for you
to work on your projects when I will be readily available to answer questions.
Projects will be due at
4:30 pm in my office on the designated Fridays (after open labs).
Projects will be accepted late, but one-third letter grade will be deducted
for each day the project is late, including weekends. Note that it
is possible to work on a project on a Saturday, turn it in on Monday, and
have it be only one day late. Files on the computer have a time/date
stamp. As long as no changes are made to the files after Saturday,
the file will have Saturday's date. One-third letter grade means,
for example, from an A- to a B+, from a B+ to a B, or from a B to a B-.
Exams. There will be midterm and final exams. The final
will be comprehensive, but will emphasize material from the second half
of the course. Note that the final counts the same as the midterm
in the final grade.
Please respect the syllabus
and make your travel plans accordingly. Don't ask to take an exam early
or late because of flight or ride schedules.
Makeups: If
you must miss an exam, let me know about it in advance. Without
advanced notice, there will be make-up exams only under unusual circumstances.
Arrangements for taking a make-up exam must be made before the exam is
graded and returned -- usually the next class period. Missing an
exam is serious enough to warrant calling me at home if you can't reach
me in my office.
Attendance. I don't generally take attendance, but I try to notice who is not in class. If you miss more than a couple of times, count on me having a discussion with both you and your advisor. Note that topics will be covered in class that are not in the text, and these will appear on the exams.
READ THE BOOK ! Reading and understanding the material
in the book will be an essential part of this class. I expect you
to read the section of the text to be covered on a given day before coming
to class. Class activities should help clarify what you have read, but
you will probably have to read it a second time after class. This is not
unusual. Reading a technical book takes time, practice, and patience.
Don't expect to understand something the first time through it. Sometimes
you may need to read something three or more times before fully getting
it. Make a habit of using the index and table of contents.
If there is some term you don't know, look it up.
Quantitative Skills Center. There are three tutors who
work for the Quantitative Skills Center (QSC) who can help with CS111 questions.
They may not be able to answer every question, but they should be able
to help you think about the homework and projects.
Tutor | Time | Location |
Bogdan Ianev | Wednesdays 7 - 11 | B 214 |
Maroof Khan | Sundays and Mondays 8 - 10
Thursdays 8 - 9 |
401 Crawford
(House behind the Library) |
Logan Kuhne | Mondays 7 - 11 and Thursdays 7 - 9 | B 214 |
Mark Sherer | Tuesdays 7 - 10 | G 206 |
The Gentleman's Rule and Academic Honesty. It is worth
spending some time thinking about the implications of the Gentleman's Rule
as it relates to academic honesty. In short, the rule says that you
shouldn't cheat or copy, but that is an oversimplification. In your
various courses, there will be some assignments you will be encouraged
to work on with other students, others must be done on your own.
Some assignments will allow you to use resources from the library, others
will be "closed book." Any of these may be things you work on outside
of class. The instructor will expect you to understand the ground
rules for working on the assignment, and to follow them. If the rules
for an assignment are unclear, it is your responsibility to ask the instructor.
Plagiarism is the act of using someone else's work without giving them
credit for it, even if you do so with their permission. Plagiarism
and not following the ground rules for an assignment are violations of
the Gentleman's Rule.
In the
context of this course, here is how this applies. While you are encouraged
to discuss the homework and projects with others in the class, what you
turn in should be substantially your own work, unless otherwise stated.
If you get significant help from someone on the homework, please say so.
This will not count against you. If you are in need of significant
help on a project, you should get it from me or one of the QSC tutors,
not from someone in the class. If you get it from a tutor, please
say so.
Note to potential computer science minors. If you want to discuss becoming a computer science minor, see me or Professor Maharry. See the department web page for more information on this and other neat stuff.
Out of courtesy to your instructor and classmates, please don't use tobacco products during class .
"It won't be easy -- it will be worth it!"