Difference between revisions of "Weekly Schedule 20123 - OOP344"

From CDOT Wiki
Jump to: navigation, search
(To Do)
(To Do 10)
 
(134 intermediate revisions by 23 users not shown)
Line 2: Line 2:
  
 
= OOP344 -- Weekly Schedule 2012/3 (Fall Semester)=
 
= OOP344 -- Weekly Schedule 2012/3 (Fall Semester)=
 
+
* Inclass notes archive: [https://github.com/Seneca-OOP344/fardad-archive.git git@github.com:Seneca-OOP344/fardad-archive.git]
 
+
* Inclass notes: [https://github.com/Seneca-OOP344/OOP344-20123.git git@github.com:Seneca-OOP344/OOP344-20123.git]
 
 
 
 
  
  
 
== Week 1 - Sep 3 ==
 
== Week 1 - Sep 3 ==
  
=== This Week ===
+
=== This Week 1 ===
  
 
* Introduction to Open Source development.
 
* Introduction to Open Source development.
Line 19: Line 17:
 
** Code Repository
 
** Code Repository
 
** Big Blue Button
 
** Big Blue Button
 +
* Object Orientation Review
 +
 +
=== To Do 1 ===
 +
# Read [http://git-scm.com/book Pro-git book]
 +
#: Chapter One and if possible Chapter Two
 +
# Create an account on [https://github.com github]
 +
# Create a [http://en.wikipedia.org/wiki/Blog blog] (anywhere you like)
 +
# Join the IRC by [http://www.wikihow.com/Register-a-User-Name-on-Freenode registering your nickname on freenode] server and joining the #seneca-oop344 channel for 344 related dialog
 +
#: Additional channels of interest: #seneca to interact with all Seneca students participating in opensource projects, and #seneca-social for Social (off-topic) dialog.
 +
# Create a team of five students and pick a name for you team
 +
# Send an email to [mailto:fardad.soleimanloo@senecacollege.ca?subject=344info me] and send your github and team information
 +
#: subject of the email should be '''''344info'''''
 +
#: '''''email content'''''
 +
#: nickname:
 +
#: name:
 +
#: surname:
 +
#: seneca username:
 +
#: github id:
 +
#: team name:
 +
#: number of team members:
 +
# Create an account on this wiki
 +
#: send an email to [mailto:cdot-wiki-admin@senecac.on.ca?subject=Wiki+account+request cdot-wiki-admin@senecac.on.ca] and ask for an account, an email will be sent back to you with your userid and a temporary password
 +
# Learn how to do basic editing in a wiki
 +
# Having all the information above add your name to the [[Student List 20123 - OOP344|student list]]
 +
 +
=== Resources 1 ===
 +
* [http://git-scm.com/book Pro-git book]
 +
* [http://www.sourcetreeapp.com Git GUI Client for Mac ]
 +
* [http://windows.github.com/ Github Client for Windows]
 +
* [https://help.github.com/articles/generating-ssh-keys Generating SSH keys for github]
 +
* [http://www.wikihow.com/Register-a-User-Name-on-Freenode How to register your IRC nickname on freenode]
 +
* [http://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_clients Compare IRC clients]
 +
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]
 +
* [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet How To edit Wiki Cheatsheet]
 +
* Blogs
 +
** [http://wordpress.com/ Wordpress]
 +
** [http://www.blogger.com/ Blogger]
 +
** [https://www.tumblr.com/ Tumblr]
 +
* IRC Clients:
 +
** [http://www.silverex.org/download/ XChat 2  (Windows)]
 +
** [http://colloquy.info/downloads.html Colloquy Colloguy (Mac)]
 +
** [https://addons.mozilla.org/en-US/firefox/addon/chatzilla/ ChatZilla (Multi-platform)]
 +
** [http://clicksandwhistles.com/download.php Clicks & Whistles (Windows)]
 +
* How to Install
 +
** [http://wiki.tryphon.eu/how_to_install_xchat XChat]
 +
* Great 15 minutes tutorial that will give you basic understanding of Git
 +
** [http://try.github.com/levels/1/challenges/1 Try GitHub]
 +
 +
== Week 2 - Sep 9 ==
 +
=== This Week 2 ===
 +
* Object Orientation Review
 +
*: Encapsulation, Inheritance, Polymorphism
 +
* Languages
 +
*: Platforms (Operating System + compiler)
 +
*: Multi-file compilation process basics
 +
*::compiler, linker
 +
 +
=== To Do 2 ===
 +
# Complete the to do list of last week
 +
# Send an email to [mailto:fardad.soleimanloo@senecacollege.ca?subject=344info me] and send your github and team information
 +
#: subject of the email should be '''''344info'''''
 +
#: '''''email content'''''
 +
#: nickname:
 +
#: name:
 +
#: surname:
 +
#: seneca username:
 +
#: github id:
 +
#: team name:
 +
#: number of team members:
 +
 +
=== Resources 2 ===
 +
* Sep 10th Col-notes:  [http://tinyurl.com/oop3441 note1]
 +
* If anybody didn't notice GitBook has translations. Here is Russian -> [http://git-scm.com/book/ru Русский GitBook]
 +
== Week 3 - Sep 16 ==
 +
=== This Week 3 ===
 +
* Pre-Processor Directives (Compiler continued)
 +
* Macros
 +
*: #define, #undef
 +
*: multi-line macros
 +
* Conditional Compilation
 +
*: #ifdef, #ifndef, #if, #elif, #else, #endif, #undef
 +
* Header file safeguards 
 +
*: non-standard: #pragma once,
 +
* Operators
 +
* Data types
 +
*: Integer, floating point, pointer
 +
*: signed, unsigned
 +
* pointers
 +
* Storage Class Specifiers
 +
*: auto, register, volatile, const
 +
 +
=== To Do 3 ===
 +
* Complete [[Teams' List 20123 - OOP344]] page, (adding your team name and their members information)
 +
*: ''if you are not member of a team, add your name under "[[Teams'_List 20123 - OOP344#Not in a team|Not in a team]]" and I will assign you to a team.''
 +
* Study chapter two of [http://git-scm.com/book Pro-Git Book]
 +
* Make sure your github account contains your '''''REAL FULL NAME'''''
 +
 +
=== Resources 3 ===
 +
* [https://scs.senecac.on.ca/~oop344/pages/content/macro.html Macros]
 +
* [https://scs.senecac.on.ca/~oop344/pages/content/condi.html Conditional Inclusion]
 +
* [https://scs.senecac.on.ca/~oop344/pages/content/scala.html Primitive Types]
 +
 +
== Week 4 - Sep 23 ==
 +
=== This Week 4 ===
 +
* Data types (continued) *
 +
*: sizeof *
 +
*: void, enum
 +
* pointers (continued)*
 +
*: pointer arithmetic *
 +
*: function pointers
 +
* Storage Class Specifiers
 +
*: const
 +
* Statics *
 +
* extern *
 +
* typedef
 +
* Compound Types
 +
*: Arrays * , Structures , Unions
 +
* Inheritance
 +
 +
=== To Do 4 ===
 +
=== Resources 4 ===
 +
*[https://scs.senecac.on.ca/~oop344/pages/content/aggre.html Compound Types]
 +
*[http://etherpad.proximity.on.ca:9001/p/oop3444-sep24a Etherpad Notes(SEP 24)]
 +
*[http://etherpad.proximity.on.ca:9001/p/oop3444-sep28a Etherpad Notes(SEP 28)]
 +
 +
== Week 5 - Sep 30 ==
 +
=== This Week 5 ===
 +
* Operator overload review (B)
 +
* friends review (B)
 +
* recursion (B)
 +
* Virtual, Pure-Virtual, Abstract Classes (B)
 +
* References
 +
* command line arguments
 +
* variable argument list
 +
* The project (introduction, main design and idea) (B)
 +
 +
=== To Do 5 ===
 +
=== Resources 5 ===
 +
*[https://cs.senecac.on.ca/~btp300/pages/content/minhe.html#vir Virtual Inheritance]
 +
*[http://etherpad.proximity.on.ca:9001/p/oop3445_oct1a Ethernotes OCT 1]
 +
*[http://etherpad.proximity.on.ca:9001/p/oop3445_oct8a Ethernotes OCT 8]
 +
 +
== Week 6 - Oct 7 ==
 +
=== This Week 6 ===
 +
* [[Project 20123 - OOP344|The project ]]
 +
 +
=== To Do 6 ===
 +
* I (Fardad) sent an email with following subject '''''oop344 - Testing Group email to all oop344 students'''''
 +
*: Make sure you received this email, if you did not, please check your spam filter and make sure it is not filtered.
 +
*: If you have not received this email, please let me know as soon as possible so I update my mailing list.
 +
=== Resources 6 ===
 +
[[Project 20123 - OOP344|The project]]
 +
 +
== Week 7 - Oct 14 ==
 +
=== This Week 7 ===
 +
* [[Project 20123 - OOP344|The Project (Continued)]]
 +
* Lists
 +
*: Arrays
 +
*: Linked Lists
 +
 +
=== To Do 7 ===
 +
* Double check and correct/update your information on Teams page
 +
*: due date '''''NOW'''''
 +
* Have your team page ready by using [[Team page template - oop344 20123|the team page template]]
 +
*: If you already created your team page, modify it so its format matches [[Team page template - oop344 20123|the team page template]].
 +
*: If you have not yet created your team page, create it by '''''COPYING''''' the content of [[Team page template - oop344 20123|the team page template]] into a newly created page according to the regulations stated on [[Teams' List 20123 - OOP344 | Teams]] page.
 +
*: Due date: '''''NOW'''''
 +
* pull the notes from github and run and walkthrough '''Test1Frame.cpp''' with CFrame class to understand how it works and post your questions and answer in blogs.
 +
* When posted, pickup, assign and start working on issues....
 +
 +
=== Resources 7 ===
 +
* [[GIT for OOP344 Projects]]
 +
* [https://cs.senecac.on.ca/~btp300/pages/content/aggre.html Arrays]
 +
* [https://cs.senecac.on.ca/~btp300/pages/content/linkl.html Lists]
 +
* [http://etherpad.proximity.on.ca:9001/p/oop3447_oct15a ETHERNOTES OCT 10]
 +
 +
== Week 8 - Oct 21 (Study Week)==
 +
=== This Week 8 (STUDY BREAK) ===
 +
* [http://fsoss.senecac.on.ca/2012/ FSOSS]
 +
 +
=== To Do 8 ===
 +
 +
=== Resources 8 ===
 +
 +
== Week 9 - Oct 28 ==
 +
=== This Week 9 ===
 +
* Monday, Midterm TEST
 +
* Working with Git and github
 +
* Linked lists (Queue)
 +
 +
=== To Do 9 ===
 +
=== Resources 9 ===
 +
* [http://etherpad.proximity.on.ca:9001/p/oop3449_nov2a Etherpad Notes Nov 2/12]
 +
* Lecture video for Git: http://www.youtube.com/watch?v=JXusZR41Je0
 +
=== Challenge! ===
 +
Add the following methods to queue:
 +
* unsigned int size( );
 +
* int operator[](unsigned int index);
 +
: Note* Did you mean int&?
 +
==== Challenge Answers  ====
 +
* Yun Yang's version of these two methods is at http://yun811.blogspot.ca/.
 +
* Amir Mobasseri's version can be find [http://ammobasseri.wordpress.com/2012/11/01/c-queue/ http://ammobasseri.wordpress.com/2012/11/01/c-queue/ here!]
 +
* Revised version of Amir's code [http://mmwang2.blogspot.ca/2012/11/updated-version-of-amir-and-saeids-code.html Michael's blog]
 +
: - Also I've noticed that Fardad did not write the return variable as a reference, which made it impossible to edit, as done in line 13 of queuetester.cpp, that is updated that as well.
 +
* Michael Wang's version of the functions [http://mmwang2.blogspot.ca/2012/11/oop344-queue-class-functions.html Michael's blog]
 +
* Prasanth's Version - [http://wereallforked.tumblr.com/post/34878497104/queue-challenge Blog Entry]
 +
* Peter's Version - [http://peter.ug http://peter.ug/queue-cpp-operator-overload/]
 +
* Stanislav's Version - [http://stanislavatseneca.blogspot.ca/ here]    http://stanislavatseneca.blogspot.ca/
 +
: - I decided to go a bit further and I did my operator[] method able to add new Nodes to the end of the Queue if we have index > size, comments are greatly appreciated.
 +
* Minh Khoa (Ken) Nguyen's Version - [http://kennguyen4z.wordpress.com/2012/11/02/oop344-challenge/ Ken's blog]
 +
: - I actually go with side. I added a variable into the node.
 +
* Carlos Conejo's version (I went a little further: it adds a node with data 0 if you try to reference past the current size so it does not crash): [http://carlosjavi3r.blog.ca/ Carlos's Blog].
 +
* Linpei Fan's Version - [http://Linpei.blogspot.ca/ here] Linpei's blog.
 +
 +
== Week 10 - Nov 4 ==
 +
=== This Week 10===
 +
* Project Milestone 0.2
 +
* bitwise operators
 +
*# and, or, not, exclusive or
 +
*# shifts
 +
*# determining the value of bits
 +
*#: masks
 +
*# setting the value of bits
 +
*#: '''"mask AND value"''' to set to "0" (ex. mask for 3rd bit: 1111 0111)
 +
*#: '''"mask OR value"''' to set to "1" (ex. mask for 3rd bit: 0000 1000)
 +
 +
=== To Do 10===
 +
* [[The CIO Framework - OOP344 20123#0.2 Milestone|Project Milestone 0.2 (Due Monday Nov 12th 23:59)]]
 +
* Challege
 +
*# setBit(unsigned int val, unsigned int bitNo, bool bitVal);
 +
*#: Sets the "bitNo" bit of val to the "bitVal" value
 +
*# char* bits(unsigned int val)
 +
*#: returns a character string holding the bit pattern of val (i.e cout<<bits(0xF7)<<endl, will print 11110111)
 +
*# write the void prnBits(unsigned int val) function (wrote in class) in only one line.
 +
* I tried two of the functions at http://yun811.blogspot.ca/ Yun Yang's oop344
 +
* My drafts on char* bits(unsigned int val) : http://itactics.wordpress.com/2012/11/20/code-how-to-print-binary/  (Diaoqiang He)
 +
* I have the solutions for all of three functions at my blog - http://linpei.blogspot.ca/ (Linpei Fan)
 +
* I did the void prnBits function in one line:
 +
*  void prnBits(int val){
 +
* for(unsigned int m = 1 << (sizeof(val)*8 -1); m;printf("%d", !!(m & val)),m=m>>1);
 +
* }
 +
*  Alina Shtramwasser - email: [mailto:ashtramwasser1@myseneca.ca  ashtramwasser1]
 +
* Carlos Conejo's Challenges in : [http://carlosjavi3r.blog.ca/ Carlos's Blog].
 +
 +
=== Resources 10===
 +
* https://scs.senecac.on.ca/~oop344/pages/content/bitsw.html
 +
* http://en.wikipedia.org/wiki/Bitwise_operators
 +
* http://bit.ly/TpYFOr
 +
 +
== Week 11 - Nov 11 ==
 +
=== This Week 11===
 +
* Templates
 +
** functions
 +
** classes
 +
 +
=== To Do 11===
 +
* [[The CIO Framework - OOP344 20123#0.3 Milestone|Project Milestone 0.3 - Part 1 (Due Saturday Nov 17th 23:59)]]
 +
** CField, CDialog and CLabel
 +
 +
* [[The CIO Framework - OOP344 20123#0.3 Milestone|Project Milestone 0.3 - Part 2 (Due Sunday Nov 18th 23:59)]]
 +
**CLineEdit
 +
 +
=== Resources 11===
 +
* http://git-scm.com/book/en/Git-Branching-Basic-Branching-and-Merging
 +
*: to do merging on local repo and basic conflict handling
 +
 +
* Template Specialization and Partial Template specilization
 +
*: http://www.cprogramming.com/tutorial/template_specialization.html
 +
 +
== Week 12 - Nov 18 ==
 +
=== This Week 12===
 +
=== To Do 12===
 +
=== Resources 12===
 +
 +
 +
== Week 13 - Nov 25 ==
 +
=== This Week 13===
 +
=== To Do 13===
 +
=== Resources 13===
 +
* function of cstring
 +
*: strcat : http://www.cplusplus.com/reference/cstring/strcat/
 +
*: strstr : http://www.cplusplus.com/reference/cstring/strstr/
 +
*: strcpy : http://www.cplusplus.com/reference/cstring/strcpy/
 +
 +
== Week 14 - Dec 2 ==
 +
=== This Week 14===
 +
=== To Do 14===
 +
=== Resources 14===
  
=== To Do ===
+
== Week 15 - Dec 9 (Exam Week)  ==
* read [http://git-scm.com/book Pro-git book]
+
=== This Week 15===
*: Chapter one and if possible Chapter two
+
* Final Exam
* create an account on github
+
*: Room: S3031
* create a blog
+
*: Time: 11:30
* register on freenode server for IRC
+
*: Date: Wednesday Dec 12th
* create a team of five students and pick a name
 
* create an account on this wiki (wait for confirmation)
 
*: add your name to the student list
 
  
=== Resources ===
+
=== To Do 15===
 +
=== Resources 15===

Latest revision as of 20:47, 7 December 2012


OOP344 | Weekly Schedule | Student List | Teams | Project | Student Resources

OOP344 -- Weekly Schedule 2012/3 (Fall Semester)


Week 1 - Sep 3

This Week 1

  • Introduction to Open Source development.
  • Collaboration Tools:
    • Wiki
    • Blog
    • IRC
    • Code Repository
    • Big Blue Button
  • Object Orientation Review

To Do 1

  1. Read Pro-git book
    Chapter One and if possible Chapter Two
  2. Create an account on github
  3. Create a blog (anywhere you like)
  4. Join the IRC by registering your nickname on freenode server and joining the #seneca-oop344 channel for 344 related dialog
    Additional channels of interest: #seneca to interact with all Seneca students participating in opensource projects, and #seneca-social for Social (off-topic) dialog.
  5. Create a team of five students and pick a name for you team
  6. Send an email to me and send your github and team information
    subject of the email should be 344info
    email content
    nickname:
    name:
    surname:
    seneca username:
    github id:
    team name:
    number of team members:
  7. Create an account on this wiki
    send an email to cdot-wiki-admin@senecac.on.ca and ask for an account, an email will be sent back to you with your userid and a temporary password
  8. Learn how to do basic editing in a wiki
  9. Having all the information above add your name to the student list

Resources 1

Week 2 - Sep 9

This Week 2

  • Object Orientation Review
    Encapsulation, Inheritance, Polymorphism
  • Languages
    Platforms (Operating System + compiler)
    Multi-file compilation process basics
    compiler, linker

To Do 2

  1. Complete the to do list of last week
  2. Send an email to me and send your github and team information
    subject of the email should be 344info
    email content
    nickname:
    name:
    surname:
    seneca username:
    github id:
    team name:
    number of team members:

Resources 2

Week 3 - Sep 16

This Week 3

  • Pre-Processor Directives (Compiler continued)
  • Macros
    #define, #undef
    multi-line macros
  • Conditional Compilation
    #ifdef, #ifndef, #if, #elif, #else, #endif, #undef
  • Header file safeguards
    non-standard: #pragma once,
  • Operators
  • Data types
    Integer, floating point, pointer
    signed, unsigned
  • pointers
  • Storage Class Specifiers
    auto, register, volatile, const

To Do 3

  • Complete Teams' List 20123 - OOP344 page, (adding your team name and their members information)
    if you are not member of a team, add your name under "Not in a team" and I will assign you to a team.
  • Study chapter two of Pro-Git Book
  • Make sure your github account contains your REAL FULL NAME

Resources 3

Week 4 - Sep 23

This Week 4

  • Data types (continued) *
    sizeof *
    void, enum
  • pointers (continued)*
    pointer arithmetic *
    function pointers
  • Storage Class Specifiers
    const
  • Statics *
  • extern *
  • typedef
  • Compound Types
    Arrays * , Structures , Unions
  • Inheritance

To Do 4

Resources 4

Week 5 - Sep 30

This Week 5

  • Operator overload review (B)
  • friends review (B)
  • recursion (B)
  • Virtual, Pure-Virtual, Abstract Classes (B)
  • References
  • command line arguments
  • variable argument list
  • The project (introduction, main design and idea) (B)

To Do 5

Resources 5

Week 6 - Oct 7

This Week 6

To Do 6

  • I (Fardad) sent an email with following subject oop344 - Testing Group email to all oop344 students
    Make sure you received this email, if you did not, please check your spam filter and make sure it is not filtered.
    If you have not received this email, please let me know as soon as possible so I update my mailing list.

Resources 6

The project

Week 7 - Oct 14

This Week 7

To Do 7

  • Double check and correct/update your information on Teams page
    due date NOW
  • Have your team page ready by using the team page template
    If you already created your team page, modify it so its format matches the team page template.
    If you have not yet created your team page, create it by COPYING the content of the team page template into a newly created page according to the regulations stated on Teams page.
    Due date: NOW
  • pull the notes from github and run and walkthrough Test1Frame.cpp with CFrame class to understand how it works and post your questions and answer in blogs.
  • When posted, pickup, assign and start working on issues....

Resources 7

Week 8 - Oct 21 (Study Week)

This Week 8 (STUDY BREAK)

To Do 8

Resources 8

Week 9 - Oct 28

This Week 9

  • Monday, Midterm TEST
  • Working with Git and github
  • Linked lists (Queue)

To Do 9

Resources 9

Challenge!

Add the following methods to queue:

  • unsigned int size( );
  • int operator[](unsigned int index);
Note* Did you mean int&?

Challenge Answers

- Also I've noticed that Fardad did not write the return variable as a reference, which made it impossible to edit, as done in line 13 of queuetester.cpp, that is updated that as well.
- I decided to go a bit further and I did my operator[] method able to add new Nodes to the end of the Queue if we have index > size, comments are greatly appreciated.
- I actually go with side. I added a variable into the node.
  • Carlos Conejo's version (I went a little further: it adds a node with data 0 if you try to reference past the current size so it does not crash): Carlos's Blog.
  • Linpei Fan's Version - here Linpei's blog.

Week 10 - Nov 4

This Week 10

  • Project Milestone 0.2
  • bitwise operators
    1. and, or, not, exclusive or
    2. shifts
    3. determining the value of bits
      masks
    4. setting the value of bits
      "mask AND value" to set to "0" (ex. mask for 3rd bit: 1111 0111)
      "mask OR value" to set to "1" (ex. mask for 3rd bit: 0000 1000)

To Do 10

  • Project Milestone 0.2 (Due Monday Nov 12th 23:59)
  • Challege
    1. setBit(unsigned int val, unsigned int bitNo, bool bitVal);
      Sets the "bitNo" bit of val to the "bitVal" value
    2. char* bits(unsigned int val)
      returns a character string holding the bit pattern of val (i.e cout<<bits(0xF7)<<endl, will print 11110111)
    3. write the void prnBits(unsigned int val) function (wrote in class) in only one line.
* I tried two of the functions at http://yun811.blogspot.ca/ Yun Yang's oop344
* My drafts on char* bits(unsigned int val) : http://itactics.wordpress.com/2012/11/20/code-how-to-print-binary/  (Diaoqiang He)
* I have the solutions for all of three functions at my blog - http://linpei.blogspot.ca/ (Linpei Fan)
  • I did the void prnBits function in one line:
  • void prnBits(int val){
  • for(unsigned int m = 1 << (sizeof(val)*8 -1); m;printf("%d", !!(m & val)),m=m>>1);
  • }
  • Alina Shtramwasser - email: ashtramwasser1
  • Carlos Conejo's Challenges in : Carlos's Blog.

Resources 10

Week 11 - Nov 11

This Week 11

  • Templates
    • functions
    • classes

To Do 11

Resources 11

Week 12 - Nov 18

This Week 12

To Do 12

Resources 12

Week 13 - Nov 25

This Week 13

To Do 13

Resources 13

Week 14 - Dec 2

This Week 14

To Do 14

Resources 14

Week 15 - Dec 9 (Exam Week)

This Week 15

  • Final Exam
    Room: S3031
    Time: 11:30
    Date: Wednesday Dec 12th

To Do 15

Resources 15