|When:||Wednesdays 10:45 - 11:45 and 14:45 - 17:00 from 24th September to 29th October, 2014 (continuing to 17th December with GPU Programming)|
|Where:||Howest in Kortrijk room GKG.B.1.18|
|Instructor:||Jennifer B. Sartor|
|GPU Instructors||Ignace Saenen: firstname.lastname@example.org and Jonas Elsayehkhalil: email@example.com|
(recommended, not required)
This is an ambitious schedule -- we may have to shift some content around as the semester progresses. We cannot cover all of C++, this class is only an introduction. It is better if you have an understanding of object-oriented programming, and experience with some procedural language. We will try to cover: basic syntax, I/O, functions and argument passing, arrays, references, pointers, classes, dynamic memory management, inheritance, polymorphism with virtual functions and dynamic binding, generic programming with templates, and possibly operator overloading.
|24 Sept||Introduction with a basic C++ program, and starting on Arrays, parameter passing, and pointers, and try the following Exercises for practice.||A0: Decipher, due Thursday, 2 October at 12:00 (noon)|
Dynamic allocation, function templates and
classes, plus a constructor and destructor code
Do these exercises, and check your answers to the first set of exercises.
|A1: GameofLife, due Thursday, 9 October at 12:00 (noon)|
|8 Oct|| More on Classes, plus an example with a Date class and a Member class.
Check your answers to exercises1, and for more practice: exercises.
|A2: Library with Book and Student classes, due Thursday, 16 October at 12:00 (noon)|
|15 Oct||Classes with Inheritance, Polymorphism and Virtualness, and we will define the Array class given the .h file. Here is an Array class like we defined in class.||A3: Pairing Hands, due Thursday, 23 October at 12:00 (noon)|
|22 Oct||Templates, Friends, Operator Overloading, Makefiles, Function Pointers, and various concepts. Also, check out how to use function pointers and array of function pointers and a cool example with an array.||A4: Generic Set, due Tuesday, 4 November at 12:00 (noon)|
|29 Oct||FINAL EXAM|
|5 Nov||Enjoy GPU Programming.|
This purpose of this course is to provide some exposure to the C++ programming language. We will try to cover: basic syntax, I/O, functions and argument passing, arrays, references, pointers, classes, dynamic memory management, inheritance, polymorphism with virtual functions and dynamic binding, generic programming with templates, and possibly operator overloading.
The course prerequisites are listed on the Howest website. If you're unsure if you've programmed enough to take this course, talk to me after class or via firstname.lastname@example.org.
The main work that you'll have to do for this course consists of 4-5 programming assignments, because this class is focussed on learning a programming language. Programming assignments will be done individually (by yourself, not pair programming) and be worth 80% of your grade. We will have one final short test on the last day of class worth 20% of your grade. Make sure to attend classes so you are up to date with the material and assignments!
Your assignments will be evaluated on correctness, clarity, and style. Regardless of your overall average, to pass this class you will need to submit working versions of ALL programming assignments. A program is considered to be working if and only if it compiles and executes without error. It should also pass the basic test drivers provided with each assignment. Don't underestimate style and documentation which will be approximately 15% of each programming assignment.
The last assignment turned in by the deadline is the one that will be graded. Your instructor reserves the right to regrade the entirety of any quiz or project if it is submitted for regrading. This could result in a lower score for coursework submitted for non-valid reasons.
Assignments will be typically due on Thursdays by noon. Late assignments will not be accepted (I will give 5 minutes slack time). You are allowed 1 late day (24 hours), called a "mulligan", during this semester to deal with emergencies. You must notify me ahead of the submission time that you intend to take mulligan time. You can use the mulligan on only 1 assignment (you cannot break up the 24 hours).
You are required to do your own work. Don't copy code. It's okay to talk about general concepts or 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 the instructor 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 the instructor.
Any cheating that I catch I have to report to Howest, and will result in failing the class. It's totally not worth it. If you find yourself in a bind, email me and we'll work something out.
Parts of this course were adapted from or inspired by the University of Texas at Austin's CS105 courses of Nate Kohl and Maria Jump, with additional thanks to Greg Kuhlmann.