Difference between revisions of "COMP345 - fall 2019"

From Dr. Joey Paquet Web Site
Jump to: navigation, search
(Course Schedule and Contacts)
(Lecture Schedule)
 
(42 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>        || Paquet, Joey                 || <tt>paquet@encs.concordia.ca</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>    || Paquet, Joey                 ||                                             ||
+
|| instructor's office hours    || <tt>--W----</tt> || <tt>10:00-12:00</tt> || <tt>EV-3-221</tt>    || Joey Paquet                  ||                                             ||
 
|-
 
|-
|| lab CX                       || <tt>--W----</tt> || <tt>20:30-22:20</tt> || <tt>H-917</tt>         || Sleiman Rabah                || <tt>rsleiman2@gmail.com</tt>               ||
+
|| 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 FX                       || <tt>--W----</tt> || <tt>17:45-19:35</tt> || <tt>H-929</tt>         || Vahid Khorasani Ghassab      || <tt>vahid.khorasani@ieee.org</tt>          ||
+
|| 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 GX                       || <tt>--W----</tt> || <tt>17:45-19:35</tt> || <tt>H-917</tt>         || Zachary Lapointe              || <tt>zachary.lapointe@mail.concordia.ca</tt> ||
+
|| lab EX                       || <tt>--W----</tt> || <tt>17:45-19:35</tt> || <tt>H-831</tt>       ||                               ||                                             ||
 
|-
 
|-
|| marker                       ||                 ||                     ||                       || Sleiman Rabah                || <tt>rsleiman2@gmail.com</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                        ||                  ||                      ||                      || Zachary Lapointe              || <tt>zachary.lapointe@mail.concordia.ca</tt> ||
+
|| 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 72: Line 78:
 
*[[Media:COMP345.3.inputoutput.ppt|Slide set 3]]
 
*[[Media:COMP345.3.inputoutput.ppt|Slide set 3]]
 
||
 
||
*[[Media:COMP345CodeSlideSet1.zip|Code for slide set 1]]
+
*[[Media:COMP345.lab01.introduction.zip|lab1: introduction]]
*[[Media:MFCSerializationDemo.zip|MFC serialization]]
+
*[[Media:COMP345.lab02.serialization.zip|lab2: serialization]]
 
|-
 
|-
 
|| week 3
 
|| week 3
Line 87: Line 93:
 
*[[Media:COMP345.4.classes.ppt|Slide set 4]]
 
*[[Media:COMP345.4.classes.ppt|Slide set 4]]
 
||
 
||
*[[Media:COMP345CodeSlideSet4.zip|Code for slide set 4]]
+
*[[Media:COMP345.lab03.classes.zip|lab3: classes]]
 
|-
 
|-
 
|| week 4
 
|| week 4
Line 104: Line 110:
 
*[[Media:COMP345.5.arrays.ppt|Slide set 5]]
 
*[[Media:COMP345.5.arrays.ppt|Slide set 5]]
 
||
 
||
*[[Media:COMP345.5.arrays.lab.ppt|Lab slides for slide set 5]]
+
*[[Media:COMP345.lab04.arrays.zip|lab4: arrays and containers]]
*[[Media:COMP345CodeSlideSet5.zip|Code for slide set 5]]
+
 
|-
 
|-
 
|| 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 117: Line 122:
 
*[[Media:COMP345.6.MVC.ppt |Slide set 6]]
 
*[[Media:COMP345.6.MVC.ppt |Slide set 6]]
 
||
 
||
*[[Media:ClockObserver.zip|Observer pattern]]
+
*[[Media:COMP345.lab05.observer.zip|lab5: observer pattern]]
 
|-
 
|-
 
|| week 7
 
|| week 7
Line 124: Line 129:
 
*[[Media:assignment2.COMP345.2019.2.pdf|assignment 2 handout]]
 
*[[Media:assignment2.COMP345.2019.2.pdf|assignment 2 handout]]
 
||
 
||
||
 
||
 
|-
 
|| week 8
 
|| oct 22, oct 24
 
||
 
*midterm examination (TBD) <br> [[COMP345 Fall 2019 Midterm coverage|coverage]] <br> [[Media:grades.midterm.COMP345.paquet.2019.pdf|results]]
 
||
 
 
*polymorphism
 
*polymorphism
 
*virtual functions
 
*virtual functions
Line 139: 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]]
 +
||
 +
||
 
||
 
||
*[[Media:AbstractGeometricObject.zip|Abstract classes]]
 
*[[Media:Polymorphism.zip|Polymorphism]]
 
*[[Media:VirtualInheritance.zip|Virtual Inheritance]]
 
*[[Media:Private Inheritance.zip|Private Inheritance]]
 
 
|-
 
|-
 
|| 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 157: Line 161:
 
*[[Media:COMP345.8.patterns.ppt|Slide set 8]]
 
*[[Media:COMP345.8.patterns.ppt|Slide set 8]]
 
||
 
||
*[[Media:COMP345CodeSlideSet8.zip|Code for slide set 8]]
+
*[[Media:COMP345.lab09.patterns.zip|lab9: design patterns in C++]]
 
|-
 
|-
 
|| week 10
 
|| week 10
Line 167: Line 171:
 
*[[Media:COMP345.9.operators.ppt |Slide set 9]]
 
*[[Media:COMP345.9.operators.ppt |Slide set 9]]
 
||
 
||
*[[Media:Operators.zip|Operator Overloading]]
+
*[[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 179: Line 184:
 
*[[Media:COMP345.10.exceptions.ppt|Slide set 10]]
 
*[[Media:COMP345.10.exceptions.ppt|Slide set 10]]
 
||
 
||
*[[Media:Exceptions.zip|Exception Handling]]
+
*[[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 189: Line 195:
 
*[[Media:COMP345.11.templates.ppt|Slide set 11]]
 
*[[Media:COMP345.11.templates.ppt|Slide set 11]]
 
||
 
||
*[[Media:Templates.zip|Templates]]
+
*[[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]]
*final programming test (TBD) <br> [[Media:grades.COMP345.programmingexam.paquet.2019.2.pdf|results]]
+
 
||
 
||
 
* Review
 
* Review
Line 205: Line 210:
 
|| dec 5 - dec 19
 
|| dec 5 - dec 19
 
||
 
||
*final written examination (TBD) <br> [[Media:grades.final.COMP345.paquet.2019.2.pdf|results]]
+
*final written examination (confirmed: dec 10, 9h00-12h00, H535, H565) <br> [[Media:grades.final.COMP345.paquet.2019.2.pdf|results]]
 
||
 
||
 
||
 
||
Line 233: 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
  • introduction to the course and project
  • introduction to C++
week 2 sep 10, sep 12
  • program organization
  • compilation units, namespaces
  • data types, type coercion
  • streams
  • pointers
week 3 sep 17, sep 19
  • structures, classes
  • inheritance
  • constructors, destructors
  • const, inline, static
  • friends
week 4 sep 24, sep 26
week 5 oct 1, oct 3
  • C/C++ arrays and dynamic arrays, containers
week 6 oct 8, oct 10
  • due date for assignment 1 (oct 12)
    results
  • MVC architecture
  • observer pattern
week 7 oct 15, oct 17
  • polymorphism
  • virtual functions
  • abstract classes
  • slicing problem, value and reference semantics
  • virtual function tables
  • diamond problem, virtual inheritance
week 8 oct 22, oct 24
week 9 oct 29, oct 31
  • design patterns in C++
week 10 nov 5, nov 7
  • operator overloading
week 11 nov 12, nov 14
  • exception handling
week 12 nov 19, nov 21
  • templates metaprogramming
week 13 nov 26 - nov 28
  • due date for assignment 4 (nov 30)
    results
  • Review
exam week dec 5 - dec 19
  • final written examination (confirmed: dec 10, 9h00-12h00, H535, H565)
    results

Course Material and Resources

Code used in the lecture slides