Computer Sciences 312 - Introduction to Programming
                                             Fall 2012

Welcome to CS 312!  This class is an introduction to programming for students who have little or no programming experience. This course uses the Java programming language to introduce you to solving problems with a computer. Most of your learning will take place when you are putting into practice the concepts from the book and lectures, using them to solve increasingly complex problems. You learn through doing.

Mary Eberlein, Ph.D.
PAI 5.48
eberlein at
Office Hours: W 2:30-4 in the PAI 5.38 lab, and by appointment (email me a suggested time).
Course web page:

Teaching Assistants
    Daehyeok Kim (dkim at

    Ashley Oudenne (aoudenne at

    Ebrahim Rajabzadeh (ebrahim at

    Lee Thompson (parnell at

    Hang Yu (yuhang at

    Lisa Lippe (l.k.lippe at

    Monique Lloyd (aml2732 at

    Daniel Robertson (danielrobertson at

All TA and proctor office hours will be held in the microlab, Pai 5.38. See the office hours page for more information.

Building Java Programs by Reges and Stepp, 2nd edition
Additional reference: Thinking in Java by Eckel, available at

Covered Material
computer organization
object-oriented concepts
variables and data types
objects and classes
decision making
testing and debugging
other topics as time permits


I think we all wish that we could have courses without grades. You hate worrying about grades. I hate having to assign grades. But grades are essential to insuring that your degree has the value that it deserves. So we have a grading system and that system has to have two essential properties:
-It has to be fair to everyone in the class.
-It has to be a true measure of how much each student knows about the class material.
The system I will use in this class will assign grades as follows:
3 Exams (Oct 12, Nov 16, final exam slot)        (all cumulative, 15%, 20%, 35%)
Projects/homework assignments                                      15%
Quizzes                                                                              10%
iClicker Participation Points                                               5%

The standard letter grade cutoffs will be applied, i.e., 90 - 100 % is an A, 80 - 89 % is a B, etc. These cutoffs may be changed to the benefit of the students, including the use of + and - grades, at the instructor's discretion.

The exam dates given above are tentative and may be changed.

Your grade records will be maintained by the TA who teaches your discussion section. If you have questions or concerns about your grade, contact your TA during lab hours or by email.

Lab Exercises and Assignments
Assignments and lab exercises will usually be given every week. The due date for each assignment will be clearly stated. Respect Murphy's rule and plan for your bus to run late, your personal computer to crash the afternoon of the due date, etc.

Programs must include: your name, your partner's name if applicable, your section's unique number, your TA's name, the name of your partner's TA, and the assignment number, e.g. "Assignment 1".  Include all of this information in a comment at the top of your program file. Assignment files that are incorrectly named lose 4 points out of 20.  Programs that do not compile will receive 0 points.

Unless otherwise noted, each lab exercise will be graded on a 20 point scale. Quizzes will all be graded on a 10 point scale. 

For your projects, you may use the PCs in PAI 5.38, and in ENS rooms 1 and 2. You are also free to work on your own computer. Programs must compile and run in the Painter Hall microlab.

iClicker Participation
An iClicker2 (a remote control device) is required for this course and must be brought to every lecture as participation on iClicker questions is part of your course grade. It may be purchased from the Co-op bookstore for approximately $40 new, $30 used.

Note: There may be several incompatible brands of remote control devices on sale. Be sure you get the ``iClicker'' brand. For a picture of one, see the iClicker web site. The Co-op will buy back the iClicker for about half the current price. I recommend that you put a piece of transparent tape across the serial number on the back of your iClicker to prevent it from being rubbed off with use. The serial number is important when you register the iClicker (see the next step) and you want it intact when/if you sell the iClicker back to the bookstore.

Register your iClicker at by providing:

If you already have an iClicker and registered it to your EID in the past, you must re-register for this semester.

iClicker participation is measured in your answers to iClicker questions, so bring your iClicker2 with you to lecture. In order to receive iClicker credit for a given day you MUST:

Use of laptops, phones or other digital devices during lecture results in the forfeiture of iClicker participation points.

Collaboration on Assignments
You are encouraged to study for exams together, to discuss approaches to solving the assignments, to help each other in using the software, and to discuss methods for debugging code. On some specified assignments you may work with one other person - if you work with a partner on these specified assignments, you must follow the pair programming guidelines on the course webpage. If you do this, you will turn in the assignment to only one of your lab accounts, but be sure to include both of your names in the header and note that this is a pair assignment. Both students will receive the same grade for the assignment. Unless otherwise noted, all assignments must be done alone. 

Study Groups

Please organize yourselves into study groups of 10 students who will meet once a week to discuss the course material. One person in each group should submit the group members and your meeting location and time to your TA via email by the fourth class meeting. 

Exam Topics

Exams will cover material from lecture, discussion sections, assignments, and assigned readings. Exams will be cumulative, but they will be more heavily weighted towards material which has not yet been tested.


Announced and pop quizzes will be given frequently. Your lowest quiz grade will be dropped. No makeup quizzes will be given. I suggest that you plan to attend all classes and discussion sections so that you may drop a quiz you miss because of illness or emergency.

Late Work
Makeup exams will not be given, though other arrangements can be made in cases of verifiable illness or emergency.

No lab assignment may be turned in more than 3 days late (that is, if the project is due at 10 pm on Thursday, it cannot be submitted after 10 pm the following Sunday). You will have 4 free late (slip) days in 1 day units (that is, 1 minute to 24 hours late = 1 slip day, etc.) for the projects this semester, but you cannot use slip days for the first programming assignment. You may divide your slip days across the remaining projects in any way you wish to extend deadlines for the projects, subject to the 4 day total maximum and the 3 day maximum per project. To help the TA track your slip-day status, add the following comment to the header of your .java file:

Pair Name 1: Slip days used for this project:____  Slip days used (total):_____
Pair Name 2: Slip days used for this project:____  Slip days used (total):_____

No other programming assigment extensions will be granted, so please do not use your slip days frivolously. I recommend that you plan to turn in all projects on time and use your slip days for unexpected illnesses or emergencies. If you are working with a pair partner on a project, you both use one slip day for each day your program is late.

Pair Programming
Some of the projects may be done in pairs. I will indicate clearly which projects may be done this way. Research has shown that students perform and learn better when pair programming is used to complete assignments. For pair programming projects, you and your partner must sit, design, and program together at least 80% of the time, and split keyboard time evenly. Each student can work independently for at most 10% of the time. See the webpage on pair programming for more information.

Once you choose a partner for a particular project, you cannot change partners for that assignment. In an emergency and with instructor approval (that is, your partner drops the course, gets sick, won't meet with you to work on the project, etc), you may complete the assignment individually.  Include in your assignment comments your former partner's name and your email correspondence with the TA and instructor.

Computers and Accounts
You must apply for a lab account no later than Friday, August 31st, at noon. It takes at least one business day for your account to be activated, and may take up to 3 business days. You will need your account during the second week of class. You will use this account in the microcomputer labs and to submit your programming assignments.

To apply for an account, follow the instructions here:

Grade Changes
If you are dissatisfied with any grade you receive, you must present a written complaint to your TA (the TA who teaches your discussion section). The complaint must be submitted within one week of the date on which we first attempted to return the graded work to you. Your complaint must contain supporting evidence and arguments which explain why your work was graded incorrectly. It is not sufficient to submit a note that says "regrade question 3", for example. Grade change requests that do not meet these requirements will not be considered. Note that assigned grades are not the starting point of a negotiation. This isn't a weekend bazaar. Unless we have made a mistake in grading your work (i.e., you have a correct answer that was marked wrong, or your score was added incorrectly), your grade is final.

Note that none of the following grade discussions is appropriate:
(1) "I know my answer was wrong, but I deserve more partial credit points."
When we grade, we make decisions about how many points to give for various kinds of wrong answers. This is never a clear cut decision. The important thing is that we make some decision and then implement it fairly for everyone. It is completely unfair to come back later and give one person more points just because they ask. We won't do it.
(2) "I don't like my final grade. It will ruin my life for the following reason: ... Therefore you should give me a better one."
Class grades reflect only one thing: how well you did in the class. Life circumstances just don't play a role here. Don't come to me with this kind of argument.
(3) "I don't like my final grade. I am desperate. Isn't there some sort of extra credit thing I could do?"
Any answer other than "No" to this question would be completely unfair to other students in the class unless they were all offered this option. That would be equivalent to saying that the semester isn't over and everyone can keep trying. We're not going to do this. Final grades are final.
(4) "I don't like my final grade. Can I have an incomplete and try again?"
There are University rules for giving incompletes. If you meet those rules (e.g., you had a medical problem during the semester), then, of course, come and tell me and ask for an incomplete. But make sure you do it as soon as you can. Do not wait until the semester is over. If you do not meet the rules, the answer is "No".
(5) "I don't like my final grade. It doesn't reflect what I really know. I guess I didn't show what I know on the exams, but won't you give me a chance to convince you that I really know this stuff."
Again, any answer other than "No" would be unfair to everyone else.

Academic Honesty and Inappropriate Collaboration
Unless otherwise specified by the instructor, you are expected to complete all work alone. You are permitted to discuss high-level approaches to the assignments with other students, but the moment you start looking at another student's source code you have crossed the line into cheating.  I will use plagiarism detection software on assignments to find students who have copied code from one another. Students may not acquire (from any source) a solution, or partial solution, for an assignment.

Examples of cheating are: looking at someone else's program, writing your program while talking to someone else about it, talking another student through the solution code, allowing others to look at your solution code,  and looking on the internet for code to solve your programming assignments.

While talking to another student about a project, you should not have a writing implement, keyboard, or recording device in hand. You are required to take appropriate measures to protect your own work - proctect your printouts and files from unauthorized access. If you have any doubts about what is allowed, ask the instructor. 

Part of academic honesty on pair programming assignments is following the pair programming rules. You are NOT allowed to divide the work on a pair project in half, with you and your partner each doing parts of the assignment separately. That is cheating, since you did not contribute to half of the assignment. You are responsible for the entire project that you and your partner submit. Make sure that you have electronic copies of the project, with regularly updated versions. Talk to the instructional staff immediately if you are having difficulties with your partner.

We follow the University's standard policies on academic honesty. They will be rigorously enforced. Cheating will result in action commensurate with the policies stated in the University's Manual on Academic Honesty. My penalty for cheating on an exam, quiz or assignment is an F in the course and a referral to the Dean of Students office. You are expected to do all work individually unless explicit permission for group work is given.

Religious Holy Days
A student who is absent from an examination or cannot meet an assignment deadline due to the observance of a religious holy day may take the exam on an alternate day or submit the assignment up to 24 hours late without penalty, if proper notice of the planned absence has been given. Notice must be given at least 14 days prior to the classes which will be missed. For religious holy days that fall within the first 2 weeks of the semester, notice should be given on the first day of the semester. Notice must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail. Email notification will be accepted if received, but a student submitting email notification must receive email confirmation from the instructor.

Students with Disabilities
The University of Texas at Austin provides upon request appropriate academic accomodations for qualified students with disabilities. For more information, contact the Office of the Dean of Students at 471-6259, 471-4641 TTY.