Changes

Jump to: navigation, search

OOP344 - 20101

871 bytes removed, 12:03, 12 May 2010
fixed the oop344 index
<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]] - [[OOP344 Student List]] - [[OOP344 Teams]] - [[OOP344 Assignment One]] - [[OOP344 Assignment Two]] - [[OOP344 IRC Schedules 20093 |OOP344 IRC Schedules]] <br />- [[Student Resources]]<br />students to use!
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 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 to:== Week 1 - Jan 10 ==define, include, macros, operators, statement evaluation, return value of main, return value of printf and scanf, Conditional Compilation === This Week ===
Starting assignment one* 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//subversion.tigris.org/ SVN] and check out the OOP344 repo(char 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]*strint, int val);<br [http://zenit.senecac.on.ca/wiki/index.php/> this function gets OOP344_Student_Resources#Create_an_IRC_account_and_login_.28in_Windows.29 Create an integer value IRC account and converts it to a string login ("strint"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* ChallengeC, a closer look to: Modify  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 Assignment OneIRC Schedules | IRC meeting]] with Fardad on #void io_displayseneca-oop344 (const char Remember, for the first meeting all team members should be present)* Add Coding Rules to your team page and follow it in your project*str* Coding rules are things like, int rowtab size, int colindentation size, int len)|io_display]] function to the shortest code possibleetc... === Resources === * Explains pointers and how memory is stored.... Get the source [httpshttp://cs.senecac.onaugustcouncil.cacom/~fardad.soleimanlootgibson/oop344tutorial/notesptr.html C/07AC++ -Sep17/ HEREMemory and Pointers].
==Week 3 - Sep 20Jan 24 ==
=== This Week ===
===This Week===* #define and conditional compilation* Starting the Basic Input Output Functions* Assigning SVN Accounts to teams
Starting Assignment one, starting the project=== To Do ===
Pointers* 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, pointer arithmetic, pointer modify the code in trunk and commit the code** Make sure the code committed to pointer to..trunk is ALWAYS at compiled state with no warnings or errors..,
===To DoChallenge ===* 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 team, 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 *str, int row, int col, int len){ yada yada yada;}</pre>
==Week 4 - Sep 27==Without use of any library functions (use only the BIOF functions) create a function called:
===Topics for this week===<big>* #undef, casting, unsigned variables, multi-dimensional arrays and their pointer notation* pointers to functions, pointers to pointers to pointers to...* typedef, enum void bio_putint(int val)
===To Do===</big>* Complete last week's "To Do"sThis function should print the integer at where the cursor is on the screen.* Finalize Teams by end of The first two blogs with the correct answer will get 5% bonus for the week (Sat Oct 3rd)** If your team has less than 4 members, either try to merge your team to another team or break up your team and join other teamsfirst test.** After finalizing your members make sure your team wiki page is created and includes The next two blogs optimizing the list code of all team members and their information** Select and identify a the first and second contact person two blogs will get 5% bonus for your groupthe first test too.
==Week 5 - Oct 04= Resources ===
== Week 4 - Jan 31 =====This Week===
* [[OOP344_Quiz2_20093|Quiz 2]]SVN review* Multi dimension arrays* Bits, bitwise operatorsvoid pointers* a jump ahead and review!, C++, Inheritance, polymorphism, encapsulation pointer to function
* default parameters, forward declaration, initialization vs. setting, virtual methods, pure virtual methods, abstract base classes=== To Do ===
===To Do===* Complete last week's "To Do"s, if not done already!Blog* Copy [https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/AS1/as1tester.c as1tester.c] and run the test with Update your ciol.c and ciol.hwiki student list page* 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 Divide the SVN book].* Download SVN assignment into small tasks and install assign it on your 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 Toolsto team members
==Week 6 - Oct 11= Resources ===
===This Week=5 - Feb 7 =====This Week = Dynamic Memory allocation ====To do Dynamic Memory Allocation you need:# Pointer of the type of the memory we are allocating. Ex: int* p;# 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. Ex: delete [ ] p;
===To Do===* pointer to function* sizeof** sizeof structures* typedef* union* control flow* Assignment one is due Thursday Oct 15th* 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://en.wikipedia.org/wiki/Constant_(programming) const]** [http://en.wikipedia.org/wiki/Extern extern]auto** [http://en.wikipedia.org/wiki/Static_variable#Static_Variables_as_Class_Variables static]extern*Real Syntax of main* [http://enVariable Argument list === To Do === ==== Challenge ==== Write the printf function but call it MyPrint.wikipedia.org/wiki/Automatic_variable auto]It should support *%c (character)* [http://en.wikipedia.org/wiki/Register_allocation register]%s (string)** [http://en.wikipedia.org/wiki/Volatile_variable volatile]%d (integer)* Passing arguments as command line arguments%X or %x (integer printed in Hex)* Variable argument list%f (double or float no formating, always printed with 2 digit after decimal point)
===To Do=== 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
* 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 class in the notes efficient....** svn://zenit.senecac.on.ca/oop344_093svn/notes/27A-Oct22=== Resources ===
==Week 8 7 - Oct 25Feb 21 =====This Week===* Study break* IRC classes
==Week 9 - Nov * 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=====This Week===.0.
====Test One=To Do ===
Test one on Monday and Tuesday (Nov 2 and Nov 3) ===Resources =Topics====* Linked Lists (continued)** [http://en.wikipedia.org/wiki/Doubly-linked_list doubly-linked]** trees (introduced)
==Week 10 8- Nov 8Feb 28 Study Week =====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 - Nov 15=To Do ====This Week=======Topics====* Binary File Access (continued)** seeking and getting the current location in a file** index files, hashes, searches* inline functions
=== Resources === ==Week 12 9 - Nov 22Mar 7 =====This Week===* Monday Test One. All that you have learnt from ipc144 to this point on C language only. ===To Do =Topics== === Resources ===* Templates** function templates== Week 10 - Mar 14 ===== This Week ===** class templates* StaticsSunday 11:59 Project 0.5 due.** Declaration Modifierscreate a PRJ_0.5 branch of a tested and compiled trunk** methodsPRJ_0.5 should a be working project with almost 50% of the functionalities finalized** externNote 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 ===*Quiz== Week 11 - Mar 21 ===== This Week === === To Do === === Resources === == Week 12 - Mar 28 ===== This Week === === 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