Difference between revisions of "COMP345 - fall 2013"
From Dr. Joey Paquet Web Site
(→Lecture Schedule) |
(→Course Material and Resources) |
||
(17 intermediate revisions by one user not shown) | |||
Line 5: | Line 5: | ||
Prerequisite: COMP 352 previously or concurrently. Introduction to C++. I/O with stream classes. Pointers and their uses. The Standard Template Library (STL): containers, algorithms, iterators, adaptors, function objects. Class design: constructors, destructors, operator overloading, inheritance, virtual functions, exception handling, memory management. Advanced topics: libraries, locales, STL conventions, concurrency, template meta-programming. Applications of C++: systems, engineering, games programming. Project. Lectures: three hours per week. NOTE: Students who have received credit for COMP 446 may not take this course for credit. | Prerequisite: COMP 352 previously or concurrently. Introduction to C++. I/O with stream classes. Pointers and their uses. The Standard Template Library (STL): containers, algorithms, iterators, adaptors, function objects. Class design: constructors, destructors, operator overloading, inheritance, virtual functions, exception handling, memory management. Advanced topics: libraries, locales, STL conventions, concurrency, template meta-programming. Applications of C++: systems, engineering, games programming. Project. Lectures: three hours per week. NOTE: Students who have received credit for COMP 446 may not take this course for credit. | ||
− | {| | + | ==Course Schedule and Contacts== |
− | ! | + | |
− | ! | + | {| {{simpleTable}} |
− | ! | + | ! {{tableHeaderCell}} | component |
− | ! | + | ! {{tableHeaderCell}} | day |
− | ! | + | ! {{tableHeaderCell}} | time |
− | ! | + | ! {{tableHeaderCell}} | location |
− | ! | + | ! {{tableHeaderCell}} | instructor |
+ | ! {{tableHeaderCell}} | e-mail address | ||
+ | ! {{tableHeaderCell}} | web site | ||
|- | |- | ||
|| lecture D || <tt>-T-J---</tt> || <tt>13:15-14:30</tt> || <tt>FG B070</tt> || Paquet, J. || paquet@cse.concordia.ca || | || lecture D || <tt>-T-J---</tt> || <tt>13:15-14:30</tt> || <tt>FG B070</tt> || Paquet, J. || paquet@cse.concordia.ca || | ||
Line 28: | Line 30: | ||
|} | |} | ||
− | + | ==Lecture Schedule== | |
− | {| | + | {| {{simpleTable}} |
− | ! | + | ! {{tableHeaderCell}} | wk |
− | ! | + | ! {{tableHeaderCell}} | date |
− | ! | + | ! {{tableHeaderCell}} | event |
− | ! | + | ! {{tableHeaderCell}} | lecture topics (TENTATIVE) |
− | ! | + | ! {{tableHeaderCell}} | material |
|- | |- | ||
|| week 1 | || week 1 | ||
Line 54: | Line 56: | ||
*notes: program organization | *notes: program organization | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.1.basics.ppt|Slide set 1]] |
− | *[[ | + | *[[Media:Chap1cpp4th.ppt|Savitch chapter 1 slides]] |
− | *[[ | + | *[[Media:Chap11cpp4th.ppt|Savitch chapter 11 slides]] |
|- | |- | ||
|| week 3 | || week 3 | ||
Line 66: | Line 68: | ||
*ch7: constructors, const, inline, static | *ch7: constructors, const, inline, static | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.2.classes.ppt|Slide set 2]] |
− | *[[ | + | *[[Media:Sav_ch06.ppt|Savitch chapter 6 slides]] |
− | *[[ | + | *[[Media:Sav_ch14.ppt|Savitch chapter 14 slides]] |
− | *[[ | + | *[[Media:Sav_ch07.ppt|Savitch chapter 7 slides]] |
|- | |- | ||
|| week 4 | || week 4 | ||
|| sep 23 - sep 27 | || sep 23 - sep 27 | ||
|| | || | ||
− | *[[ | + | *[[Media:Assignment1.COMP345.2013.2.pdf|individual programming assignment #1 handout (updated!)]] |
|| | || | ||
|| | || | ||
Line 86: | Line 88: | ||
*ch7,19: vectors, iterators | *ch7,19: vectors, iterators | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.3.arrays.ppt|Slide set 3]] |
− | *[[ | + | *[[Media:Sav_ch05.ppt|Savitch chapter 5 slides]] |
− | *[[ | + | *[[Media:Sav_ch10.ppt|Savitch chapter 10 slides]] |
− | *[[ | + | *[[Media:Sav_ch07.ppt|Savitch chapter 7 slides]] |
− | *[[ | + | *[[Media:Sav_ch19.ppt|Savitch chapter 19 slides]] |
|- | |- | ||
|| week 6 | || week 6 | ||
Line 98: | Line 100: | ||
*GUI design in C++ (MVC and Observer Patterns) | *GUI design in C++ (MVC and Observer Patterns) | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.5.MVC-Observer.ppt|MVC and the Observer Pattern in C++]] |
− | *[[ | + | *[[Media:COMP345.GUIslides.titus.zip|lab GUI slides]] |
− | *[ | + | *[[Media:MFCTutorial.zip|Example MFC code]] |
− | *[ | + | *[[Media:GUI_design_in_C++_1.pdf|lab's GUI slides 1]] |
− | *[ | + | *[[Media:GUI_design_in_C++_2.pdf|lab's GUI slides 2]] |
− | *[ | + | *[[Media:GUI_design_in_C++_3.pdf|lab's GUI slides 3]] |
− | *[ | + | *[[Media:GUI_design_in_C++_4.pdf|lab's GUI slides 4]] |
− | *[ | + | *[[Media:simpleShapes.zip|lab's GUI example code 1]] |
− | *[ | + | *[[Media:Dialogs.zip|lab's GUI example code 2]] |
|- | |- | ||
|| week 7 | || week 7 | ||
Line 112: | Line 114: | ||
|| | || | ||
*[oct 14-15] midterm examination | *[oct 14-15] midterm examination | ||
− | *[[ | + | *[[Media:Assignment2.COMP345.2013.2.pdf|individual programming assignment #2 handout (updated!)]] |
− | *[[ | + | *[[Media:Gradingintermediateproject.COMP345.paquet.2013.2.pdf|project build #1 grading sheet handout (updated!)]] |
*[oct 18] individual programming assignment #1 due | *[oct 18] individual programming assignment #1 due | ||
|| | || | ||
Line 125: | Line 127: | ||
*ch15: polymorphism, virtual functions | *ch15: polymorphism, virtual functions | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.6.virtuals.ppt|Slide set 6]] |
− | *[[ | + | *[[Media:Sav_ch15.ppt|Savitch chapter 15 slides]] |
|- | |- | ||
|| week 9 | || week 9 | ||
|| oct 28 - nov 1 | || oct 28 - nov 1 | ||
|| | || | ||
− | *[[ | + | *[[Media:Assignment3.COMP345.2013.2.pdf|individual programming assignment #3 handout (updated!)]] |
*[nov 1] individual programming assignment #2 due | *[nov 1] individual programming assignment #2 due | ||
|| | || | ||
*design patterns in C++ | *design patterns in C++ | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.7.patterns.ppt|Slide set 7]] |
− | *[[ | + | *[[Media:PatternsC--.zip|design patterns implemented in C++ (1)]] |
− | *[[ | + | *[[Media:DPCPP.zip|design patterns implemented in C++ (2)]] |
− | *[[ | + | *[[Media:CPP Patterns.zip|design patterns examples from the slides]] |
|- | |- | ||
|| week 10 | || week 10 | ||
Line 148: | Line 150: | ||
*ch8: operator overloading | *ch8: operator overloading | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.8.operators.ppt|Slide set 8]] |
− | *[[ | + | *[[Media:Sav_ch08.ppt|Savitch chapter 8 slides]] |
|- | |- | ||
|| week 11 | || week 11 | ||
|| nov 11 - nov 15 | || nov 11 - nov 15 | ||
|| | || | ||
− | *[[ | + | *[[Media:Gradingfinalproject.COMP345.paquet.2013.2.pdf|final project build grading sheet handout (updated!)]] |
|| | || | ||
*ch18:exception handling | *ch18:exception handling | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.9.exceptions.ppt|Slide set 9]] |
− | *[[ | + | *[[Media:Sav_ch18.ppt|Savitch chapter 18 slides]] |
|- | |- | ||
|| week 12 | || week 12 | ||
Line 168: | Line 170: | ||
*ch16:templates | *ch16:templates | ||
|| | || | ||
− | *[[ | + | *[[Media:COMP345.10.templates.ppt|Slide set 10]] |
*[[Generic_programming: class templates, function templates, templates and inheritance, vectors, iterators|templates in C++]] | *[[Generic_programming: class templates, function templates, templates and inheritance, vectors, iterators|templates in C++]] | ||
− | *[[ | + | *[[Media:Sav_ch16.ppt|Savitch chapter 16 slides]] |
− | *[[ | + | *[[Media:Sav_ch19.ppt|Savitch chapter 19 slides]] |
|- | |- | ||
|| week 13 | || week 13 | ||
|| nov 25 - nov 29 | || nov 25 - nov 29 | ||
|| | || | ||
− | *[nov 27-28][[final project delivery COMP345 fall | + | *[nov 27-28][[final project delivery COMP345 fall 2013|final project delivery due (updated!)]] |
|| | || | ||
|| | || | ||
Line 192: | Line 194: | ||
|} | |} | ||
− | =Course Material and Resources= | + | ==Course Material and Resources== |
− | *[[ | + | *[[Media:Syllabus.COMP345.paquet.2013.2.pdf|Course outline]] |
*[https://fis.encs.concordia.ca/eas/servlet/description ENCS Electronic Student Submission System] | *[https://fis.encs.concordia.ca/eas/servlet/description ENCS Electronic Student Submission System] | ||
− | *[[ | + | *[[Media:SourceCode4e.zip|Source code of all program examples in the textbook (by Walter Savitch)]] |
− | + |
Latest revision as of 11:05, 11 September 2014
Contents |
Course Description
COMP 345 - Advanced Program Design with C++ (3 credits)
Prerequisite: COMP 352 previously or concurrently. Introduction to C++. I/O with stream classes. Pointers and their uses. The Standard Template Library (STL): containers, algorithms, iterators, adaptors, function objects. Class design: constructors, destructors, operator overloading, inheritance, virtual functions, exception handling, memory management. Advanced topics: libraries, locales, STL conventions, concurrency, template meta-programming. Applications of C++: systems, engineering, games programming. Project. Lectures: three hours per week. NOTE: Students who have received credit for COMP 446 may not take this course for credit.
Course Schedule and Contacts
component | day | time | location | instructor | e-mail address | web site |
---|---|---|---|---|---|---|
lecture D | -T-J--- | 13:15-14:30 | FG B070 | Paquet, J. | paquet@cse.concordia.ca | |
lab D | ---J--- | 14:45-17:45 | H-821 | Laleh, T. | t_laleh@encs.concordia.ca | |
office hours D | --W-—-- | 11:00-13:00 | EV-3-221 | Paquet, J. | ||
lecture N | M-W---- | 16:15-17:30 | H-520 | Taleb, M. | mtaleb@encs.concordia.ca | |
lab N | --W---- | 18:00-21:00 | H-821 | Azarnik, A. | am_azar@encs.concordia.ca | |
office hours N | TBD | Taleb, M. |
Lecture Schedule
wk | date | event | lecture topics (TENTATIVE) | material |
---|---|---|---|---|
week 1 | sep 2 - sep 6 |
|
||
week 2 | sep 9 - sep 13 |
|
|
|
week 3 | sep 16 - sep 20 |
|
||
week 4 | sep 23 - sep 27 | |||
week 5 | sep 30 - oct 4 |
|
||
week 6 | oct 7 - oct 11 |
|
||
week 7 | oct 14 - oct 18 |
|
||
week 8 | oct 21 - oct 25 |
|
|
|
week 9 | oct 28 - nov 1 |
|
|
|
week 10 | nov 4 - nov 8 |
|
|
|
week 11 | nov 11 - nov 15 |
|
||
week 12 | nov 18 - nov 22 |
|
|
|
week 13 | nov 25 - nov 29 |
|
||
exam week | dec 4 - dec 19 |
|