Difference between revisions of "OOP344 - 20101"

From CDOT Wiki
Jump to: navigation, search
Line 189: Line 189:
** what are cin and cout
** what are cin and cout
** fstream, ifstream, ofstream
** fstream, ifstream, ofstream
* Binary Fill Access
* Binary File Access
** read, write, append, truncate (ios::in, ios::out, ios::app, ios::ate, ios::trunc, ios::binary)
** read, write, append, truncate (ios::in, ios::out, ios::app, ios::ate, ios::trunc, ios::binary)
==Week 11 - Nov 15==
==Week 11 - Nov 15==

Revision as of 22:23, 27 October 2009

OOP344 - OOP344 Student List - OOP344 Teams - OOP344 Assignment One - OOP344 Assignment Two

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.

The assignment can be found here.

Open Source

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

  • Basic Encapsulating Classes (bec)
    This part is written in C++ and encapsulates the io routines into classes
  • The Text Editor
    this part is written in C++ and uses the bec classes to do full text edit.


To be completed



Examples and Notes done in class


Class notes, samples, tests, ... since 2001

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 Compilateion

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 registering your nickname on freenode server and joining the #Seneca channel
  • Create a blog (if you don't already have one) and add your feed to Planet CDOT
  • Challenge: write this function without using any library functions; void GetInt(char *strint, int val);
    this function gets an integer value and converts it to a string ("strint")
  • Challenge: Modify io_display function to the shortest code possible. Get the source 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 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):
void io_display(const char *str, int row, int col, int len){
   yada yada yada;

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

  • 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

Week 6 - Oct 11

This Week

Dynamic Memory allocation

To do Dynamic Memory Allocation you need:

  1. Pointer of the type of the memory we are allocating. Ex: int* p;
  2. If the pointer is already pointing at another already allocated memory, deallocate it.
  3. Allocate memory and set the pointer to its address.
  4. Use the memory.....
  5. 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: 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.


  • Linked Lists
  • Declaration Modifiers
    • const
    • extern
    • static
    • auto
    • register
    • volatile
  • Passing arguments as command line argurments
  • Variable argument list

To Do

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)


  • Linked Lists (continued)
    • doubly-linked
    • trees (introduced)

Week 10 - Nov 8

This Week


  • 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


  • 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


  • Templates
    • function templates
    • class templates
  • Statics
    • Declaration Modifiers
    • methods
    • extern

Week 13 - Nov 29

This Week

Test Two

Test Two, Monday and Tuesday (Nov 30 and Dec 1)


  • multiple inheritance
  • Base classes
    • virtual base classes
    • abstract base classes (revisited)
  • exception handling

Week 14 - Dec 6

This Week


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


  • casting and run time information
  • standard template library (introduced)
  • review