Difference between revisions of "OOP344 - 20101"
(→To Do) |
(fixed the oop344 index) |
||
(146 intermediate revisions by 20 users not shown) | |||
Line 1: | Line 1: | ||
− | + | <big><big>Object Oriented Programming II Using C++</big></big> with introduction to open source | |
+ | {{OOP344 Index - 20101}} | ||
Please help make this page resourceful for all OOP344 students to use! | Please help make this page resourceful for all OOP344 students to use! | ||
− | |||
− | ==[https://scs.senecac.on.ca/course/oop344 Subject Description and Course Outcomes]== | + | = OOP344 -- Object Oriented Programming II Using C++ = |
+ | |||
+ | == [https://scs.senecac.on.ca/course/oop344 Subject Description and Course Outcomes] == | ||
* Please visit the [https://scs.senecac.on.ca School Of Computer Studies] website for the [https://scs.senecac.on.ca/course/oop344 detailed description] of the subject | * Please visit the [https://scs.senecac.on.ca School Of Computer Studies] website for the [https://scs.senecac.on.ca/course/oop344 detailed description] of the subject | ||
− | == The Project == | + | == The Project (under construction) == |
− | The project for this semester is a multiplatform text based, Text Editor | + | The project for this semester is a multiplatform text based, Text Editor and is done using opensource concepts<br /> |
− | The project is divided into 2 main parts. | + | The project is divided into 2 main parts. The Basic Input Output Library, and Main Application |
− | |||
− | + | === Basic Input Output Library === | |
− | The | + | * C based multi-platform IO functions; (Majority of the code is provided by the prof). |
+ | * The Project is initiated on individual SVN accounts for each team | ||
+ | * Each team member is to commit a section of the code and resolve possible conflicts. | ||
− | + | === Main Applicaton === | |
− | |||
− | |||
− | |||
− | |||
− | + | This part will be done collaboratively in groups of 4 - 8 students under a simulated open source model | |
− | + | * Basic Encapsulating Classes <br /> This part is written in C++ and encapsulates the '''''io''''' routines into classes | |
− | * Basic Encapsulating Classes | + | * The Application<br />this part is written in C++ and uses the "Basic Encapsulating Classes" classes to do interact with the user. |
− | * The | ||
− | ==Grading== | + | == Grading == |
− | + | * Tests | |
+ | ** Test 1 10% | ||
+ | ** Test 2 10% | ||
+ | ** Quizzes 10% | ||
+ | * Project | ||
+ | ** IO Library 3% | ||
+ | ** Application 17% | ||
+ | ** Contribution 10% | ||
+ | * Final Exam 40% | ||
− | ==Resources== | + | == Resources == |
− | *[http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages] | + | * Class notes can be found here: svn://zenit.senecac.on.ca/oop344 |
− | *[http://subversion.tigris.org/ | + | * [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages] |
− | *[http:// | + | * [http://subversion.tigris.org/ Subversion (SVN)] |
+ | * [http://tortoisesvn.net/downloads Download Page of TortoiseSVN] | ||
+ | * [http://svnbook.red-bean.com/ SVN book at red-bean.com] or download [https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/svn-book.pdf the PDF from here]. | ||
+ | * Mac Lab Available in 2108 as well as in the Computing Commons* | ||
+ | * [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#Create_an_IRC_account_and_login_.28in_Windows.29 Create an IRC account and login (in Windows)] | ||
+ | * [http://irchelp.org/irchelp/irctutorial.html IRC Tutorial] | ||
− | ==Examples== | + | == Examples == |
− | |||
− | + | svn://zenit.senecac.on.ca/oop344/trunk | |
− | [https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/OLD/ Class notes, samples, tests, ... since 2001] | + | == Archives == |
+ | |||
+ | [https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/OLD/ Class notes, samples, tests, ... 2001 -> 2009]<br /> | ||
+ | checkout svn://zenit.senecac.on.ca/oop344/tags for all the notes since 2001<br /> | ||
+ | [[OOP344 20093]] | ||
= OOP344 -- Weekly Schedule = | = OOP344 -- Weekly Schedule = | ||
− | |||
− | |||
− | Due date: | + | == Week 1 - Jan 10 == |
+ | |||
+ | === This Week === | ||
+ | |||
+ | * Introduction to Open Source development. | ||
+ | * Collaboration Tools: | ||
+ | ** Wiki | ||
+ | ** Blog | ||
+ | ** IRC | ||
+ | ** Code Repository | ||
+ | * 144/244 review | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | Due date: Jan 12, 2010 , 23:59 (11:59pm) | ||
+ | |||
* Add your name to the [[OOP344 Student List]] | * Add your name to the [[OOP344 Student List]] | ||
− | * Join the IRC by [http://www.wikihow.com/Register-a-User-Name-on-Freenode registering your nickname on freenode] server and joining the #Seneca channel | + | * Join the IRC by [http://www.wikihow.com/Register-a-User-Name-on-Freenode registering your nickname on freenode] server and joining the #Seneca channel<br />Additional channels of interest: |
+ | ** #seneca-oop344 for 344 related dialog | ||
+ | ** #seneca-social for Social (off-topic) dialog | ||
* Create a blog (if you don't already have one) and [[Planet CDOT Feed List|add your feed]] to [http://zenit.senecac.on.ca/~chris.tyler/planet/ Planet CDOT] | * Create a blog (if you don't already have one) and [[Planet CDOT Feed List|add your feed]] to [http://zenit.senecac.on.ca/~chris.tyler/planet/ Planet CDOT] | ||
− | * | + | * Download [http://subversion.tigris.org/ SVN] and check out the OOP344 repo(svn://zenit.senecac.on.ca/oop344) to get the notes done in class |
− | * | + | |
− | ==Week | + | === Resources === |
− | ===To Do=== | + | |
− | * | + | * A quick tutorial for SVN: [http://www.owlnet.rice.edu/~comp314/svn.html Source Control in Ten Minutes] |
− | * | + | * [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#Creating_Projects_in_Visual_Studio_for_Console_Applications How to create console application projects in Visual Studio] |
− | ** | + | * [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#Create_an_IRC_account_and_login_.28in_Windows.29 Create an IRC account and login (in Windows)] |
− | ** | + | * [http://zenit.senecac.on.ca/wiki/index.php/RabbitVCS RabbitVCS - Linux alternative to TortoiseSVN] |
− | ** | + | |
+ | == Week 2 - Jan 17 == | ||
+ | |||
+ | === This Week === | ||
+ | |||
+ | * Assessment Quiz on ipc144 and oop244 | ||
+ | * C, a closer look to: | ||
+ | |||
+ | define, include, macros, operators, statement evaluation, return value of main, return value of printf and scanf, Conditional Compilation | ||
+ | |||
+ | * Starting the IO Library | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | * Make sure all your information on last week's '''To Do''' is up to date | ||
+ | * Finalize your teams | ||
+ | * Book your first [[OOP344 IRC Schedules | IRC meeting]] with Fardad on #seneca-oop344 (Remember, for the first meeting all team members should be present) | ||
+ | * Add Coding Rules to your team page and follow it in your project | ||
+ | ** Coding rules are things like, tab size, indentation size, etc... | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | * Explains pointers and how memory is stored.... [http://augustcouncil.com/~tgibson/tutorial/ptr.html C/C++ - Memory and Pointers] | ||
+ | |||
+ | == Week 3 - Jan 24 == | ||
+ | |||
+ | === This Week === | ||
+ | |||
+ | * #define and conditional compilation | ||
+ | * Starting the Basic Input Output Functions | ||
+ | * Assigning SVN Accounts to teams | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | * Checkout the repository from trunk and test compile it on different platforms | ||
+ | * Branch the trunk into a branch under your SenecaID in branches | ||
+ | ** Checkout your own branch and start working on your part of the assignment | ||
+ | ** After each accomplishment in your own branch, modify the code in trunk and commit the code | ||
+ | ** Make sure the code committed to trunk is ALWAYS at compiled state with no warnings or errors. | ||
+ | |||
+ | === Challenge === | ||
+ | |||
+ | Without use of any library functions (use only the BIOF functions) create a function called: | ||
+ | |||
+ | <big> | ||
+ | void bio_putint(int val) | ||
+ | |||
+ | </big> | ||
+ | This function should print the integer at where the cursor is on the screen. | ||
+ | The first two blogs with the correct answer will get 5% bonus for the first test. | ||
+ | The next two blogs optimizing the code of the first two blogs will get 5% bonus for the first test too. | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 4 - Jan 31 == | ||
+ | === This Week === | ||
+ | |||
+ | * SVN review | ||
+ | * Multi dimension arrays | ||
+ | * void pointers | ||
+ | * pointer to function | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | * Blog | ||
+ | * Update your wiki student list page | ||
+ | * Divide the assignment into small tasks and assign it to team members | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 5 - Feb 7 == | ||
+ | === This Week === | ||
+ | |||
+ | * pointer to function | ||
+ | * sizeof | ||
+ | ** sizeof structures | ||
+ | * typedef | ||
+ | * union | ||
+ | * control flow | ||
+ | ** break, only in switch | ||
+ | ** continue :-( | ||
+ | ** goto -:( | ||
+ | * joining expressions | ||
+ | * conditional expression (x = a>b?c:d) | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | == Week 6 - Feb 14 == | ||
+ | === This Week === | ||
+ | |||
+ | * Declaration Modifiers | ||
+ | ** const | ||
+ | ** auto | ||
+ | ** extern | ||
+ | * Real Syntax of main | ||
+ | * Variable Argument list | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | ==== Challenge ==== | ||
+ | |||
+ | Write the printf function but call it MyPrint. | ||
+ | It should support | ||
+ | |||
+ | * %c (character) | ||
+ | * %s (string) | ||
+ | * %d (integer) | ||
+ | * %X or %x (integer printed in Hex) | ||
+ | * %f (double or float no formating, always printed with 2 digit after decimal point) | ||
+ | |||
+ | MyPrint("int %d, char %c, string %s, hex %x, float %f", 2, 'A', "hello", 16, 12.34567); | ||
+ | int 2, char A, string hello, hex 10, 12.34 | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 7 - Feb 21 == | ||
+ | === This Week === | ||
+ | |||
+ | * Thursday 23:59: BIOL due. | ||
+ | ** Create a branch in tags called BIOL_1.0 and have the final BIOL compiled and tested with released tested program and then commit it to the BIOL_1.0 branch. | ||
+ | ** Note that there could be many other tags of BIOL to record your development milestones, but I only mark the highest release not less than 1.0. | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 8- Feb 28 Study Week == | ||
+ | === This Week === | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 9 - Mar 7 == | ||
+ | === This Week === | ||
+ | * Monday Test One. All that you have learnt from ipc144 to this point on C language only. | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 10 - Mar 14 == | ||
+ | === This Week === | ||
+ | |||
+ | * Sunday 11:59 Project 0.5 due. | ||
+ | ** create a PRJ_0.5 branch of a tested and compiled trunk | ||
+ | ** PRJ_0.5 should a be working project with almost 50% of the functionalities finalized | ||
+ | ** Note that you may have many other branches in the tag to record your milestones, but the one I mark will be the highest tag NOT less than PRJ_0.5 | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 11 - Mar 21 == | ||
+ | === This Week === | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 12 - Mar 28 == | ||
+ | === This Week === | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 13 - Apr 4 == | ||
+ | === This Week === | ||
+ | * Test 2; everything from ipc144 to now about C and C++ language. | ||
+ | * Sunday 11:59, Prj_1.0 is due. | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Week 14 - Apr 11 == | ||
+ | === This Week === | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | == Exam Week - Apr 18 == | ||
+ | * Exam April 20th, 14:00 (2 PM) Room T4040 |
Latest revision as of 11:03, 12 May 2010
Object Oriented Programming II Using C++ with introduction to open source
OOP344 - 20101 - Student List - Teams - Project - IRC Schedules - Student Resources
Please help make this page resourceful for all OOP344 students to use!
Contents
- 1 OOP344 -- Object Oriented Programming II Using C++
- 2 OOP344 -- Weekly Schedule
- 2.1 Week 1 - Jan 10
- 2.2 Week 2 - Jan 17
- 2.3 Week 3 - Jan 24
- 2.4 Week 4 - Jan 31
- 2.5 Week 5 - Feb 7
- 2.6 Week 6 - Feb 14
- 2.7 Week 7 - Feb 21
- 2.8 Week 8- Feb 28 Study Week
- 2.9 Week 9 - Mar 7
- 2.10 Week 10 - Mar 14
- 2.11 Week 11 - Mar 21
- 2.12 Week 12 - Mar 28
- 2.13 Week 13 - Apr 4
- 2.14 Week 14 - Apr 11
- 2.15 Exam Week - Apr 18
OOP344 -- Object Oriented Programming II Using C++
Subject Description and Course Outcomes
- Please visit the School Of Computer Studies website for the detailed description of the subject
The Project (under construction)
The project for this semester is a multiplatform text based, Text Editor and is done using opensource concepts
The project is divided into 2 main parts. The Basic Input Output Library, and Main Application
Basic Input Output Library
- C based multi-platform IO functions; (Majority of the code is provided by the prof).
- The Project is initiated on individual SVN accounts for each team
- Each team member is to commit a section of the code and resolve possible conflicts.
Main Applicaton
This part will be done collaboratively in groups of 4 - 8 students under a simulated open source model
- Basic Encapsulating Classes
This part is written in C++ and encapsulates the io routines into classes - The Application
this part is written in C++ and uses the "Basic Encapsulating Classes" classes to do interact with the user.
Grading
- Tests
- Test 1 10%
- Test 2 10%
- Quizzes 10%
- Project
- IO Library 3%
- Application 17%
- Contribution 10%
- Final Exam 40%
Resources
- Class notes can be found here: svn://zenit.senecac.on.ca/oop344
- How To edit Wiki pages
- Subversion (SVN)
- Download Page of TortoiseSVN
- SVN book at red-bean.com or download the PDF from here.
- Mac Lab Available in 2108 as well as in the Computing Commons*
- Create an IRC account and login (in Windows)
- IRC Tutorial
Examples
svn://zenit.senecac.on.ca/oop344/trunk
Archives
Class notes, samples, tests, ... 2001 -> 2009
checkout svn://zenit.senecac.on.ca/oop344/tags for all the notes since 2001
OOP344 20093
OOP344 -- Weekly Schedule
Week 1 - Jan 10
This Week
- Introduction to Open Source development.
- Collaboration Tools:
- Wiki
- Blog
- IRC
- Code Repository
- 144/244 review
To Do
Due date: Jan 12, 2010 , 23:59 (11:59pm)
- Add your name to the OOP344 Student List
- Join the IRC by registering your nickname on freenode server and joining the #Seneca channel
Additional channels of interest:- #seneca-oop344 for 344 related dialog
- #seneca-social for Social (off-topic) dialog
- Create a blog (if you don't already have one) and add your feed to Planet CDOT
- Download SVN and check out the OOP344 repo(svn://zenit.senecac.on.ca/oop344) to get the notes done in class
Resources
- A quick tutorial for SVN: Source Control in Ten Minutes
- How to create console application projects in Visual Studio
- Create an IRC account and login (in Windows)
- RabbitVCS - Linux alternative to TortoiseSVN
Week 2 - Jan 17
This Week
- Assessment Quiz on ipc144 and oop244
- C, a closer look to:
define, include, macros, operators, statement evaluation, return value of main, return value of printf and scanf, Conditional Compilation
- Starting the IO Library
To Do
- Make sure all your information on last week's To Do is up to date
- Finalize your teams
- Book your first IRC meeting with Fardad on #seneca-oop344 (Remember, for the first meeting all team members should be present)
- Add Coding Rules to your team page and follow it in your project
- Coding rules are things like, tab size, indentation size, etc...
Resources
- Explains pointers and how memory is stored.... C/C++ - Memory and Pointers
Week 3 - Jan 24
This Week
- #define and conditional compilation
- Starting the Basic Input Output Functions
- Assigning SVN Accounts to teams
To Do
- Checkout the repository from trunk and test compile it on different platforms
- Branch the trunk into a branch under your SenecaID in branches
- Checkout your own branch and start working on your part of the assignment
- After each accomplishment in your own branch, modify the code in trunk and commit the code
- Make sure the code committed to trunk is ALWAYS at compiled state with no warnings or errors.
Challenge
Without use of any library functions (use only the BIOF functions) create a function called:
void bio_putint(int val)
This function should print the integer at where the cursor is on the screen. The first two blogs with the correct answer will get 5% bonus for the first test. The next two blogs optimizing the code of the first two blogs will get 5% bonus for the first test too.
Resources
Week 4 - Jan 31
This Week
- SVN review
- Multi dimension arrays
- void pointers
- pointer to function
To Do
- Blog
- Update your wiki student list page
- Divide the assignment into small tasks and assign it to team members
Resources
Week 5 - Feb 7
This Week
- pointer to function
- sizeof
- sizeof structures
- typedef
- union
- control flow
- break, only in switch
- continue :-(
- goto -:(
- joining expressions
- conditional expression (x = a>b?c:d)
To Do
Resources
Week 6 - Feb 14
This Week
- Declaration Modifiers
- const
- auto
- extern
- Real Syntax of main
- Variable Argument list
To Do
Challenge
Write the printf function but call it MyPrint. It should support
- %c (character)
- %s (string)
- %d (integer)
- %X or %x (integer printed in Hex)
- %f (double or float no formating, always printed with 2 digit after decimal point)
MyPrint("int %d, char %c, string %s, hex %x, float %f", 2, 'A', "hello", 16, 12.34567); int 2, char A, string hello, hex 10, 12.34
Resources
Week 7 - Feb 21
This Week
- Thursday 23:59: BIOL due.
- Create a branch in tags called BIOL_1.0 and have the final BIOL compiled and tested with released tested program and then commit it to the BIOL_1.0 branch.
- Note that there could be many other tags of BIOL to record your development milestones, but I only mark the highest release not less than 1.0.
To Do
Resources
Week 8- Feb 28 Study Week
This Week
To Do
Resources
Week 9 - Mar 7
This Week
- Monday Test One. All that you have learnt from ipc144 to this point on C language only.
To Do
Resources
Week 10 - Mar 14
This Week
- Sunday 11:59 Project 0.5 due.
- create a PRJ_0.5 branch of a tested and compiled trunk
- PRJ_0.5 should a be working project with almost 50% of the functionalities finalized
- Note that you may have many other branches in the tag to record your milestones, but the one I mark will be the highest tag NOT less than PRJ_0.5
To Do
Resources
Week 11 - Mar 21
This Week
To Do
Resources
Week 12 - Mar 28
This Week
To Do
Resources
Week 13 - Apr 4
This Week
- Test 2; everything from ipc144 to now about C and C++ language.
- Sunday 11:59, Prj_1.0 is due.
To Do
Resources
Week 14 - Apr 11
This Week
To Do
Resources
Exam Week - Apr 18
- Exam April 20th, 14:00 (2 PM) Room T4040