Changes

Jump to: navigation, search

OOP344 - 20101

4,825 bytes added, 12:03, 12 May 2010
fixed the oop344 index
[[OOP344]] - [[OOP344 Student List]] - [[OOP344 Teams]] - [[OOP344 Assignment One]]<br 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!
= OOP344 -- Object Oriented Programming II Using C++=
= 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.===Individual work===The Basic Input Output Library, and Main Application
Done individually! Each student must complete and hand her/his own work, no collaboration permitted for this part.=== Basic Input Output Library ===
* C based multi-platform IO functions; (Majority of the code is provided by the prof).* The assignment can be found [[OOP344_Assignment_One|here]]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.
* [[OOP344 Assignment One#Console Input Output Library|Console Input Output Library (ciol)]]** [[OOP344 Assignment One#Basic Console Input Output|Basic Console Input Output (io)]]: <br /> This part is written in C language. It is responsible for handling basic input output features needed to interact with the console** [[OOP344 Assignment One#Line and Selection Editor|Line and Selection Editor:]]<br /> This part is written in C Language and only uses bcio routines, to interact with the console.*** [[OOP344 Assignment One#Line Editor: int io_edit(........)|Line Editor]]<br /> This is responsible for making a full edit on a single line of text and also provide basis for a multi-line text editor.*** [[OOP344 Assignment One#Selection Editor|Selection Editor]]<br /> It provides means (A Checkbox) to create selection lists or Yes/No queries.=== Main Applicaton ===
===Open Source===This part will be done collaboratively in groups of 4 - 8 students under a simulated open source model
This part will be done collaboratively in groups of ??? (to be decided) students under a simulated open source model* Basic Encapsulating Classes (bec)<br /> This part is written in C++ and encapsulates the '''''io''''' routines into classes* The Text EditorApplication<br />this part is written in C++ and uses the '''''bec''''' "Basic Encapsulating Classes" classes to do full text editinteract with the user.
==Grading==
To be completed* 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/ Subverdion Subversion (SVN)]*[http://hgbooktortoisesvn.net/downloads Download Page of TortoiseSVN]* [http://svnbook.red-bean.com/ Mercurial Version ControlSVN 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==[https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/ Examples and Notes done in class]
==Archives==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 2 - Sep 13==
===To Do===
== 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: Sep -17 - 2009 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]
* ChallengeDownload [http: write this function without using any library functions; void GetInt(char *strint, int val);<br /> this function gets an integer value /subversion.tigris.org/ SVN] and converts it to a string check out the OOP344 repo("strint"svn://zenit.senecac.on.ca/oop344)to get the notes done in class === Resources === * ChallengeA quick tutorial for SVN: Modify [http://www.owlnet.rice.edu/~comp314/svn.html Source Control in Ten Minutes]* [OOP344 Assignment Onehttp://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#void io_display(const char Creating_Projects_in_Visual_Studio_for_Console_Applications How to create console application projects in Visual Studio]*str, int row, int col, int len)|io_display]] function to the shortest code possible. Get the source [httpshttp://cszenit.senecac.on.ca/~fardadwiki/index.php/OOP344_Student_Resources#Create_an_IRC_account_and_login_.28in_Windows.soleimanloo29 Create an IRC account and login (in Windows)]* [http://oop344zenit.senecac.on.ca/noteswiki/Aindex.php/01RabbitVCS RabbitVCS -Sep17/ HERELinux alternative to TortoiseSVN]. ==Week 3 2 - Sep 20Jan 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=== * Complete Make sure all your information on last week's "'''To Do"s.''' is up to date* From the Finalize your teams and * Book your first [[OOP344 TeamsIRC Schedules |add 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 wiki]]code in trunk and commit the code** Teams 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 less than 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 and more than 8 are not acceptable === 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)* Merge %f (double or divide teams if necessary 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 adjust the number BIOL_1.0 branch.** Note that there could be many other tags of team membersBIOL 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** Teams' member selection must PRJ_0.5 should a be working project with almost 50% of the functionalities finalized by Oct 3rd** 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

Navigation menu