Difference between revisions of "OOP344"
(moved OOP344 to OOP344 - 20101) |
|||
Line 1: | Line 1: | ||
− | # | + | |
+ | |||
+ | <big><big>Object Oriented Programming II Using C++</big></big> with introduction to open source | ||
+ | {{OOP344 Index}} | ||
+ | |||
+ | Please help make this page resourceful for all OOP344 students to use! | ||
+ | |||
+ | = 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 | ||
+ | |||
+ | == The Project (under construction) == | ||
+ | |||
+ | 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 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 <br /> This part is written in C++ and encapsulates the '''''io''''' routines into classes | ||
+ | * The Application<br />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 | ||
+ | * [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages] | ||
+ | * [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.29Create an IRC account and login (in Windows)] | ||
+ | * [http://irchelp.org/irchelp/irctutorial.html IRC Tutorial] | ||
+ | |||
+ | == Examples == | ||
+ | |||
+ | svn://zenit.senecac.on.ca/oop344/trunk | ||
+ | |||
+ | == 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 - 20101]] | ||
+ | = 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 [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] | ||
+ | * 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 | ||
+ | |||
+ | === Resources === | ||
+ | |||
+ | * 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_ApplicationsHow 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.29Create 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 |
Revision as of 00:20, 12 May 2010
Object Oriented Programming II Using C++ with introduction to open source
OOP344 | Weekly Schedule | Student List | Teams | Project | 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 thedetailed 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 downloadthe PDF from here.
- Mac Lab Available in 2108 as well as in the Computing Commons*
- 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 - 20101
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 toPlanet 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
- to create console application projects in Visual Studio
- 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