Difference between revisions of "SOEN6441 - winter 2024"

From Dr. Joey Paquet Web Site
Jump to: navigation, search
(Created page with "==Course Description== '''SOEN 6441 - Advanced programming practices''' (4 credits) Problems of writing and managing code. Managing code complexity and quality through a pro...")
 
(Lecture Schedule)
 
(29 intermediate revisions by one user not shown)
Line 19: Line 19:
 
|| instructor's office hours  || <tt>M-------</tt> || <tt>11:00-13:00</tt> || ER 10-19<br>[https://concordia-ca.zoom.us/j/84565410380 zoom]  || Joey Paquet      ||   
 
|| instructor's office hours  || <tt>M-------</tt> || <tt>11:00-13:00</tt> || ER 10-19<br>[https://concordia-ca.zoom.us/j/84565410380 zoom]  || Joey Paquet      ||   
 
|-
 
|-
|| lab WW WI      || <tt>---J---</tt> || <tt>20:30-22:20</tt> || TBD || Sahota, Pankaj Deep || <tt>pankajdeepsahota2020@gmail.com</tt>
+
|| lab WW WI      || <tt>---J---</tt> || <tt>20:30-22:20</tt> || H-907 || Sahota, Pankaj Deep || <tt>pankajdeepsahota2020@gmail.com</tt>
 
|-
 
|-
|| lab WW WJ      || <tt>---J---</tt> || <tt>15:45-17:35</tt> || TBD || Jafarpour, Hamed    || <tt>jafarpour.ha@gmail.com</tt>
+
|| lab WW WJ      || <tt>---J---</tt> || <tt>15:45-17:35</tt> || H-843 || Jafarpour, Hamed    || <tt>jafarpour.ha@gmail.com</tt>
 
|-
 
|-
|| lab WW WK      || <tt>--W----</tt> || <tt>20:30-22:20</tt> || TBD || Raza, Ahmad Faraz  || <tt>ahmadfaraz123450@gmail.com</tt>
+
|| lab WW WK      || <tt>--W----</tt> || <tt>20:30-22:20</tt> || H-907 || Raza, Ahmad Faraz  || <tt>ahmadfaraz123450@gmail.com</tt>
 +
|-
 +
|| lab WW WL      || <tt>---J---</tt> || <tt>15:45-17:35</tt> || H-847 || Prajapati, Harshil  || <tt>prajapatiharshil3107@gmail.com</tt>
 
|-
 
|-
 
|| marker        ||                  ||                      ||                      || Sahota, Pankaj Deep    || <tt>pankajdeepsahota2020@gmail.com</tt>
 
|| marker        ||                  ||                      ||                      || Sahota, Pankaj Deep    || <tt>pankajdeepsahota2020@gmail.com</tt>
Line 31: Line 33:
 
|| marker        ||                  ||                      ||                      || Raza, Ahmad Faraz  
 
|| marker        ||                  ||                      ||                      || Raza, Ahmad Faraz  
 
|| <tt>ahmadfaraz123450@gmail.com</tt>                 
 
|| <tt>ahmadfaraz123450@gmail.com</tt>                 
|}  
+
|}
  
 
==Lecture Schedule==
 
==Lecture Schedule==
Line 43: Line 45:
 
|-
 
|-
 
|| week 1
 
|| week 1
|| jan 14
+
|| jan 18
 
||  
 
||  
*[[Media:Project.SOEN6441.2021.4.pdf|[handout]]] [ [https://bit.ly/3ovwL8l video] ] project description (handout)
+
*[ [[Media:Project.SOEN6441.2024.4.pdf|handout]] ] [ [https://bit.ly/3ovwL8l video] ] project description (handout)
 
||  
 
||  
*[[Media:SOEN6441.0.introduction.2021.4.ppt|[slides]]] [ [https://bit.ly/2MMvdsw video] ] introduction to the course
+
*[ [[Media:SOEN6441.0.introduction.2024.4.ppt|slides]] ] [ [https://bit.ly/2MMvdsw video] ] introduction to the course and project
 
||  
 
||  
*no lab
+
*none
 
|-
 
|-
 
|| week 2
 
|| week 2
|| jan 22
+
|| jan 25
 
||  
 
||  
*team lists due - jan 22
+
*team lists due (jan 26)
 
||  
 
||  
*[[Media:SOEN6441.1.process.ppt|[slides]]] [ [https://bit.ly/38YTrbJ video] ] software development process
+
*[ [[Media:SOEN6441.1.process.ppt|slides]] ] [ [https://bit.ly/38YTrbJ video] ] software development process
*[[Media:SOEN6441.2.extremeprogramming.ppt|[slides]]] [ [https://bit.ly/3sDdunP video] ] extreme programming
+
*[ [[Media:SOEN6441.2.extremeprogramming.ppt|slides]] ] [ [https://bit.ly/3sDdunP video] ] extreme programming
 
||  
 
||  
 
*introduction
 
*introduction
 
|-
 
|-
 
|| week 3
 
|| week 3
|| jan 28
+
|| feb 1
 
||
 
||
 +
*[ [[Media:Build1Grading.SOEN6441.2024.4.pdf|handout]] ] [ [https://bit.ly/3rldiIt video] ] project build 1 requirements/grading scheme
 
||  
 
||  
*[[Media:SOEN6441.3.repository.ppt|[slides]]] [ [https://bit.ly/3chX1zI video] ] revision control systems
+
*[ [[Media:SOEN6441.3.repository.ppt|slides]] ] [ [https://bit.ly/3chX1zI video] ] revision control systems
*[[Media:SOEN6441.4.conventions.ppt|[slides]]] [ [https://bit.ly/3iQRH7M video] ] coding conventions
+
*[ [[Media:SOEN6441.4.conventions.ppt|slides]] ] [ [https://bit.ly/3iQRH7M video] ] coding conventions
 
||  
 
||  
*[[Media:SOEN6441.lab02.repositories.2021.4.pptx|[slides]]] [ [https://concordia.yuja.com/V/Video?v=264123&node=1037383&a=1604069730&autoplay=1 video] ] revision control systems
+
*[ [[Media:SOEN6441.lab02.repositories.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=264123&node=1037383&a=1604069730&autoplay=1 video] ] repositories
*[[Media:SOEN6441.lab02.continuousintergration.2021.4.pptx|[slides]]] [ [https://concordia.yuja.com/V/Video?v=264123&node=1039799&a=1604069730&autoplay=1 video] ] continuous integration
+
*[ [[Media:SOEN6441.lab02.continuousintergration.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=264123&node=1039799&a=1604069730&autoplay=1 video] ] continuous integration
 
|-
 
|-
 
|| week 4
 
|| week 4
|| feb 4
+
|| feb 8
 
||  
 
||  
*[[Media:Build1Grading.SOEN6441.2021.4.pdf|[handout]]] [ [https://bit.ly/3rldiIt video] ] project build 1 requirements/grading scheme
 
 
||  
 
||  
*[[Media:SOEN6441.5.apidocgen.ppt|[slides]]] [ [https://bit.ly/3rtv8cz video] ] API documentation generation tools: Javadoc
+
*[ [[Media:SOEN6441.5.apidocgen.ppt|slides]] ] [ [https://bit.ly/3rtv8cz video] ] API documentation generation tools: Javadoc
*[[Media:SOEN6441.6.unittesting.ppt|[slides]]] [ [https://bit.ly/3rdLKEQ video] ] [[Media:JUnit3and4.zip|[code]]] unit testing frameworks: JUnit
+
*[ [[Media:SOEN6441.6.unittesting.ppt|slides]] ] [ [https://bit.ly/3rdLKEQ video] ] [[Media:JUnit3and4.zip|[code]]] unit testing frameworks: JUnit
 
||  
 
||  
*[[Media:SOEN6441.lab03.Javadoc.2021.4.pptx|[slides]]] [ [https://concordia.yuja.com/V/Video?v=271897&node=1055802&a=1449572281&autoplay=1 video] ] Javadoc
+
*[ [[Media:SOEN6441.lab03.Javadoc.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=271897&node=1055802&a=1449572281&autoplay=1 video] ] Javadoc
*[[Media:SOEN6441.lab03.JUnit.2021.4.pptx|[slides]]] [ [https://concordia.yuja.com/V/Video?v=271155&node=1053832&a=1015456312&autoplay=1 video] ] [ [[Media:JUnitTutorial.zip|tutorial]] ] JUnit
+
*[ [[Media:SOEN6441.lab03.JUnit.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=271155&node=1053832&a=1015456312&autoplay=1 video] ] [ [[Media:JUnitTutorial.zip|tutorial]] ] JUnit
 
|-
 
|-
 
|| week 5
 
|| week 5
|| feb 11
+
|| feb 15
 
||
 
||
 +
*practice examination during labs (see moodle)
 
||  
 
||  
*[[Media:SOEN6441.7.MVC.ppt|[slides]]] [ [https://bit.ly/3cZxWtP video] ] [[Media:ClockMVCDemo.zip|[code]]] model view controller architecture and observer pattern
+
*[ [[Media:SOEN6441.7.MVC.ppt|slides]] ] [ [https://bit.ly/3cZxWtP video] ] [[Media:ClockMVCDemo.zip|[code]]] model view controller architecture and observer pattern
 
||  
 
||  
*[[Media:SOEN6441.lab04.MVC.2021.4.pptx|[slides]]] [ [https://concordia.yuja.com/V/Video?v=279219&node=1071566&a=572515194&autoplay=1 video] ] [[Media:ClockMVCDemo.zip|[code]]] MVC and observer pattern
+
*[ [[Media:SOEN6441.lab04.MVC.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=279219&node=1071566&a=572515194&autoplay=1 video] ] [[Media:ClockMVCDemo.zip|[code]]] MVC and observer pattern
 +
*practice examination
 
|-
 
|-
 
|| week 6
 
|| week 6
|| feb 18
+
|| feb 22
||
+
*midterm examination
+
 
||
 
||
*none
+
*project build 1 due (feb 18) (see moodle)
 +
*[schedule] project build 1 presentations (feb 19-21)
 +
*[ [[Media:Build2Grading.SOEN6441.2024.4.pdf|handout]] ] [ [https://bit.ly/3ethJ0Q video] ] project build 2 requirements/grading scheme
 +
||
 +
*[ [[Media:SOEN6441.8.refactoring.ppt|slides]] ] [ [https://bit.ly/30x16sA video] ] refactoring
 +
*[ [[Media:SOEN6441.9.patterns.ppt|slides]] ] [ [https://bit.ly/3v73ZOZ video] ] [ [[Media:SOEN6441.source.state-command.paquet.2021.4.zip|code]] ] design patterns - introduction/concept
 
||  
 
||  
*none
+
*programmer on duty
 +
|-
 +
|| midterm break
 +
|| feb 26 - mar 3
 +
||
 +
||
 +
||
 
|-
 
|-
 
|| week 7
 
|| week 7
|| feb 25
+
|| mar 7
 
||  
 
||  
*project build 1 due (feb 25, 26 - presentations)
+
*midterm examination (mar 7) (see moodle)
 
||  
 
||  
*none
+
*midterm examination is held during lecture time
 
||  
 
||  
 
*none
 
*none
|-
 
|| midterm break
 
|| mar 1- mar 5
 
||
 
||
 
||
 
 
|-
 
|-
 
|| week 8
 
|| week 8
|| mar 11
+
|| mar 14
 
||  
 
||  
*[ [[Media:Build2Grading.SOEN6441.2021.4.pdf|handout]] ] [ [https://bit.ly/3ethJ0Q video] ] project build 2 requirements/grading scheme
+
||
||
+
*[ [[Media:SOEN6441.9.patterns.ppt|slides]] ] [ [https://bit.ly/3v73ZOZ video] ] [ [[Media:SOEN6441.source.state-command.paquet.2021.4.zip|code]] ] design patterns - state and command  
*[ [[Media:SOEN6441.8.refactoring.ppt|slides]] ] [ [https://bit.ly/30x16sA video] ] refactoring
+
*[ [[Media:SOEN6441.9.patterns.ppt|slides]] ] [ [https://bit.ly/3v73ZOZ video] ] [ [[Media:SOEN6441.source.state-command.paquet.2021.4.zip|code]] ] design patterns - state and command pattern
+
 
||  
 
||  
 
*[ [[Media:SOEN6441.lab07.design-command-patterns.ppt|slides]] ] [ [https://concordia.yuja.com/V/Video?v=301574&node=1130682&a=1024526759&autoplay=1 video] ] [ [[Media:SOEN6441.source.state-command.paquet.2021.4.zip|code]] ] design patterns - state and command
 
*[ [[Media:SOEN6441.lab07.design-command-patterns.ppt|slides]] ] [ [https://concordia.yuja.com/V/Video?v=301574&node=1130682&a=1024526759&autoplay=1 video] ] [ [[Media:SOEN6441.source.state-command.paquet.2021.4.zip|code]] ] design patterns - state and command
 
|-
 
|-
 
|| week 9
 
|| week 9
|| mar 18
+
|| mar 21
 
||  
 
||  
 +
*project build 2 due (mar 17) (see moodle)
 +
*[schedule] project build 2 presentations (mar 18-20)
 +
*[ [[Media:Build3Grading.SOEN6441.2024.4.pdf|handout]] ] [ [https://bit.ly/3ethJ0Q video] ] project build 3 requirements/grading scheme
 
||
 
||
*[ [[Media:SOEN6441.9.patterns.ppt|slides]] ] [ [https://bit.ly/2P4zxok video] ] [ [[Media:SOEN6441.source.adapter-strategy.paquet.2021.4.zip|code]] ] design patterns - adapter and strategy pattern
+
*[ [[Media:SOEN6441.9.patterns.ppt|slides]] ] [ [https://bit.ly/2P4zxok video] ] [ [[Media:SOEN6441.source.adapter-strategy.paquet.2021.4.zip|code]] ] design patterns - strategy and adapter pattern
 
||  
 
||  
 
*[ [[Media:SOEN6441.lab09.strategy-adapter-patterns.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=308656&node=1139820&a=1245114870&autoplay=1 video] ] [ [[Media:SOEN6441.strategy-adapter.2021.4.zip|code]] ] design patterns - strategy and adapter
 
*[ [[Media:SOEN6441.lab09.strategy-adapter-patterns.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=308656&node=1139820&a=1245114870&autoplay=1 video] ] [ [[Media:SOEN6441.strategy-adapter.2021.4.zip|code]] ] design patterns - strategy and adapter
 
|-
 
|-
 
|| week 10
 
|| week 10
|| mar 25
+
|| mar 28
 
||  
 
||  
*project build 2 due (mar 25, 26 - presentations)
 
 
||  
 
||  
*none
+
*[ [[Media:SOEN6441.10.exceptions.ppt|slides]] ] [ [https://bit.ly/3rLbo3S video] ] [ [[Media:SOEN6441.code.exceptions.zip|code]] ] fault tolerance through exception handling
 
||  
 
||  
*none
+
*[ [[Media:SOEN6441.lab11.exception-handling.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=323353&node=1182285&a=1697622741&autoplay=1 video] ] [ [[Media:SOEN6441.code.exceptions.zip|code]] ] exception handling
 
|-
 
|-
 
|| week 11
 
|| week 11
|| apr 1
+
|| apr 4
 
||  
 
||  
*[ [[Media:Build3Grading.SOEN6441.2021.4.pdf|handout]] ] [ [https://bit.ly/31CNyMM video] ] project build 3 requirements/grading scheme
 
 
||  
 
||  
*[ [[Media:SOEN6441.10.exceptions.ppt|slides]] ] [ [https://bit.ly/3rLbo3S video] ] [ [[Media:SOEN6441.code.exceptions.zip|code]] ] fault tolerance through exception handling
+
*[ [[Media:SOEN6441.11.generics.ppt|slides]] ] [ [https://bit.ly/31SdggI video] ] [ [[Media:SOEN6441.code.generics.zip|code]] ] Java generics
 
||  
 
||  
*[ [[Media:SOEN6441.lab11.exception-handling.2021.4.pptx|slides]] ] [ [https://concordia.yuja.com/V/Video?v=323353&node=1182285&a=1697622741&autoplay=1 video] ] [ [[Media:SOEN6441.code.exceptions.zip|code]] ] exception handling
+
*[ [[Media:SOEN6441.lab12.generics.2021.4.ppt|slides]] ] [ [https://concordia.yuja.com/Dashboard/Permalink?authCode=748164266&b=338734&linkType=video video] ] [ [[Media:SOEN6441.code.generics.zip|code]] ] java generics
 
|-
 
|-
 
|| week 12
 
|| week 12
|| apr 8
+
|| apr 11
 
||
 
||
 +
*project build 3 due (apr 9) (see moodle)
 +
*[https://docs.google.com/spreadsheets/d/1cVtgFRLAteOGhN8OTKMO_KC4H14I5vHZPR_d8b2akW0/edit#gid=1074696973 schedule] project build 3 presentations (apr 10-12)
 
||  
 
||  
*[ [[Media:SOEN6441.11.generics.ppt|slides]] ] [ [https://bit.ly/31SdggI video] ] [ [[Media:SOEN6441.code.generics.zip|code]] ] Java generics
+
*none - contact hours with the instructor for project demonstrations
||
+
||
*[ [[Media:SOEN6441.lab12.generics.2021.4.ppt|slides]] ] [ [https://concordia.yuja.com/Dashboard/Permalink?authCode=748164266&b=338734&linkType=video video] ] [ [[Media:SOEN6441.code.generics.zip|code]] ] java generics
+
*final examination practice (see moodle quiz)
|-
+
|| week 13
+
|| apr 15
+
||  
+
*project build 3 due (apr 15, 16- presentations)
+
||
+
*none
+
||
+
*none
+
 
|-
 
|-
 
|| exam week
 
|| exam week
||apr 24 - may 9
+
||apr 18 - may 1
 
||
 
||
*final examination (apr 29 - 9h00-12h00am - confirmed)  
+
*final examination (April 25th, 19h00-22h00)  
 
||
 
||
 
||
 
||
Line 177: Line 176:
 
==Course Material and Resources==
 
==Course Material and Resources==
  
*[[Media:Syllabus.SOEN6441.paquet.2021.4.pdf|Course outline]]
+
*[[Media:Syllabus.SOEN6441.paquet.2024.4.pdf|Course outline]]
 
*[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/winter-2020-2021.html ENCS Lectures and Labs Schedules ]
 

Latest revision as of 13:33, 12 April 2024

Contents

Course Description

SOEN 6441 - Advanced programming practices (4 credits)

Problems of writing and managing code. Managing code complexity and quality through a programming process. Coding conventions. Inline software documentation. Software configuration management. Tools and techniques for testing software. Multithreading concurrency. Code reuse in software development. Quality in coding, fault tolerance. A project. Laboratory: two hours per week.

Course Schedule and Contacts

component day time location name e-mail address
lecture WW ---J---- 17:45-20:15 H-531 Joey Paquet paquet@encs.concordia.ca
instructor's office hours M------- 11:00-13:00 ER 10-19
zoom
Joey Paquet
lab WW WI ---J--- 20:30-22:20 H-907 Sahota, Pankaj Deep pankajdeepsahota2020@gmail.com
lab WW WJ ---J--- 15:45-17:35 H-843 Jafarpour, Hamed jafarpour.ha@gmail.com
lab WW WK --W---- 20:30-22:20 H-907 Raza, Ahmad Faraz ahmadfaraz123450@gmail.com
lab WW WL ---J--- 15:45-17:35 H-847 Prajapati, Harshil prajapatiharshil3107@gmail.com
marker Sahota, Pankaj Deep pankajdeepsahota2020@gmail.com
marker Jafarpour, Hamed jafarpour.ha@gmail.com
marker Raza, Ahmad Faraz ahmadfaraz123450@gmail.com

Lecture Schedule

wk date event/handout lecture lab
week 1 jan 18
  • [ slides ] [ video ] introduction to the course and project
  • none
week 2 jan 25
  • team lists due (jan 26)
  • introduction
week 3 feb 1
  • [ handout ] [ video ] project build 1 requirements/grading scheme
week 4 feb 8
week 5 feb 15
  • practice examination during labs (see moodle)
week 6 feb 22
  • project build 1 due (feb 18) (see moodle)
  • [schedule] project build 1 presentations (feb 19-21)
  • [ handout ] [ video ] project build 2 requirements/grading scheme
  • programmer on duty
midterm break feb 26 - mar 3
week 7 mar 7
  • midterm examination (mar 7) (see moodle)
  • midterm examination is held during lecture time
  • none
week 8 mar 14
week 9 mar 21
  • project build 2 due (mar 17) (see moodle)
  • [schedule] project build 2 presentations (mar 18-20)
  • [ handout ] [ video ] project build 3 requirements/grading scheme
  • [ slides ] [ video ] [ code ] design patterns - strategy and adapter pattern
week 10 mar 28
week 11 apr 4
week 12 apr 11
  • project build 3 due (apr 9) (see moodle)
  • schedule project build 3 presentations (apr 10-12)
  • none - contact hours with the instructor for project demonstrations
  • final examination practice (see moodle quiz)
exam week apr 18 - may 1
  • final examination (April 25th, 19h00-22h00)

Course Material and Resources