Department of Computer Science
University of Texas at Austin

CS 312 - Introduction to Programming (Summer 2015, Unique No. 88618)
Lecture MWF 10:00 AM - 11:30 AM, PAI 3.02

Instructor: Dr. Shyamal Mitra
E-mail: mitra@cs.utexas.edu
Office Hours: MWF 11:30 AM - 12:00 PM or by appt
Location: GDC 6.320

Teaching Assistant: Rezwana Reaz
E-mail: rezwana@cs.utexas.edu
Office Hours: MTWTh 2:30 PM - 3:30 PM
Location: GDC 6.202

Proctor: Adam Levi Poncher
E-mail: aponcher@utexas.edu
Office Hours: TWThF 2:30 PM - 3:30 PM
Location: GDC 6.202

Required Text: Introduction to Java Programming, Tenth Edition, Brief Version
Author: Y. Daniel Liang
Publisher: Prentice Hall.
ISBN: 978-0-13-359220-7
Supplementary Material: iClicker 1 or 2

Scope of the Course

Computing is an integral part of all natural sciences and engineering disciplines. All other disciplines require some familiarity with computers. This course is designed to teach the fundamentals of computing and programming to students who wish to major in Computer Science. In this course we will cover basic computer architecture and software components. We will learn to program in a high level language (Java). We will learn problem solving techniques for numerical and scientific problems. We will study the object-oriented features of Java, develop our own algorithms, and translate them to computer code. No prior programming experience is required but familiarity with personal computers will help significantly.

We will be following the text quite closely. Supplemental notes will be available on the web. Unlike the traditional lecture format, our classes will be a venue for solving problems, writing programs, and exchanging ideas. Your attendance to the class lectures is mandatory. If you are not there for any lecture you need to send me an e-mail explaining why.

iClicker

Assignments

You may choose to use your own computer to work on these assignments. If you work on your home computer, you will have to download and install the Java Software Development Kit (Version 8). In our class we will not use an IDE. But if you want to invest your time in learning an IDE download Eclipse. We also recommend that you learn the Unix operating system and run your programs on the Linux machines in the CS Labs (GDC 3.302 / GDC 1.310).

Before you use the Linux machines in the CS Labs you must create a CS account. It takes at least 24 hours for your account to get activated. You will have to remember your CS username and password. It maybe different from your UT EID and password. Do not share your account information with anyone. You can reset your password if you forget it.

The only way to learn programming is to program. Doing the programming assignments is crucial to performing well in class. I strongly recommend that you write programs over and above what is assigned to you. Assignments will be given every week. Each assignment will have a clearly stated due date and time. Assignments start out being easy but get harder over the semester. If you are having considerable difficulty with Assignments 2 and/or 3, please see me immediately.

The assignments will require a substantial time commitment over several days (an average of 10 hours per week should be expected). Be sure to budget sufficient time to complete assignments before the deadline.

Turn in your assignments on time. This permits grading to start promptly after the submission deadline so that assignments maybe returned promptly. If you do not finish an assignment by the deadline you have a maximum of two days to turn your assignment in. However, there is a penalty of 10 points (out of a 100 points) per day. Your assignment is one day late until the midnight of the day after it is due, two days late from then until midnight of the second day. If you still have not finished your assignment, see me and discuss your particular situation. You may be given an extension upto a week with 30 points late penalty. The late submission penalty only applies to programming assignments and not to the tutorial exercises on Coding Bat or Live Lab. You must let the student assistants know if you submit your assignment late.

Specific grading criteria vary on each assignment. However, in general, programs that do not run correctly on the Linux machines in the CS Lab (GDC 3.302 / 1.310) configuration will receive no more than 80% of the possible points. Other point deductions are given for such things as - incorrect results, missing features, bad solution logic, etc. No matter what configuration of software that you have on your home computer, the assignment that is turned in must run successfully on the Linux machines in the CS Lab (GDC 3.302 / 1.310) configuration in order to be graded. Here is the general grading critera for programming assignments.

All assignments must be submitted using the web based Canvas program. Normally we do not accept assignments e-mailed to us. The only exception we make is when Canvas is down just before the deadline of an assignment.

Always make a backup copy of the Java source code (i.e. the .java file) on a removable secondary storage device (e.g. a flash drive). This will be necessary in cases where your program gets lost, is corrupted, or if there is some dispute over what was turned in when.

For assigned programs, the source code (.java file) must be turned in. The source code must be a text file that can be run through a Java interpreter. Word processing files (those created with Microsoft Word, for example, and ending with .doc extension ) will not be accepted.

If you want us to help you debug your program, bring your laptop with the program on it during office hours and we will go through the program with you. Do NOT just e-mail the program to us for debugging. We will not look at code mailed to us.

Assignment Identification: All assignments must be submitted with the proper header, containing your name (as registered), your unique section number, and the assignment number at the top of the assignment. The format for the header will be specified in the assignment. That specification will over-ride any other header specificationi.

In addition, because assignments are submitted as files to Canvas, they must have the correct file name, which will be specified in the assignment handout. Assignments, which omit the header or are incorrect in any one or more of these requirements, will have the grade reduced by 5% of the maximum grade.

Graded Assignments: The scores for the assignments will be entered on Canvas. Make sure that you check Canvas on a regular basis to check your scores.

Grade Dispute: You have one week from the date the assignment grade is posted to dispute your grade. The student assistants will be grading the assignments. Send the student assistants an e-mail and see if you can resolve your differences. If you cannot resolve your differences, you may send me an e-mail explaining the situation.We will not entertain any grade disputes after one week.

Tutorial Exercises

We will be working on the exercises posted on Coding Bat. Please create an account on Coding Bat . Use your first name and middle initial as the first name and your last name with any suffix for the last name on the registration form. Once your account is created, share your account with UTCS312@yahoo.com. Do not send e-mail to this account. There will also be tutorial exercises on Live Lab. When you create a user name on Live Lab use your First Name, Middle Initial (if you have one), and Last Name. The course ID on Live Lab is utcs312sm15. The sign up code and instructions on how to register for an account will be given to you in class. There is no extension to the Tutorial Exercises. If you miss the deadline you do not get credit for them.

Quizzes

We will be having quizzes regularly throughout the semester. The quizzes will be adminstered during class using iClickers. There are no make-up quizzes. You may miss at most two of the quizzes during the semester. That is, we will drop the two lowest quiz scores.

Tests

There will be three tests and no final examination. The three tests will be in class. The tentative test dates are - 26 Jun, 24 Jul and 14 Aug.

Make-up tests will be given only for the following reasons. In all cases you must provide some form of documentation.

Having another test on the same day is not official UT conflict! For each test you may bring a non-programmable calculator.

Questions concerning test grades should be given to me in writing along with your test within the next class day that the test is handed back. We will not entertain any disputes after that time.

Grades

Your performance in this class will be evaluated using your scores for quizzes, tutorial exercises, programming assignments, and three tests. The weights of each of these components are listed below. There are no extra credit projects or assignments to improve your grade. All scores will be entered on Canvas. Check your scores regularly on Canvas to make sure that we have entered them correctly. Remember the average score as shown on Canvas is not correct. It is not weighted with the weights as shown above.

Study Groups

Please organize yourselves into study groups of ~5 students who will meet once or twice a week to discuss the course. Typically, you will review the lectures, do the reading, and attempt the homework assignments independently before your weekly meetings with your study group. Studying for tests together is permitted and encouraged. You may work on tutorial exercises together. For programming assignments, you may discuss solutions to problems in simple English but you cannot exchange code. If you are unsure about how to work together with your friend in a legal, helpful manner, do come and talk with us. Remember, it is always ok to "work together" with your professor or TA!

We will be using Piazza for general discussion of class related questions rather than the discussion board on Canvas. Please do not post solutions to any problems on Piazza.

Academic Misconduct Policy

While you are free to discuss the course material with your classmates and are encouraged to form study groups for the exams, collaboration on programming assignments is not permitted unless that assignment has been designated as a pair-programming assignment and you have notified us who your partner is.

Helping a friend understand the intent of a homework or programming assignment specification is permitted. Students who are not pair programmers and who work together too closely (e.g. design their solution together) should be aware that this is a form of cheating called COLLUSION and is subject to academic penalties. Penalties for academic misconduct include a failing grade in this course.

The homework, programs, and exams must be the work of students turning them in. University policy (see Dean of Students' policies on academic integrity) will be followed strictly. We will be running a sophisticated program on all submitted assignments to detect plagiarism. If we do detect any cases of academic dishonesty, we will assign a grade of F to all students involved and refer the cases to the Dean of Students.

Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:

We urge everyone in the class to take appropriate measures for protecting one's work. You should make reasonable efforts to protect your files, homework solution sheets, etc. If we deem that you have cheated on an assignment, tutorial, quiz or test then depending on the degree of your culpability the penalty will range from a zero on that task to an F in the course.

Your Responsibilities in This Class

University Time Table

General Policies

If you are absent from class or examination for the observance of a religious holy day you may turn in your assignment or take the examination on an alternate date provided you have given me written notice fourteen days prior to the class absence. For religious holy days that fall within the first two weeks of class notice must be given on the first class day.

Students with disabilities who need special accommodations should contact the Services for Students with Disabilities (SSD) Office (471-6259 or 471-4641 TTY).