Difference between revisions of "OOP344 - 20101"

From CDOT Wiki
Jump to: navigation, search
(Grading)
Line 56: Line 56:
  
 
= OOP344 -- Weekly Schedule =
 
= OOP344 -- Weekly Schedule =
==Week 2 - Sep 13==
+
==Week 1 - Jan 10==
 
===This Week===
 
===This Week===
 +
*Introduction to Open Source development.
  
C, a closer look to:
+
*Collaboration Tools:
define, include, macros, operators, statement evaluation, return value of main, return value of printf and scanf, Conditional Compilation
 
  
Starting assignment one
+
**Wiki
 +
 
 +
**Blog
 +
 
 +
**IRC
 +
 
 +
**Code Repository
  
 
===To Do===  
 
===To Do===  
Line 70: Line 76:
 
* 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
 
* 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]
 
* 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==
+
==Week 2 - Jan 17==
===This Week===
+
==Week 3 - Jan 24==
====Topics====
+
==Week 4 - Jan 31==
* File Streams
+
==Week 5 - Feb 7==
** 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==
+
==Week 6 - Feb 14==
===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==
+
==Week 7 - Feb 21==
===This Week===
 
====Topics====
 
* Templates
 
** function templates
 
** class templates
 
* Statics
 
** Declaration Modifiers
 
** methods
 
** extern
 
*Quiz
 
  
==Week 13 - Nov 29==
+
==Week 8- Feb 28  Study Week==
===This Week===
 
  
====Test Two====
+
==Week 9 - Mar 7==
  
Test Two, Monday and Tuesday (Nov 30 and Dec 1)
+
==Week 10 - Mar 14==
====Topics====
 
* multiple inheritance
 
* Base classes
 
** virtual base classes
 
** abstract base classes (revisited)
 
* exception handling
 
  
==Week 14 - Dec 6==
+
==Week 11 - Mar 21==
===This Week===
 
  
====Exam====
+
==Week 12 - Mar 28==
  
Exam on Thursday Dec, 10th, room T4040 14:00
+
==Week 13 - Apr 4==
====Topics====
 
  
* casting and run time information
+
==Week 14 - Apr 11==
* standard template library (introduced)
 
  
* review
+
==Exam Wee - Apr 18==

Revision as of 20:48, 10 January 2010

Object Oriented Programming II Using C++

OOP344 - OOP344 Student List - OOP344 Teams - OOP344 Assignment One - OOP344 Assignment Two - OOP344 IRC Schedules
- OOP344 Student Resources

Please help make this page resourceful for all OOP344 students to use!

OOP344 -- Object Oriented Programming II Using C++

Subject Description and Course Outcomes

The Project

The project for this semester is a multiplatform text based, Text Editor.

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.


Open Source

This part will be done collaboratively in groups of 4 - 8 students under a simulated open source model

  • Basic Encapsulating Classes
    This part is written in C++ and encapsulates the io routines into classes
  • The Application
    this part is written in C++ and uses the "Basic Encapsulating Classes" classes to do interact with the user.

Grading

  • Tests
    • Test 1 10%
    • Test 2 10%
    • Quizzes 10%
  • Project
    • IO Library 2%
    • Application 18%
    • Contribution 10%
  • Final Exam 40%

Resources

Examples

svn://zenit.senecac.on.ca/oop344

Archives

Class notes, samples, tests, ... since 2001
Or checkout svn://zenit.senecac.on.ca/oop344/tags
OOP344 20093

OOP344 -- Weekly Schedule

Week 1 - Jan 10

This Week

  • Introduction to Open Source development.
  • Collaboration Tools:
    • Wiki
    • Blog
    • IRC
    • Code Repository

To Do

Due date: Sep -17 - 2009 , 23:59 (11:59pm)

Week 2 - Jan 17

Week 3 - Jan 24

Week 4 - Jan 31

Week 5 - Feb 7

Week 6 - Feb 14

Week 7 - Feb 21

Week 8- Feb 28 Study Week

Week 9 - Mar 7

Week 10 - Mar 14

Week 11 - Mar 21

Week 12 - Mar 28

Week 13 - Apr 4

Week 14 - Apr 11

Exam Wee - Apr 18