Changes

Jump to: navigation, search

OOP344 20093

9,432 bytes added, 18:12, 10 January 2010
Created page with ' <big><big>Object Oriented Programming II Using C++</big></big> OOP344 - OOP344 Student List - OOP344 Teams - OOP344 Assignment One - OOP344 Assignment Two ...'


<big><big>Object Oriented Programming II Using C++</big></big>

[[OOP344]] - [[OOP344 Student List]] - [[OOP344 Teams]] - [[OOP344 Assignment One]] - [[OOP344 Assignment Two]] - [[OOP344 IRC Schedules 20093 |OOP344 IRC Schedules]] <br />
- [[Student Resources]]<br />

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 ==

The project for this semester is a multiplatform text based, Text Editor.<br />

The project is divided into 2 main parts.
===Individual work===

Done individually! Each student must complete and hand her/his own work, no collaboration permitted for this part.

The assignment can be found [[OOP344_Assignment_One|here]].

* [[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.

===Open Source===

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==

To be completed

==Resources==

*[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==
svn://zenit.senecac.on.ca/oop344

==Archives==

[https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/OLD/ Class notes, samples, tests, ... since 2001]<br />
Or checkout svn://zenit.senecac.on.ca/oop344/tags

= 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 Compilation

Starting assignment one

===To Do===

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
* 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]
* Challenge: write this function without using any library functions; void GetInt(char *strint, int val);<br /> this function gets an integer value and converts it to a string ("strint")
* Challenge: Modify [[OOP344 Assignment One#void io_display(const char *str, int row, int col, int len)|io_display]] function to the shortest code possible. Get the source[https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/07A-Sep17/ HERE].

==Week 3 - Sep 20==


===This Week===

Starting Assignment one, starting the project

Pointers, pointer arithmetic, pointer 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 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==

===Topics for this week===
* #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 last week's "To Do"s.
* Finalize Teams by end of 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 teams.
** After finalizing your members make sure your team wiki page is created and includes the list of all team members and their information
** Select and identify a first and second contact person for your group.

==Week 5 - Oct 04==

===This Week===

* [[OOP344_Quiz2_20093|Quiz 2]]
* Bits, bitwise operators
* a jump ahead and review!, C++, Inheritance, polymorphism, encapsulation

* default parameters, forward declaration, initialization vs. setting, virtual methods, pure virtual methods, abstract base classes

===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 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 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 Tools

==Week 6 - Oct 11==

===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===
* Assignment one is due Thursday Oct 15th, 23:59
* Complete past weeks' "To Do"s
* A quick tutorial for SVN: [http://www.owlnet.rice.edu/~comp314/svn.html Source Control in Ten Minutes]
* Get ready for a quiz on Dynamic memory allocation and SVN next week.

==Week 7 - Oct18==

===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]
** [http://en.wikipedia.org/wiki/Static_variable#Static_Variables_as_Class_Variables static]
** [http://en.wikipedia.org/wiki/Automatic_variable auto]
** [http://en.wikipedia.org/wiki/Register_allocation register]
** [http://en.wikipedia.org/wiki/Volatile_variable volatile]
* Passing arguments as command line arguments
* Variable argument list

===To Do===

* 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

==Week 8 - Oct 25==
===This Week===
* Study break
* IRC classes

==Week 9 - Nov 1==
===This Week===

====Test One====

Test one on Monday and Tuesday (Nov 2 and Nov 3)
====Topics====
* Linked Lists (continued)
** [http://en.wikipedia.org/wiki/Doubly-linked_list doubly-linked]
** trees (introduced)

==Week 10 - Nov 8==
===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==
===This Week===
====Topics====
* Binary File Access (continued)
** seeking and getting the current location in a file
** index files, hashes, searches
* inline functions

==Week 12 - Nov 22==
===This Week===
====Topics====
* Templates
** function templates
** class templates
* Statics
** Declaration Modifiers
** methods
** extern
*Quiz

==Week 13 - Nov 29==
===This Week===

====Test Two====

Test Two, Monday and Tuesday (Nov 30 and Dec 1)
====Topics====
* multiple inheritance
* Base classes
** virtual base classes
** abstract base classes (revisited)
* exception handling

==Week 14 - Dec 6==
===This Week===

====Exam====

Exam on Thursday Dec, 10th, room T4040 14:00
====Topics====

* casting and run time information
* standard template library (introduced)

* review

Navigation menu