CS105: Computer Programming: C++

When: MW 8-9am, August 25 to October 20, 2010
Where: PAI 3.14
Instructor: John Edwards
Email: edwardsj@cs.utexas.edu
Office Hours: Thursday 3-4pm in the ENS Intel lab Room 1, ENS basement
Office: North end of ACES 2.100 by the window
Prerequisites: CS307, CS313E, or EE322C with a grade of at least C
Book (required):
Accelerated C++ by Koenig and Moo
i>clicker (required):
i>clicker available at the CO-OP and online

Schedule

Date Reading Topic Assignments
Aug 25 --- Hello world program program1.cpp test script  
Aug 30 1.1 - 1.2, 2.1 - 2.5 strings, control statements code orig  
Sept 1 NO CLASS ---  
Sept 6 LABOR DAY ---  
Sept 8 3.2 vector code orig  
Sept 13 4.1 functions, references code orig assignment1 due 8:00am
Sept 15 4.2 - 4.5 struct, file structure code  
Sept 20 5.1 - 5.3 iterators code orig assignment2 due 8:00am
Sept 22 5.4 - 5.5 list code orig  
Sept 27 6.1, 6.4 generic algorithms code assignment3 due 8:00am *
Sept 29 8.1 - 8.2 generic functions code  
Oct 4 9.2 - 9.3, 9.5 classes code assignment4 due 8:00am
Oct 6 10.1 - 10.3 pointers code  
Oct 11 10.4 - 10.6 file I/O, memory management code assignment5 due 8:00am
Oct 13 13.1 - 13.2 Inheritance code  
Oct 18 see below ** STL assignment6 due 8:00am
Oct 20   FINAL  

* lidarviewer is a simple viewer for lidar data

** Reading for Oct 18 are two web pages:

Course Overview

The purpose of this course is to provide some exposure to the C++ programming language. Topics we will cover are listed in the schedule. We will focus on proper use of C++ language constructs and idioms.

Grading

Type Number Points
Quizzes Best 10 10x4 = 40
Assignments 6 6x20 = 120
Final 1 1x40 = 40

Quizzes - We will have daily quizzes at the beginning of class (really). No quiz will be given the first or last day of class, making a total of 13 quizzes. The bottom 3 quiz scores will be dropped. The quizzes will be on the daily reading assignment. This doesn't mean that you must have a perfect understanding of everything you read. It just means that you need to have a grasp of what is being talked about, why it is important, etc. Quizzes cannot be made up.

Quizzes are given using the i>clicker, which allows you to electronically respond to the quiz questions. The clickers will also be used for in-class participation. You will need to get an i>clicker from the CO-OP or elsewhere by the second class day. You're welcome to buy a used i>clicker or even borrow one from a friend. You will register your clicker remote in class on the second class day. You are responsible for bringing your clicker remote to class every day.

Assignments - There will be one programming assignment per week, for a total of six. These assignments make up the majority (60%) of the grade. Correctness is only the first step in assignment evaluation. Just as important are clarity, brevity, style and comments. Always check your code against the coding guidelines before submitting.

Assignments are due on Mondays at 8:00am. No late assignments will be accepted. I strongly recommend getting the assignment done the Friday before it is due since I check e-mail very little on Saturdays and I don't check it at all on Sundays. Assignments are graded and returned on Wednesdays. If you choose, you can fix any problems and resubmit the assignment (using the same turnin command) by the following Monday. Bring your assignment printout to class on Monday and give it to me and I will regrade the assignment and you can earn back up to 1/2 credit for each point missed.

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. Sign up for a CS Unix account if you don't have one already. Programming assignments will be turned in with the Unix-based turnin. The web-based turnin will not work. See the Resources section below for help if you're not familiar with Unix or turnin.

Final - A final will be given the last day of class and will be worth 20% of the final grade.

Blackboard - Scores will be maintained on Blackboard.

Late Work Policy

Again, late assignments are not accepted. Daily quizzes cannot be made up.

Academic Honesty

You are required to do your own work on the assigments. Don't copy code. It's okay to talk about general concepts and algorithms, but don't share pseudocode or code. You can talk about problems you are having on assignments, but do not show code to classmates to get debugging help. Either use debugging tools or ask me for more specific help. The best way to do this is to avoid talking to others about the program while you are at the computer. If you have questions on what constitutes cheating or questions about this policy, please talk to me.

Resources

Acknowledgements

Many of the resources were developed and compiled by Jennifer Sartor, Nate Kohl and Maria Jump.