Weekly Schedule 20123 - OOP344
OOP344 -- Weekly Schedule 2012/3 (Fall Semester)
- Inclass notes archive: git@github.com:Seneca-OOP344/fardad-archive.git
- Inclass notes: git@github.com:Seneca-OOP344/OOP344-20123.git
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
- Read Pro-git book
- Chapter One and if possible Chapter Two
- Create an account on github
- Create a blog (anywhere you like)
- 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.
- Create a team of five students and pick a name for you team
- 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:
- 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
- Learn how to do basic editing in a wiki
- Having all the information above add your name to the student list
Resources 1
- Pro-git book
- Git GUI Client for Mac
- Github Client for Windows
- Generating SSH keys for github
- How to register your IRC nickname on freenode
- Compare IRC clients
- How To edit Wiki pages
- How To edit Wiki Cheatsheet
- Blogs
- IRC Clients:
- How to Install
- Great 15 minutes tutorial that will give you basic understanding of Git
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 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: note1
- If anybody didn't notice GitBook has translations. Here is Russian -> Русский 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 "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
Week 7 - Oct 14
This Week 7
- 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 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
- 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/ here!
- Revised version of Amir's code 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 Michael's blog
- Prasanth's Version - Blog Entry
- Peter's Version - http://peter.ug/queue-cpp-operator-overload/
- Stanislav's Version - 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 - 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): Carlos's Blog.
- Linpei Fan's Version - 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
- 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.
- setBit(unsigned int val, unsigned int bitNo, bool bitVal);
* 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
- 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
- Project Milestone 0.3 - Part 1 (Due Saturday Nov 17th 23:59)
- CField, CDialog and CLabel
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
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
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