Introductory/Intermediate Programming
15-100 Section F
  Fall 2006
Updates:
August 28:  date of Exam 1 typo corrected
September 13: date of final exam added



Instructor:  Scott McElfresh (pronounced  mac' - el- fresh)
Office:        Wean Hall 5120
Phone:        8-4859
Email:         scottm@cs.cmu.edu
Office Hours:     For up-to-date current office hours, please see main course page.
I am willing to talk most any time I am in my office (as long as I am not about to rush off to a class or a meeting), so feel free to stop by any time. The course page lists "Open Office Hours", which are times that I will do my best to be in my office.

Course Assistants:   The undergraduate course assistants who will work with this section of the course are listed on the course web page along with their help hours.

Course Web Page:  http://www.cs.cmu.edu/~scottm/F06/cs100    Most of the handouts in this course will be available through this World Wide Web address.

Course Description: 
Excerpted from the catalog:
"An introduction to the process of program design and analysis using the Java programming language for students who have NO prior programming experience. Topics to be covered include basic data types and their operators, I/O, control structures (selection, loops), classes (including methods and fields), files, arrays, and simple sorting and searching algorithms."
   
If you have taken a programming course and have used functions, loops, and arrays, you probably should be enrolled in a different course.  Please see the instructor for advice. 

For any academic field, an introductory level course serves many purposes.   When leaving an introductory level course, a student is typically expected to be conversant in the basic terminology of the field, to be able to recognize and discuss the processes and products of the field, and to be able to produce some products, by being engaged in the process.   Thus, this course has three subgoals:   to produce students capabable of using the correct terminology of programming, to produce students who can do basic analysis of computer programs (by looking at the computer code, or by the program's execution), and to be able to produce some computer programs.   Hopefully you will see movement towards all of these goals throughout the course.

Course Logistics: 
There are approximately 19 different sections of this course being offered this semester, with several different instructors.  Although all sections prepare students for a common exam as well as for the next course, each section is run differently, with different assignments, schedules, and policies.   As such, it is important that you attend only the section that you are enrolled in, unless you get permission from your instructor.

Course E-mail:   Electronic communication will be utilized in this course.  Students will be expected to read their e-mail regularly.  I may send out corrections/ clarifications to course work via email.  Further, many grades and feedback on electronic assignments will be gotten to you via email.  Such email will be sent to students' andrew accounts.  If you wish to have your mail sent elsewhere, you will need to have andrew forward to the right place.

Textbooks:  There is one required text for the course and two optional texts.

Hardware and Software needs:    The classroom cluster has iMac machines for use.  However, the work for this course can be done on most any Mac running OSX or PC running windows XP.    Some software you will need to have and be familiar with:

Computer Labs:   The Wean Hall 5419 cluster has assistants staffing the room who are familiar with some of the material in this course.   However, they are NOT necessarily familiar with the details of particular assignments or policies of the course.  The hours of the room unless otherwise posted are listed below.  (First week hours and other changes are posted on the wall outside the cluster in a glass case.)   Course Assistants dedicated to these sections usually hold their office hours in this lab.

Additionally, many of the labs on campus should have the software you need for this course installed.

Exercises:  There will be an exercise handed out during many class periods.  Some of these will be done in class, while some will be intended to be completed outside of class.
        Each assignment will give instructions on the requirements for handing it in.   Printouts, electronic submissions, written answers to questions, or a combination of these may be required.  If the instructions are not followed, the assignment may receive no credit.  Do NOT email me your solutions.
        Lateness:  Each exercise will give not only a due date, but a due time.  Exercises that are turned in late will be automatically penalized 20%.   I reserve the right not to accept assignments turned in more than 1 week late.  The online submission system may still accept an assignment at that point, but it will not be graded.    In cases where I do accept assignments that are extremely late, there will be a 50% penalty. No assignments will be accepted after the last day of classes.
        Feedback:  The computer system will be sending confirmations of submissions by email as well as the feedback on some of the exercises.  You should keep these emails for the remainder of the semester - in case there is a mistake in our records come the end of the semester, you will have this record to help correct such problems in our records.

Quizzes:   There will be a quiz given every Wednesday (unless an exam is being given).  Some of these will be on paper, while some will utilize the computer.   I reserve the right to give quizzes on other days as well - announced or unannounced.    There will be no makeup quizzes given.    A student can miss up to two quizzes without it adversely affecting their grade in the course.

Exams:  There will be two in-class exams.  They will be given on the following dates:
        #1)  Wednesday, October 4
        #2)  Wednesday, November 8
There will be no makeup exams given.

Final Exam:  All students taking 15-100 will take a comprehensive written exam during the Final Exams period.   Details on this will be announced as the time approaches.     Tuesday, December 19,  1-4pm.      Location: TBA


Grading:
The relative weight of each item in determining your course grade will be as follows:
 
  Exercises: 35%

Quizzes: 15%

Exam #1: 15%

Exam #2: 15%

Final Exam: 20%
Course Grades will be assigned as follows:
 
Course percentage   Course Grade
90 - 100
A
80 - 89.9
B
70 - 79.9
C
60 - 69.9
D
 0  - 59.9 
R

Midterm grades will  include + or -.


Extra Credit: 
Some of the homework assignments may suggest extra credit.  Extra credit will not hurt anyone, it can only help.  If someone has a borderline grade at the end of the term, I will look to see if they did any extra credit, before deciding whether or not to bump them up a notch.  Unless otherwise specified, no actual points will be assigned to extra credits.
 

Classroom Expectations:   You will be expected to participate in class discussions and group-work.  Although there are computers you will be expected to have a pencil or other writing instrument for each class period, as well as paper to write on.
    The classroom has a computer for each person.   You are welcome to use them to take notes, follow along with demonstrations, etc.  I recognize that some of you will want to use it for web surfing, email, or AIM.   As such, I ask that you please do not use the computers for such tasks that are not related to the course, and I may ask the class to turn the monitors to their side on certain days.

 
Academic Honesty:  
The University's policy on cheating applies in this course.  When cheating or plagiarism is discovered, the incident will be reported to the appropriate Dean's office, as per University policy.   Some special explanations that are specific to these sections of this course are on the Academic honesty handout.
    Efforts will be made in class to describe these issues.  If you have any questions as to what is appropriate and what is not, please ask me about it.


 
Getting help: 
If you need help, there are several options available to you, including:
Other possible reference texts:  Below is a partial list of other books that you may find useful for reference.  Our library has some of them.  Some of them have been used as texts for this course, so used copies may be available from past students of the course.  Be aware that some of these texts UTILIZE AN OLDER VERSION OF THE JAVA LANGUAGE.