Information Science 313
Introduction to Computer Science
Overview/Syllabus, Fall 2003


 


General Information

 

Instructor:   Zach Dodds
Office:  Olin 1265
Phone:  x78990   (909-607-8990)
Email:   dodds@cs.hmc.edu
Official Office Hours  F 9-12
Real Office Hours  Anytime


Is IS 313 for you?

 

Absolutely! IS 313 is intended as an introduction to programming and problem solving in the Java language. It does not assume any knowledge of prgramming. It is part of the Harvey Mudd core curriculum, and it is offered as a technical elective at CGU's school of information science.


Date / Time / Place

 

CS5 is a lecture and laboratory course; we will combine them in ACB 205A during our Wednesday night time slot. I will include the information here about Harvey Mudd's courses -- you are welcome to take advantage of those lectures if you can't make a Wed. session.

  • Section 5 (IS 313 at CGU): Wednesdays in ACB 205A from 7:00-9:50
  • HMC Sections: see the CS 5 syllabus


Textbooks

 

There are no required texts for the course. The primary source of information about the programming language Java and the fundamentals of programming will be the on-line text (linked chapter-by-chapter below). This text has sections from two sources: Sun's Java basics tutorial and primarily from David Eck's copylefted online textbook from Hobart and William Smith Colleges.

There are comprehensive online tutorials available from Sun's Java tutorial website. This is where I go to learn about a facet of Java or its library.

There are certainly many printed books, too, about Java and learning the language. The best one (as far as I'm concerned) is Head First Java by Bert Bates and Kathy Sierra.


Grading

 

Your grade in the course will be based on a combination of your homework and exam performance. The basic intent is that the homeworks will act as learning tools while the exams will act as diagnostic tools, but performance on both will contribute towards your final grade.

% of points letter grade
95-100% A
90-94.9 A-
86-89.9 B+
83-85.9 B
80-82.9 B-
76-79.9 C+
73-75.9 C
70-72.9 C-
65-69.9 D+
60-64.9 D
< 60 F
Here is how the points are approximately divided:
Assignments 600 points (each assignment is about 50 pts)
Final exam 300 points
"Quizzes" 50 points


Homework Assignments

 

There will be weekly homework assignments, due at the following times:

           11:59pm Thursday evening.
         

These assignments are intended to exercise and solidify your understanding of the week's material, review older material, and look ahead to new topics. They are the most important part of the course.

Because the assignments are timestamped automatically, it is important to get them in on time. (There is a little bit of leeway so that something submitted at 12:02 isn't counted late, but we don't mention the exact amount of wiggle room to avoid pushing the deadline further into the night.) Allow for contingencies such as the problem being harder than you thought, no one being available for help when you need it, the compiler or computer suffering from brain-damage, and you or your machine crashing at inopportune times.

Assignments will be usually graded out of 50 points; 40 of those points are for the correctness of the program(s) submitted. A program that does not compile, for example, receives 0 correctness points. 10 points are for program style -- two points for each of the following items. They will be explained in more detail in class, but here is the overview:

  • Use of indenting and consistent indenting. Choose an indenting style and stick with it! There will be lots of example code to help choose a readable style.


  • Header comments. Be sure to have your name, the file name, the date, and a general comment of purpose at the very top of all of your assignment files. You may also want to include notes to the graders there.


  • Code Comments. You should comment each method (function) you write with its purpose. Within your code, you should add comments to describe at a high-level what is going on. These inner comments need not be everywhere, but enough should be included to get the general sense of how your code works.


  • Variable names should be balanced between easy to use (short) and easy to understand (descriptive). If you like using one-letter names, be sure to comment what they are, except for common practices like using i or j for loop indices.


  • Use of whitespace. Code without sufficient whitespace to indicate its high-level structure can become very hard to read. Use liberally.

Remember, you can always ask about things before you submit your actual product. There is no reason to lose points on most of the above. You also lose no points or esteem for asking. Each assignment will also have extra-credit questions worth up to 20% of its overall score. These questions will introduce other material or particularly challenging applications.


Submitting

Submit your assignments using the Homework Submission page located at

http://134.173.42.86:8080/CS5hw/Student

which can also be reached from the quick link on the course home page.

You may submit your solution ahead of the due date if you like. If you would like to have your assignment graded ahead of time, you'll need to email me (dodds@cs.hmc.edu) to let me know!

Your grade, along with the grader's comments will be automatically e-mailed to you once the assignment is graded. If you realize you have made a mistake in an assignment that has not yet been graded, and the due date/time has not passed, you may go ahead and submit a new solution; it will replace the previous submission.

Once the homework solutions are posted, no further submissions can be accepted for credit.

Keep in mind that those of us (i.e., me) doing the grading are only human. If you do feel you have been graded unfairly, or just don't understand the comments, or you want to chat about anything, feel free to email me (dodds@cs.hmc.edu) or to stop by Olin 1265 at 1250 N Dartmouth Ave. (on HMC's campus).


Exams

The course will have a final exam that will cover understanding and writing of code. You will be permitted to bring a page of notes to the exam and you won't be expected to have the entire language memorized! The focus is on understanding the basic concepts.


Getting Help

 

While your work must be your own, it is important that you actively seek out help when you are having trouble in the course. Ask questions in the lecture and/or the lab about things in the notes you don't understand. Come to me or consult with your assignment partner with more questions. Don't be afraid to return many times if something doesn't make sense. And an extra pair of eyes is always helpful when debugging.

Too many times a student will bang his or her head against a wall for hours trying to figure out why a program isn't working, when a few minutes with the professor or another student is enough to make it clear.




vim
This page was built with vim on a unix box.