Changes

Jump to: navigation, search

OOP344 - 20101

1,227 bytes added, 12:03, 12 May 2010
fixed the oop344 index
[[OOP344]] - [[OOP344 Student List]] - [[OOP344 Teams]] - [[OOP344 Assignment One]] - [[OOP344 Assignment Two]]<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)]]=== Main Applicaton ===** [[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 will be done collaboratively 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 groups of text and also provide basis for 4 - 8 students under 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.simulated open source model
===Open Source===* 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.
This part will be done collaboratively in groups of 4 - 8 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 Editor<br />this part is written in C++ and uses the '''''bec''''' classes to do full text edit.== Grading ==
==Grading==* Tests** Test 1 10%** Test 2 10%** Quizzes 10%* Project** IO Library 3%** Application 17%** Contribution 10%* Final Exam 40%
To be completed== Resources ==
==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]
*[http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]*[http://subversion.tigris.org/ Subversion (SVN)]*[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*== Examples ==
==Examples==[httpssvn://cszenit.senecac.on.ca/~fardad.soleimanloo/oop344/notes/ Examples and Notes done in class]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==
===This Week===
C, a closer look to:define, include, macros, operators, statement evaluation, return value of main, return value of printf and scanf, Conditional Compilateion == Week 1 - Jan 10 ==
Starting assignment one=== 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)
Due date: Sep -17 - 2009 , 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 ("strint")* Challenge: Modify [[check out the OOP344 Assignment One#void io_displayrepo(const char *str, int row, int col, int len)|io_display]] function to the shortest code possible. Get the source [httpssvn://cszenit.senecac.on.ca/~fardad.soleimanloo/oop344/) to get the notes/07A-Sep17/ HERE].done in class
==Week 3 - Sep 20= 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]
===This Week=2 - Jan 17 ==
Starting Assignment one, starting the project=== This Week ===
Pointers* Assessment Quiz on ipc144 and oop244* C, pointer arithmetic, pointer a closer look to pointer to....,:
===To Do===* Complete last week's "To Do"s.* Form the teams and [[OOP344 Teams|add your team to the wiki]]** Teams with less than 4 members and more than 8 are not acceptable.** Merge or divide teams if necessary to adjust the number of team members.** Teams' member selection must be finalized by Oct 3rd.** Those without a teamdefine, include, macros, join the teams with least number of members.** Select a team leader who is going to be the contact person for the team.*Challenge 3: using what we learned so far (logical operators, and pointers) write the io_display function in ONE line only(Due Sunday 23:59):<pre>void io_display(const char *strstatement evaluation, int rowreturn value of main, int colreturn value of printf and scanf, int len){ yada yada yada;}</pre>Conditional Compilation
==Week 4 - Sep 27==* Starting the IO Library
===Topics for this weekTo Do ===* #undef, casting, unsigned variables, multi-dimensional arrays and their pointer notation* pointers to functions, pointers to pointers to pointers to...* typedef, enum
===To Do===* Complete Make sure all your information on last week's "'''To Do"s.''' is up to date* Finalize Teams by end of the week (Sat Oct 3rd)your teams** If Book your first [[OOP344 IRC Schedules | IRC meeting]] with Fardad on #seneca-oop344 (Remember, for the first meeting all team has less than 4 members, either try to merge your team to another team or break up your team and join other teams.should be present)** After finalizing your members make sure Add Coding Rules to your team wiki page is created and inculdes the list of all team members and their informationfollow it in your project** Select and identify a first and second contact person for your groupCoding rules are things like, tab size, indentation size, etc...==Week 5 - Oct 04==
===This WeekResources ===
* Explains pointers and how memory is stored.... [[OOP344_Quiz2_20093|Quiz 2]]* Bits, bitwise operators* a jump ahead and review!, http://augustcouncil.com/~tgibson/tutorial/ptr.html C/C++, Inheritance, polymorphism, encapsulation - Memory and Pointers]
* default parameters, forward declaration, initialization vs. setting, virtual methods, pure virtual methods, abstract base classes== Week 3 - Jan 24 ==
===To DoThis Week ===* Complete last week's "To Do"s, if not done already!* Copy [https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/AS1/as1tester.c as1tester.c] and run the test with your ciol.c and ciol.h* A quick tutorial for SVN: [http://www.owlnet.rice.edu/~comp314/svn.html Source Control in Ten Minutes] * Read first four chapters of [https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/svn-book.pdf the SVN book].* Download SVN and install it on you PC from [http://subversion.tigris.org/getting.html subversion.tigris.org]** windows: [http://tortoisesvn.tigris.org/ Tortoise SVN]** Linux (Fedora: <big><code>yum install subversion</code></big>)** MAC: already in Apple's Developer Tools
==Week 6 - Oct 11==* #define and conditional compilation* Starting the Basic Input Output Functions* Assigning SVN Accounts to teams
===This Week=====To Do == Dynamic Memory allocation ====To do Dynamic Memory Allocation you need:# Pointer of the type of the memory we are alocating # If the pointer is already pointing at another already allocated memory, deallocate it.# Allocate memory and set the pointer to its address.# Use the memory.....# When you are done, deallocate it.
* 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* Assignment one is due Thursday * continue :-(** goto -:(* joining expressions* conditional expression Oct 15th, 23(x = a>b?c:59d) === To Do === === Resources ===== Week 6 - Feb 14 ===== This Week === * Declaration Modifiers** const** auto** extern* Real Syntax of main* Complete past weeks' "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 === * A quick tutorial for SVNThursday 23: [http59://wwwBIOL 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.owlnetAll that you have learnt from ipc144 to this point on C language only.rice === To Do === === Resources === == Week 10 - Mar 14 ===== This Week === * Sunday 11:59 Project 0.edu/~comp314/svn5 due.html Source Control in Ten Minutes]* Get ready for * create a PRJ_0.5 branch of a quiz on Dynamic memory allocation tested and SVN next weekcompiled 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
==Week 7 - Oct18= To Do ===
===This WeekResources ===
* Quiz on DMA and SVN== Week 11 - Mar 21 ===== This Week ===
* Assigning SVN Accounts=== To Do ===
* IRC Meetings with Teams.=== Resources ===
==Week 12 - Mar 28 =To Do==== This Week ===
* Upload your sources to SVN=== To Do ===
* Do Test Checkouts, builds and commits.=== Resources ===
==Week 8 13 - Oct 25Apr 4 =====this weekThis Week ===* Study breakTest 2; everything from ipc144 to now about C and C++ language.* IRC classes Sunday 11:59, Prj_1.0 is due.
==Week 9 - Nov 1= To Do ===
==Week 10 - Nov 8= Resources ===
==Week 14 - Apr 11 - Nov 15===== This Week ===
==Week 12 - Nov 22= To Do ===
==Week 13 - Nov 29= Resources ===
==Exam Week 14 - Dec 6Apr 18 ==* Exam April 20th, 14:00 (2 PM) Room T4040

Navigation menu