21
edits
Changes
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