Difference between revisions of "OOP344 - 20101"
(fixed the oop344 index) |
|||
(32 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | <big><big>Object Oriented Programming II Using C++</big></big> | + | <big><big>Object Oriented Programming II Using C++</big></big> with introduction to open source |
− | + | {{OOP344 Index - 20101}} | |
− | {{OOP344 Index}} | ||
Please help make this page resourceful for all OOP344 students to use! | Please help make this page resourceful for all OOP344 students to use! | ||
Line 47: | Line 46: | ||
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages] | * [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages] | ||
* [http://subversion.tigris.org/ Subversion (SVN)] | * [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]. | * [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* | * 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://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 == | ||
Line 117: | Line 118: | ||
== Week 3 - Jan 24 == | == 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 == | == 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 == | == 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 == | == 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 == | == 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 == | == Week 8- Feb 28 Study Week == | ||
+ | === This Week === | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
== Week 9 - Mar 7 == | == 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 == | == 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 == | == Week 11 - Mar 21 == | ||
+ | === This Week === | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
== Week 12 - Mar 28 == | == Week 12 - Mar 28 == | ||
+ | === This Week === | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
== Week 13 - Apr 4 == | == 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 == | == Week 14 - Apr 11 == | ||
+ | === This Week === | ||
+ | |||
+ | === To Do === | ||
+ | |||
+ | === Resources === | ||
== Exam Week - Apr 18 == | == 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