Difference between revisions of "COMP345 - fall 2019"
From Dr. Joey Paquet Web Site
(Created page with "==Course Description== '''COMP 345 - Advanced Program Design with C++''' (4 credits) Prerequisite: COMP352 previously or concurrently. Introduction to C++. I/O with stream ...") |
(→Lecture Schedule) |
||
(47 intermediate revisions by one user not shown) | |||
Line 20: | Line 20: | ||
! {{tableHeaderCell}} | web | ! {{tableHeaderCell}} | web | ||
|- | |- | ||
− | || lecture D || <tt>-T-J---</tt> || <tt>13:15-14:30</tt> || <tt>H-415</tt> || | + | || lecture D || <tt>-T-J---</tt> || <tt>13:15-14:30</tt> || <tt>H-415</tt> || Joey Paquet || <tt>paquet@encs.concordia.ca</tt> || |
|- | |- | ||
− | || instructor's office hours || <tt>--W----</tt> || <tt>10:00-12:00</tt> || <tt>EV-3-221</tt> || | + | || instructor's office hours || <tt>--W----</tt> || <tt>10:00-12:00</tt> || <tt>EV-3-221</tt> || Joey Paquet || || |
|- | |- | ||
− | || lab | + | || lab AX || <tt>--W----</tt> || <tt>20:30-22:20</tt> || <tt>H-831</tt> || || || |
+ | |- | ||
+ | || lab BX || <tt>--W----</tt> || <tt>20:30-22:20</tt> || <tt>H-929</tt> || || || | ||
|- | |- | ||
− | || lab | + | || lab CX || <tt>--W----</tt> || <tt>20:30-22:20</tt> || <tt>H-917</tt> || Sleiman Rabah || <tt>s_rabah@encs.concordia.ca</tt> || [https://users.encs.concordia.ca/~s_rabah/ta/courses/comp345.php web page] |
|- | |- | ||
− | || lab | + | || lab EX || <tt>--W----</tt> || <tt>17:45-19:35</tt> || <tt>H-831</tt> || || || |
|- | |- | ||
− | || | + | || lab FX || <tt>--W----</tt> || <tt>17:45-19:35</tt> || <tt>H-929</tt> || Vahid Khorasani Ghassab || <tt>vahid.khorasani@ieee.org</tt> || |
|- | |- | ||
− | || marker || || || || | + | || lab GX || <tt>--W----</tt> || <tt>17:45-19:35</tt> || <tt>H-917</tt> || Zachary Lapointe || <tt>zachary.lapointe@mail.concordia.ca</tt> || |
+ | |- | ||
+ | || marker || || || || Sleiman Rabah || <tt>s_rabah@encs.concordia.ca</tt> || | ||
+ | |- | ||
+ | || marker || || || || Zachary Lapointe || <tt>zachary.lapointe@mail.concordia.ca</tt> || | ||
|} | |} | ||
Line 53: | Line 59: | ||
*introduction to C++ | *introduction to C++ | ||
|| | || | ||
− | *[[Media:COMP345.0.introduction. | + | *[[Media:COMP345.0.introduction.2019.2.ppt|Slide set 0]] |
|| | || | ||
|- | |- | ||
Line 60: | Line 66: | ||
|| | || | ||
*[[Media:assignment1.COMP345.2019.2.pdf|assignment 1 handout]] | *[[Media:assignment1.COMP345.2019.2.pdf|assignment 1 handout]] | ||
+ | *team lists due - sept 15 | ||
|| | || | ||
*program organization | *program organization | ||
Line 71: | Line 78: | ||
*[[Media:COMP345.3.inputoutput.ppt|Slide set 3]] | *[[Media:COMP345.3.inputoutput.ppt|Slide set 3]] | ||
|| | || | ||
− | *[[Media: | + | *[[Media:COMP345.lab01.introduction.zip|lab1: introduction]] |
− | *[[Media: | + | *[[Media:COMP345.lab02.serialization.zip|lab2: serialization]] |
|- | |- | ||
|| week 3 | || week 3 | ||
Line 86: | Line 93: | ||
*[[Media:COMP345.4.classes.ppt|Slide set 4]] | *[[Media:COMP345.4.classes.ppt|Slide set 4]] | ||
|| | || | ||
− | *[[Media: | + | *[[Media:COMP345.lab03.classes.zip|lab3: classes]] |
|- | |- | ||
|| week 4 | || week 4 | ||
Line 103: | Line 110: | ||
*[[Media:COMP345.5.arrays.ppt|Slide set 5]] | *[[Media:COMP345.5.arrays.ppt|Slide set 5]] | ||
|| | || | ||
− | *[[Media:COMP345. | + | *[[Media:COMP345.lab04.arrays.zip|lab4: arrays and containers]] |
− | + | ||
|- | |- | ||
|| week 6 | || week 6 | ||
|| oct 8, oct 10 | || oct 8, oct 10 | ||
|| | || | ||
− | *due date for assignment 1 (oct 12) | + | *due date for assignment 1 (oct 12)<br>[[Media:Grades.assignment1.COMP345.paquet.2019.2.pdf|results]] |
|| | || | ||
*MVC architecture | *MVC architecture | ||
Line 116: | Line 122: | ||
*[[Media:COMP345.6.MVC.ppt |Slide set 6]] | *[[Media:COMP345.6.MVC.ppt |Slide set 6]] | ||
|| | || | ||
− | *[[Media: | + | *[[Media:COMP345.lab05.observer.zip|lab5: observer pattern]] |
|- | |- | ||
|| week 7 | || week 7 | ||
Line 123: | Line 129: | ||
*[[Media:assignment2.COMP345.2019.2.pdf|assignment 2 handout]] | *[[Media:assignment2.COMP345.2019.2.pdf|assignment 2 handout]] | ||
|| | || | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
*polymorphism | *polymorphism | ||
*virtual functions | *virtual functions | ||
Line 138: | Line 136: | ||
*diamond problem, virtual inheritance | *diamond problem, virtual inheritance | ||
|| | || | ||
− | *[[Media:COMP345.7.polymorphism.ppt |Slide set 7]] | + | *[[Media:COMP345.7.polymorphism.ppt |Slide set 7]] |
+ | || | ||
+ | *[[Media:COMP345.lab06.abstract.zip|lab6: abstract classes]] | ||
+ | *[[Media:COMP345.lab07.polymorphism.zip|lab7: polymorphism]] | ||
+ | *[[Media:COMP345.lab08.virtual|lab8: virtual inheritance]] | ||
+ | |- | ||
+ | || week 8 | ||
+ | || oct 22, oct 24 | ||
+ | || | ||
+ | *midterm examination (oct 24) <br> [[COMP345 Fall 2019 Midterm coverage|coverage]] <br> [[Media:grades.midterm.COMP345.paquet.2019.2.pdf|results]] | ||
+ | || | ||
+ | || | ||
|| | || | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|| week 9 | || week 9 | ||
|| oct 29, oct 31 | || oct 29, oct 31 | ||
|| | || | ||
− | *due date for assignment 2 (nov 2) | + | *due date for assignment 2 (nov 2) <br> [[Media:Grades.assignments.COMP345.paquet.2019.2.pdf|results]] |
*[[Media:assignment3.COMP345.2019.2.pdf|assignment 3 handout]] | *[[Media:assignment3.COMP345.2019.2.pdf|assignment 3 handout]] | ||
*Deadline for DISC withdrawal (nov 4) | *Deadline for DISC withdrawal (nov 4) | ||
Line 156: | Line 161: | ||
*[[Media:COMP345.8.patterns.ppt|Slide set 8]] | *[[Media:COMP345.8.patterns.ppt|Slide set 8]] | ||
|| | || | ||
− | *[[Media: | + | *[[Media:COMP345.lab09.patterns.zip|lab9: design patterns in C++]] |
|- | |- | ||
|| week 10 | || week 10 | ||
Line 166: | Line 171: | ||
*[[Media:COMP345.9.operators.ppt |Slide set 9]] | *[[Media:COMP345.9.operators.ppt |Slide set 9]] | ||
|| | || | ||
− | *[[Media: | + | *[[Media:COMP345.lab10.operators.zip|lab10: operator overloading]] |
|- | |- | ||
|| week 11 | || week 11 | ||
|| nov 12, nov 14 | || nov 12, nov 14 | ||
|| | || | ||
− | *due date for assignment 3 (nov 16) | + | *due date for assignment 3 (nov 16) <br> [[Media:Grades.assignment3.COMP345.paquet.2019.2.pdf|results]] |
*[[Media:assignment4.COMP345.2019.2.pdf|assignment 4 handout]] | *[[Media:assignment4.COMP345.2019.2.pdf|assignment 4 handout]] | ||
+ | *[[Media:practice.programmingexam.COMP345.2019.2.zip|handout of practice run questions for the programming test]] | ||
|| | || | ||
*exception handling | *exception handling | ||
Line 178: | Line 184: | ||
*[[Media:COMP345.10.exceptions.ppt|Slide set 10]] | *[[Media:COMP345.10.exceptions.ppt|Slide set 10]] | ||
|| | || | ||
− | *[[Media: | + | *[[Media:COMP345.lab11.exceptions.zip|lab 11: exception handling]] |
|- | |- | ||
|| week 12 | || week 12 | ||
|| nov 19, nov 21 | || nov 19, nov 21 | ||
|| | || | ||
+ | *final programming test (nov 20th during labs) <br> Wed Nov 20th 17:45-19:35 (H819,H831,H917,H929) <br> Wed Nov 20th 20:30-22:20 (H831,H917,H929) <br> [[Media:COMP345.sectionD.slides.zip|material available during the examination]] <br> [[Media:grades.programmingtest.COMP345.paquet.2019.2.pdf|results]] | ||
|| | || | ||
*templates metaprogramming | *templates metaprogramming | ||
Line 188: | Line 195: | ||
*[[Media:COMP345.11.templates.ppt|Slide set 11]] | *[[Media:COMP345.11.templates.ppt|Slide set 11]] | ||
|| | || | ||
− | *[[Media: | + | *[[Media:COMP345.lab12.templates.zip|lab 12: templates]] |
|- | |- | ||
|| week 13 | || week 13 | ||
|| nov 26 - nov 28 | || nov 26 - nov 28 | ||
|| | || | ||
− | *due date for assignment 4 (nov 30 | + | *due date for assignment 4 (nov 30)<br>[[Media:Grades.assignment4.COMP345.paquet.2019.2.pdf|results]] |
− | + | ||
|| | || | ||
* Review | * Review | ||
Line 204: | Line 210: | ||
|| dec 5 - dec 19 | || dec 5 - dec 19 | ||
|| | || | ||
− | *final written examination ( | + | *final written examination (confirmed: dec 10, 9h00-12h00, H535, H565) <br> [[Media:grades.final.COMP345.paquet.2019.2.pdf|results]] |
|| | || | ||
|| | || | ||
Line 212: | Line 218: | ||
==Course Material and Resources== | ==Course Material and Resources== | ||
− | *[[Media:Syllabus.COMP345.paquet. | + | *[[Media:Syllabus.COMP345.paquet.2019.2.pdf |Course outline]] |
− | *[[COMP345 Fall | + | *[[COMP345 Fall 2019 teams|teams]] |
*[https://fis.encs.concordia.ca/eas/ ENCS Electronic Student Submission System] | *[https://fis.encs.concordia.ca/eas/ ENCS Electronic Student Submission System] | ||
− | *[https://www.concordia.ca/ginacody/students/course-schedules/fall | + | *[https://www.concordia.ca/ginacody/students/course-schedules/fall-2019-2020.html ENCS Lectures and Labs Schedules ] |
*[[Media:SourceCode4e.zip|Source code of all program examples in Walter Savitch's "Absolute C++"]] | *[[Media:SourceCode4e.zip|Source code of all program examples in Walter Savitch's "Absolute C++"]] | ||
*[[Media:Liang_Code.zip|Source code of all program examples in Daniel Liang's "Introduction to Programming with C++"]] | *[[Media:Liang_Code.zip|Source code of all program examples in Daniel Liang's "Introduction to Programming with C++"]] | ||
Line 232: | Line 238: | ||
*[[Media:PatternsC--.zip|design patterns implemented in C++ (1)]] | *[[Media:PatternsC--.zip|design patterns implemented in C++ (1)]] | ||
*[[Media:DPCPP.zip|design patterns implemented in C++ (2)]] | *[[Media:DPCPP.zip|design patterns implemented in C++ (2)]] | ||
+ | *[[Media:miscellaneousFacts.cpp|Last week's lecture's code]] |
Latest revision as of 10:57, 25 May 2020
Contents |
Course Description
COMP 345 - Advanced Program Design with C++ (4 credits)
Prerequisite: COMP352 previously or concurrently. Introduction to C++. I/O with stream classes. Pointers and their uses. TheStandard 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 metaprogramming. Applications of C++: systems, engineering, games programming. Project. Lectures: three hours per week. Laboratory: two hours per week.
Course Schedule and Contacts
component | day | time | location | instructor | e-mail address | web |
---|---|---|---|---|---|---|
lecture D | -T-J--- | 13:15-14:30 | H-415 | Joey Paquet | paquet@encs.concordia.ca | |
instructor's office hours | --W---- | 10:00-12:00 | EV-3-221 | Joey Paquet | ||
lab AX | --W---- | 20:30-22:20 | H-831 | |||
lab BX | --W---- | 20:30-22:20 | H-929 | |||
lab CX | --W---- | 20:30-22:20 | H-917 | Sleiman Rabah | s_rabah@encs.concordia.ca | web page |
lab EX | --W---- | 17:45-19:35 | H-831 | |||
lab FX | --W---- | 17:45-19:35 | H-929 | Vahid Khorasani Ghassab | vahid.khorasani@ieee.org | |
lab GX | --W---- | 17:45-19:35 | H-917 | Zachary Lapointe | zachary.lapointe@mail.concordia.ca | |
marker | Sleiman Rabah | s_rabah@encs.concordia.ca | ||||
marker | Zachary Lapointe | zachary.lapointe@mail.concordia.ca |
Lecture Schedule
wk | date | event | topics | lecture material (tentative) | laboratory material (tentative) |
---|---|---|---|---|---|
week 1 | sep 3, sep 5 |
|
|||
week 2 | sep 10, sep 12 |
|
|
||
week 3 | sep 17, sep 19 |
|
|||
week 4 | sep 24, sep 26 | ||||
week 5 | oct 1, oct 3 |
|
|||
week 6 | oct 8, oct 10 |
|
|
||
week 7 | oct 15, oct 17 |
|
|||
week 8 | oct 22, oct 24 | ||||
week 9 | oct 29, oct 31 |
|
|
||
week 10 | nov 5, nov 7 |
|
|||
week 11 | nov 12, nov 14 |
|
|
||
week 12 | nov 19, nov 21 |
|
|
||
week 13 | nov 26 - nov 28 |
|
|
||
exam week | dec 5 - dec 19 |
|
Course Material and Resources
- Course outline
- teams
- ENCS Electronic Student Submission System
- ENCS Lectures and Labs Schedules
- Source code of all program examples in Walter Savitch's "Absolute C++"
- Source code of all program examples in Daniel Liang's "Introduction to Programming with C++"