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


Instructor: Dr. Robert Foote
Office: Goodrich 101 B
Phones: 361-6429 (office) 
362-5416 (home -- only if urgent and not too late)
Mailbox: Math/Chem office, Goodrich 107
e-mail:
footer@wabash.edu 
Office hours: M, Th, F 2 - 4, and by appointment
 
Grade Breakdown
Labs 10%
Programming Projects 45%
Homework 15%
Midterm & Final Exams 30%
Text: Objects Have Class! by Poplawski
 
Useful Links
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
QSC Homepage

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!"