Changes

Jump to: navigation, search

OOP344 - 20101

7,099 bytes added, 12:03, 12 May 2010
fixed the oop344 index
This page is under construction...= OOP344 -- <big><big>Object Oriented Programming II Using C++=</big></big> with introduction to open source{{OOP344 Index - 20101}}
=Topics in Object Oriented Programming II Using C++=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 Descriptionand 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.29 Create 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 -- 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_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 ===
==Course Outcomes= To Do ===
== The Project = Resources ===
The project for this semester is a multiplatform text based, Text Editor.<br />== Week 12 - Mar 28 ===== This Week ===
The project is divided into 3 main parts.=== To Do ===
* [[OOP344 Assignment One#Console Input Output Library|Console Input Output Library (ciol)]] ** Basic Console Input Output (bcio): <br /> This part is written in C language. It is responsible to handle basic input output features needed to interact with console** Line and Selection Editor.<br /> This part is written in C Language and only uses bcio routines, to interact with the console. It is responsible to do full edit on a single line text and also provide basis for a multi-line text editor. Also it provides means (A Checkbox) to create selection lists. === Resources ===
== Week 13 - Apr 4 ===== This Week ===* Basic Encapsulating Classes (bec)<br /> This part is written in Test 2; everything from ipc144 to now about C and C++ and encapsulates the '''''ciol''''' routines into classes language.* The Text Editor<br />this part Sunday 11:59, Prj_1.0 is written in C++ and uses the '''''bec''''' classes to do full text editdue.
==Grading= To Do ===
=== Resources ===
==ResourcesWeek 14 - Apr 11 ==*[http://hgbook.red-bean.com/ Mercurial Version Control]=== This Week ===
==Examples= To Do ===
=== Resources ===
==ArchivesExam Week - Apr 18 ==* Exam April 20th, 14:00 (2 PM) Room T4040

Navigation menu