CS105: Introduction to Computer Programming: C++
Date: Spring 2007 Times: T 1:00-2:30p
Classroom: RLM 6.112
Unique No: 54745

This course will serve as an introduction to C++. As it is only an introduction and the scope of C++ is huge, we will not be able to cover every aspect of the language. Instead we will cover many of its important features and look at how it differs from other object-oriented programming languages (see detailed schedule). Additionally I will try to help you develop strategies for approaching the learning of any new programming language whether it is your 2nd, 3rd, or 100th.


Instructor

Maria Jump (mjump@cs.utexas.edu)
Office: ACES 3SEi2C
Phone: 232-7446
Office Hours: M 1:30 - 2:30 (TAY Basement) and by appointment

Prerequisites

The prerequisite for this class is CS 315 with a grade of at least C, or permission of the instructor. A good understanding of object-oriented programming in Java is expected.

Resources

Course book: Deitel & Deitel, C++: How to Program, fifth edition. You are not required to purchase this particular book, but you need a recent book or it won't match the current C++ standard. The class web page is

http://www.cs.utexas.edu/~mjump/cs105/s07/

Annoucements will be posted there. There is also a class newsgroup, utexas.class.cs105.c++. This is mainly intended to be a resource for students to help each other. Questions requiring an immediate answer from the instructor should be asked in person or sent via email. You are required to either read the newsgroup or regularly check the web page for announcements. If you email a question that is already answered on the web page or in the newsgroup, it will be ignored. Announcements made in class will also be posted on the course website.


Grading Policies

Since the purpose of this class is to teach you a programming language, there will be a strong programming requirement. I believe that the best way to learn to program is by doing. Therefore, there will be no midterm nor final exam. Instead, in-class quizzes (worth 20%) and programming assignments (worth 80%) will determine your grade. Regardless of your overall average, to pass this class you will need to submit WORKING versions of all SIX programming assignments. A program is considered to be working IF AND ONLY IF it compiles and executes without error. If more than one submission has been made by a student for any project assignment then only most recent submission will be graded. Late assignments will not be accepted. Assignments must be turned in electronically via the unix-based turnin. Any assignment received more than 15 minutes after its deadline will be considered late. Each student receives a mulligan that they can use to turn in one assignment up to three days late. To do this, I must be notified (email is fine) before the assignment is due. The mulligan policy is intended to help you cope with emergencies that prevent assignments being finished on time. If you use your mulligan you will not get another one for any reason.

Due to the numerous issues regarding incompatibility between compilers, operating systems, file formats, etc., on different computer systems, students are strongly advised to do all of their program development on a UNIX machine. It is the student's responsibility to ensure that their projects both compile and run on the standard CS UNIX machines where they will be graded. All students are eligible to recieve a UNIX account if they do not already have one. Sign-up for new accounts can be done in PAI 3.12 or PAI 5.38. Please see the instructor if there is a problem.

Your instructor reserves the right to regrade the entirety of any quiz or project so submitted for regrading. This could result in a lower score for coursework submitted for specious reasons.


Final Drop Date

Remember that this course is only 10 weeks long. It's final meeting day is on Tuesday, March 27, 2007. Nobody will be able to drop this course after that date (even though the "drop date" may be after that). If you plan on dropping this course, make sure you do it before the final meeting day for the class.

Religious Holidays

A student who cannot meet an assignment deadline due to the observance of a religious holy day may 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 fourteen days prior to the classes scheduled on dates the student will be absent. For religious holy days that fall within the first two weeks of the semester, notice should be given on the first day of the semester. It must be personally delivered to the instructor and signed and dated by the instructor, or sent certified mail, return receipt requested. Email notification will be accepted if received, but a student submitting such notification must receive email confirmation from the instructor. A student who fails to complete missed work within the time allowed will be subject to the normal academic penalties.

Academic Honesty

You are required to do your own work. Specifically, on programming assignments, you may discuss general concepts and algorithms, but you may not collaborate on flowcharts, pseudocode, or C++ code. While it is acceptable to discuss problems that you may be having, showing someone your code and asking for debugging help is not allowed. These rules apply whether you are receiving help from another student or from someone outside the class. You are always allowed to ask the instructor for more specific help. The easiest way to comply with this policy is to avoid talking to others about the program while you are working at a computer. If you have questions relating to this policy, please direct them to the instructor. The usual recommended penalty for academic dishonesty will be a failing grade in the class.