Changes

Jump to: navigation, search

OOP344 - 20101

801 bytes removed, 12:03, 12 May 2010
fixed the oop344 index
[[OOP344]] - [[OOP344 Student List]] - [[OOP344 Teams]] - [[OOP344 Assignment One]] - [[OOP344 Assignment Two]] - [[OOP344 IRC Schedules 20093 |OOP344 IRC Schedules]] <br big><big>Object Oriented Programming II Using C++</big>- [[Student Resources]]<br /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 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 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 ==
==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 == Week 1 - Jan 10 == === This Week === * Introduction toOpen Source development.* Collaboration Tools:define, include, macros, operators, statement evaluation, return value of main, return value of printf and scanf, Conditional Compilation ** Wiki** Blog** IRC** Code Repository* 144/244 review
Starting assignment one=== To Do ===
===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 includes 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= Resources ===
===This Week===* Explains pointers and how memory is stored.... [http://augustcouncil.com/~tgibson/tutorial/ptr.html C/C++ - Memory and Pointers]
* [[OOP344_Quiz2_20093|Quiz 2]]* Bits, bitwise operators* a jump ahead and review!, C++, Inheritance, polymorphism, encapsulation == Week 3 - Jan 24 ==
* default parameters, forward declaration, initialization vs. setting, virtual methods, pure virtual methods, abstract base classes=== This Week ===
===To Do===* 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 #define and ciol.hconditional compilation* 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 Starting the SVN book].* Download SVN and install it on you PC from [http://subversion.tigris.org/getting.html subversion.tigris.org]Basic Input Output Functions** windows: [http://tortoisesvn.tigris.org/ Tortoise Assigning SVN]** Linux (Fedora: <big><code>yum install subversion</code></big>)** MAC: already in Apple's Developer ToolsAccounts to teams
==Week 6 - Oct 11= To Do ===
===This Week===* Checkout the repository from trunk and test compile it on different platforms==== Dynamic Memory allocation ====* Branch the trunk into a branch under your SenecaID in branchesTo do Dynamic Memory Allocation you need:# Pointer ** Checkout your own branch and start working on your part of the type of the memory we are allocating. Ex: intassignment** p;# If After each accomplishment in your own branch, modify the pointer is already pointing at another already allocated memory, deallocate it.# Allocate memory code in trunk and set commit the pointer to its address.code# Use ** Make sure the memory.....# When you are done, deallocate itcode committed to trunk is ALWAYS at compiled state with no warnings or errors. Ex: delete [ ] p;
=== 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* Assignment one is due Thursday Oct 15thDivide 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, 23only in switch** continue :59-(* Complete past weeks' "To Do"s* goto -:(* A quick tutorial for SVN: [http://www.owlnet.rice.edu/~comp314/svn.html Source Control in Ten Minutes]joining expressions* Get ready for conditional expression (x = a quiz on Dynamic memory allocation and SVN next week.>b?c:d)
==Week 7 - Oct18= To Do ===
=== Resources ===== Week 6 - Feb 14 =====This Week===
* passing arguments
* Quiz on DMA and SVN
* Assigning SVN Accounts
* IRC Meetings with Teams.
====Topics====
* [http://en.wikipedia.org/wiki/Linked_list Linked Lists]
* Declaration Modifiers
** [http://enconst** auto** extern* Real Syntax of main* Variable Argument list === To Do === ==== Challenge ==== Write the printf function but call it MyPrint.wikipedia.org/wiki/Constant_It should support * %c (programmingcharacter) const]*%s (string)* [http://en.wikipedia.org/wiki/Extern extern]%d (integer)*%X or %x (integer printed in Hex)* [http://en%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.wikipedia34567); int 2, char A, string hello, hex 10, 12.org/wiki/Static_variable#Static_Variables_as_Class_Variables static]34 === Resources === == Week 7 - Feb 21 ===== This Week === ** [httpThursday 23:59://en.wikipediaBIOL due.org/wiki/Automatic_variable auto]** [http://enCreate 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.wikipedia0 branch.org/wiki/Register_allocation register]** [http://enNote 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.wikipedia0.org/wiki/Volatile_variable volatile]* Passing arguments as command line argurments* Variable argument list=== To Do ===
===To DoResources ===
* Upload your sources to SVN* Do Test Checkouts, builds and commits.** For 5%, copy constructor for the DsStack class in the notes.** For your own good, make the DsStack == Week 8- Feb 28 class in the notes efficient....Study Week ==** svn://zenit.senecac.on.ca/oop344_093svn/notes/27A-Oct22=== This Week ===
==Week 8 - Oct 25=To Do ====This Week===* Study break* IRC classes
==Week 9 - Nov 1=====This WeekResources ===
==Week 9 - Mar 7 ====Test One=This Week ===* Monday Test One. All that you have learnt from ipc144 to this point on C language only.
Test one on Monday and Tuesday (Nov 2 and Nov 3) ===To Do =Topics====* Linked Lists (continued)** [http://en.wikipedia.org/wiki/Doubly-linked_list doubly-linked]** trees (introduced)
==Week 10 - Nov 8=Resources ====This Week=======Topics====* File Streams** what are cin and cout** fstream, ifstream, ofstream* Binary File Access** read, write, append, truncate (ios::in, ios::out, ios::app, ios::ate, ios::trunc, ios::binary)
==Week 11 10 - Nov 15Mar 14 =====This Week=======Topics====* Binary File Access (continued)** seeking and getting the current location in a file** index files, hashes, searches* inline functions
* 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 12 11 - Nov 22Mar 21 =====This Week=== ===To Do =Topics== === Resources ===* Templates** function templates== Week 12 - Mar 28 ==** class templates=== This Week ===* Statics** Declaration Modifiers** methods** extern=== To Do ===
==Week 13 - Nov 29=====This WeekResources ===
==Week 13 - Apr 4 ====Test Two=This Week ===* Test 2; everything from ipc144 to now about C and C++ language.* Sunday 11:59, Prj_1.0 is due.
Test Two, Monday and Tuesday (Nov 30 and Dec 1)===To Do =Topics====* multiple inheritance* Base classes** virtual base classes** abstract base classes (revisited)* exception handling
==Week 14 - Dec 6=====This WeekResources ===
==Week 14 - Apr 11 ==Exam=== This Week ===
Exam on Thursday Dec, 10th, room T4040 14:00====Topics=To Do ===
* casting and run time information* standard template library (introduced)=== Resources ===
== Exam Week - Apr 18 ==* reviewExam April 20th, 14:00 (2 PM) Room T4040

Navigation menu