15-111 Summer-2003 Syllabus

Table of Contents

Course Meetings

  • 12:00 - 1:20 Mondays through Fridays in WeH 5419B

Course Description

An introduction to the process of program design and analysis using the Java programming language for students with some prior programming experience (functions, loops, and arrays) in a language other than Java. Topics to be covered include an overview of fundamental programming concepts using Java as well as object-oriented programming techniques, data aggregates, data structures (e.g., linked lists, stacks, queues, trees, and graphs), and an introduction to the analysis of algorithms that operate on those data structures. This course, along with 21-127, serves as a prerequisite for 15-211.

NOTE: students who receive a grade of C or less in 15-111 should discuss whether they are adequately prepared for 15-211 with their academic advisor.

-- From the Offical Course Description


One or more courses in programming taught in a language other than Java. Those who have studied Java should consult an advisor or the instructor to determine if 15-200 is a better alternative.

The prior programming courses should have included the basics of program structure, constants, variables, I/O, program control including simple decisions and loops, and functions or methods including paramter passing. Those with prior programming experience or coursework that does not fit this model should consult an advisor or instuctor to determine if 15-100 is a better alternative.

Textbook (Optional)

Lafore, Robert, Data Structures & Algorithms in Java, 2nd, Sams, 2003. ISBN: 0-672-32453-9
This Web site, http://courseweb.sp.cs.cmu.edu/~cs111 is temporary. It will move to a new location as soon as this semester's course AFS volume is create in Andrew-land. The new location will be announced in class and a redirectory will be located here. Please do not bookmark the temporary site.


Name: Gregory Kesden
Email: gkesden@cs.cmu.edu
Url: http://www.cs.cmu.edu/~gkesden
Office: WeH 8020 (right in front of the elevators on the 8th floor)
Office phone: 412-268-1590
Home phone: 412-687-6198
Office hours: 3:00 - 4:30 Mondays through Thursdays

Please note:

Office hours are times that I do my best to reserve exclusively for "drop in - no appointment" meetings with students, but I am often available at times other than office hours.

Please don't hesitate to call or drop by at other times, or to request an appointment. Office hours are convenient -- if they are convenient for you. If not, please, please, please email or call for an appointment, or just take your chances and drop by -- if I'm not teaching, I'm likely here.

Please remember -- I'm here to help. I appreciate the opportunity to serve you. Do give me the chance.

Some students have found it useful to finger me at my UNIX workstation, gigo.sp.cs.cmu.edu, or the departmental cycle server ux8.sp.cs.cmu.edu. If I have a reasonably short idle time on either machine and I'm logged in locally or from my Windows box fubar.sp.cs.cmu.edu, chances are that I'm in my office.

Please note that my home phone number is published is this syllabus, as well as in many other places. If something comes up that is time sensitive and I am otherwise unavailable, you are welcome to try me at home.

I am generally not available via zephyr.

Course Assistants

Course Attendance

Attendance is expected at all classes. You are responsible for everything conveyed during class, even if you are absent. It is suggested that you make friends with your classmates and aestablish a study group -- these will provide vehicles by which you can discovery the content of any lectures you might miss. In the event that you miss class, you should contact one of these individuals promptly to ask for help.

The course staff is not responsible to help you with material or procedural announcements from which you opted out by electively missing class.

Need Help?

I can't stress enough that the course staff, the instructor and CAs, are dedicated to providing you the highest possible levels of support: inside of the classroom and outside. Please, if you need help, do ask.

Important: It is strongly suggested that you email both of us with questions. This will assure you of the fastest possible answers.

Additionally, the Introductory Computing Group staffs the 5419 clusters during many hours of the afternoons, evenings, and weekends with highly qualified lab assistants. Although these individuals aren't familiar with the specifics of your homework or lab assignments, they are highly knowledgable about the Java language, programming methodology, and data structures -- please don't hesisitate to drop the clusters and query them for general help in these areas.

Assignments and Grading

  • Exams: 45%: 15% each of three
    These will be individual, in-class written exams. There are most likely to be "closed book, closed notes, closed everything" style exams. They will incorporate programming questions, theory questions, problem solving, the drawing of figures, &c.
  • Uniform Programming Exam: 30%
    This exam is being developed by the department and will be administered to all 15-111 and 15-200 sections. The same exam configuration, grading scheme, and course weight will be applied, regardless of the instructor or section.

    This exam will be administered during the University-scheduled final exam period. More details and a sample, practice exam will be made available prior to the actual exam date. It will be released to you promptly upon release by the committee developming the exam.

    At this time, the exam is believed to consist of two linked-list questions and a Binary Search Tree (BST) question. But, until the committee approves information for release, this is only speculation.

    At this time, it is believed that the exam will be delivered as an on-line exam, where each question is graded without partial credit. But, again, until the exam committee approves an offical exam description for release, this is only speculation.

  • Classwork, homework, &c: 25%
    The bulk of the assignments in this category will likely consist of individual programming-intensive laboratory assignments. But, there will also be some in-class assignments, non-programming homework, collaborative work, and other material as necessary to adapt to the needs of the class.

Grade Corrections

We try to be very, very careful about scoring your work and maintaining your grades. But, we are human and will make mistakes. If you have any questions about grading, please see any member of the course staff.

If possible, s/he will help you "on the spot". But, if s/he want to discuss the issue with other members of the staff, which does occur in many cases, he or she might make a copy of your work and/or ask you to write down or email your concerns. Please don't be alarmed -- this is just to try to ensure correctness and consistency among staffers, as well as prevent miscommunication. If you are asked to provide a copy of the work or feedback in question, or to provide your concerns in writing or email, you are required to do this before your concern can be addressed.

Please keep copies of all of your graded work, electronic submissions, and electronci feedback, until you receive your final course grade and are satisifed that it is correct. Without the original work and the grading information, it is more difficult and time consuming to correct errors.

In general, grading concerns should be addressed within one (1) weeks. In the sepcial case of the final exam, they should be addressed with one (1) year. The course staff, at its discretion, may refuse to reconsider grades outside of this time period.

Should concerns arise outside of these time periods, but during the semester, please do contact any member of the course staff -- we want to be reasonable and will do our best, within our discretion, to help. Should concerns occur after the end of the semester, please contact the instructor. Or, in the unlikley event that he is no longer at the University, on leave, or otherwise inaccessible, contact an administrator in the Computer Science department.

Students do have the right to appeal final course grades. This can be done informally, beginning with the instructor, and then to the student's academic dean and/or the academic dean in the home department. It can also be done formally using the policy outline in the Academic Regulations.


It is suggested that you form study groups as soon as possible. These groups generally work best if there are between three and five people involved, but sometimes pairs or slightly larger groups can work well. Typically the most effective study groups meet once per week for a few hours, or a couple of times each week for a couple of hours each meeting. For study groups to be effective, each member must work indivudally with the material in-between meetings such that s/he has something to contribute as well as questions to drive the discussion.

Unless otherwise specified, all assignments should be completed individually. In other words, it is okay to collaborate in studying the course material, but the "writing on the page" or the "code in the lab", as examples, should be your own "thought product".

If portions of your indididual assignments have been significantly influenced by someone else, you should prominently give them credit for their contribution. Proper attribution is critically important -- and is an absolute defense against charges of "Academic Dishonesty"

Failure to provide proper recognition for the contributions of others towards any graded work may be, at the discretion fo course staff, considered Academic Dishonesty under the applicable University, School, Department, and/or Intro Group policies.

The Academic Regulations are the only authoritative source for information regarding the University police on Academic Dishonesty, and related procedural matters. But, the following is an informal summary:

  • An instructor can charge a student with academic dishonesty and impose a penalty within the course, including an "R" grade.

  • The instructor informs the University of the charge, where it is recorded. If it is a first-offense, the University takes no further action. If it is not, a University committee is convened. For other than first offenses, the Committee, not the instructor determines the penalty, which can include academic actions such as expulsion or suspension, as well as less-severe actions. The student may appear at this hearing, and the instructor might also ask to appear or be asked to appear.

  • Even on a first offense, the instructor can ask the University to convene a Committee as discussed above. This might be done, for example, in the case of a particularly flagrant case, or under atypical cicumstances.

  • The student has the right to appeal an instructors finding of academic dishonesty. Such an appeal is heard by the same Committee as discussed above. In the event that both the student and faculty member request a Committee, the same Committee will hear both.

  • University procedure provides for the appeal of decisions by the Committee.

  • In the event that the instructor charges a student with Academic Dishonesty, it is suggested that the student consider the totality of the circumstances calmly and rationally and seek advice from the instructor -- as well as third parties, such as the student's advisor, academic dean, or a dean of student affairs. It is may not be in the student's best interest to take a rash action, such as attempting to drop the course.

  • Students who are charge with Academic Dishonesty should be aware that there will be no prejudice against them in the course, beyond the penalty directly imposed, as a result of the charge, or of any appeal.

Late Work

You have three (3) "Late Days" for use on assignments this semester. You can use one day on each of three assignments, three days on one assignment, &c. There are no half days -- an assignment 1 second late requires the use of a full late day.

These late days are not "procrastination days". They are instead designed mcuh like "personal days" at work to handle the little things that come up during the semester: short illnesses, injuries, visiting family or friends, a burst of work in other classes, doctors vists, &c.

The use of these days is completely at your discretion -- but, once they are gone, they are gone. That's it. The course staff cannot give you more. Late work is not accepted, other than through the use of "Late Days".

There is, of course, the possibility that exceptions to this policy will arise. We certainly hope that nothing incapactiating will happen to any of you. But, in the event that there is some major life event including major medical issues, emotional problems, family problems, &c, the course staff stands ready to work with you, as appropriate.

But, because these events are major events that likely will affect more than one class, we refer these circumstances to other University officials, typically academic deans, deans of student affairs, and/or assigned academic advisors.

In the event that you need help of this kind, please see a member of the course staff, and advisor dean, or other appropriate University offical. If you contact us, we'll likely begin by contacting your advisor or dean. But, regardless who you contact first, we'll work together with your academic unit and/or student affairs, and (most importanbtly) you, to do the Right Thing. We are, in fact, here to help.

Please also keep in mind that assignments only count as submitted, if submitted as directed. For example, we don't accept assignments via email or on floppy disk, unless we specifically authorize it. Should you fail to submit an assignment as directed, you will need to use late days to submit it.