The main goal of this course is to make you comfortable with programming in C++, and to give you practice writing, debugging, and testing programs in C++. The course will cover the syntax of C++, good programming practices, debugging, unit testing use of Makefiles, and using the Standard Template Library.
From the course catalog:
Formerly CS 342S. Intensive focus on practical aspects of designing, implementing and debugging object-oriented software. Topics covered include developing, documenting, and testing representative applications using object-oriented frameworks and C++. Design and implementation based on frameworks are central themes to enable the construction of reusable, extensible, efficient, and maintainable software. Prerequisites: CSE 132/CS 102G and 241.
| Instructor: | Bill Smart, wds@cse.wustl.edu | |||
| Office Hours: | Lopata 516 | |||
| by appointment | ||||
| Teaching Assistants: | Douglas Li, lidouglas@gmail.com | Craig Szczesiul, cas2@cec.wustl.edu | ||
| Office Hours: | Lopata 400 | Lopata 400 | ||
| Wednesday, 5:30pm to 7:00pm | Monday, 5:30pm to 7:00pm | |||
| Thursday 5:30pm to 7:00pm | Thursday, 2:30pm to 4:00pm | |||
| Lab A: | Tuesday, 1:00pm-2:30pm | |
| Lab B: | Tuesday, 2:30pm-4:00pm |
All questions about the course material must be asked on the class message board. If you see a question you know the answer to on the newsgroup, then answer it.
The grading staff will monitor the board and attempt to answer questions as quickly as possible. However, any technical questions mailed directly to the instructor or the TA will be ignored. If you have a specific problem, then it's likely that someone else does too. Asking the question on the newsgroup archives the answer, and it means that the grading staff doesn't need to answer the same question 30 times.
Get into the habit of reading the board daily. Important messages about the class will be posted there. "But I didn't read the board" is not a valid excuse. If you have a problem interacting with the message board, then let us know immediately.
Obviously, if you have a question or concern of a personal nature, you should mail this directly to the TA or the instructor. Also, bear in mind the academic integrity policy when posting and answering questions.
The official textbook for the course, available at the bookstore is
"C++ How to Program", Deitel and Deitel, 6th edition,
Pearson/Prentice Hall, 2008. The book has
a web
page, from which you can access additional resources (if you've
bought a paper copy). This is a textbook, and has a relatively gentle
introduction to C++.
if you consider yourself to be a strong programmer in some other language, you might want to consider another pair of books, instead of Deitel. These books are much more like references, and have less of a tutorial flavor than Deitel does. However, if you're going to be a serious C++ programmer, you will probably end up with these books on your shelf at some point. They will not be in the bookstore, but the Austern book is the text for CSE 532 this semester, so you might be able to grab a spare copy if there's one left over.
Just to be clear, you don't need both sets of books. You should pick either Deitel or Prata and Austern.
There will a number of programming labs in this class. Your performance in these labs will form the majority of your grade. Labs will increase steadily in difficulty, scope, and value as the semester progresses. Unless otherwise specified, labs are to be submitted electronically. For each lab, the assignment will include a list of deliverables, and the procedure for submitting your work. You are required to follow these instructions.
Labs are to completed individually, unless we tell you otherwise in the lab description. You should submit your work by the due date listed on the assignment. Labs submitted up to 24 hours after the posted deadline will be graded with a 10% penalty. Labs submitted between 24 and 48 hours late will be graded with a 20% penalty. Work submitted more than 48 hours late will not be graded, and you will receive a 0 for that assignment. If you have a valid reason for needing a deadline extension, get in touch with the instructor in advance to discuss it. Deadline extensions after the fact will not be given.
You may discuss general questions related your projects with other students on the newsgroup. While you are encouraged to post and ask for help on particular problems you may encounter during an assignment, you must design and implement your own solution. In particular, while posting small fragments related to specific questions is allowed, direct sharing or "reuse" of code is forbidden, unless we explicitly tell you otherwise.
| Lab | Assigned | Due | Points | Example Solution | ||||
| Lab 0 |
January 16 | January 23, 11:59pm | See assignment | |||||
| Lab 1 |
January 22 | January 28, 11:59pm | 5% | solution | ||||
| Lab 2 |
January 29 | February 7, 11:59pm | 5% | solution | ||||
| Lab 3 |
February 19 | March 4, 11:59pm | 20% | solution | ||||
| Lab 4 |
March 4 | March 25, 11:59pm | 20% | solution | ||||
| Lab 5 |
March 28 | April 11, 11:59pm | 20% | |||||
| Lab 6 |
April 15 | May 5, 11:59pm | 30% |
The late policy for the class is 10% per day late, up to a maximum of three days. If you're more than three days late on an assignment, you get zero points for that assignment. If you have some valid reason for needing more time on an assignment, then you should contact me at least two days before the deadline to request an extension. Last-minute requests will only be met in exceptional circumstances.
In calculating your final grade for the class, you will have the option of discarding the grade for one of labs 3, 4, and 5, and replacing it with the average grade of the other two. For example, if you choose to discard your lab 3 grade, it will be replaced by the average grade for labs 4 and 5.
Everything that you turn in for this class, and your answers on all of the quizzes and exams must be your own work. If you willfully misrepresent someone else's work as your own, you are guilty of cheating. Cheating, in any form, will not be tolerated in this class.
If you are guilty of cheating on any assignment, quiz, or exam, you will be penalized the number of points that the assignment is worth. For example, if you cheat on an assignment worth 10% of the final grade, you will be receive -10% for that assignment. If you copy from someone else in the class both parties will be penalized, regardless of which direction the information flowed. Two or more instances of cheating in the course will be referred to the School of Engineering Discipline Committee, and will result in an F in the class.
We will follow the guidelines of the University Undergraduate Academic Integrity Policy, but we reserve the right to make the final determination of what constitutes cheating for this class. If you suspect that you may be entering an ambiguous situation, it is your responsibility to clarify it before the professor or TAs detect it. If in doubt, please ask.
| Page written by Bill Smart. |