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!
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