OOP344

From CDOT Wiki
Revision as of 23:20, 11 May 2010 by Fardad (talk | contribs)
Jump to: navigation, search


Object Oriented Programming II Using C++ with introduction to open source
OOP344 | Weekly Schedule | Student List | Teams | Project | 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 (under construction)

The project for this semester is a multiplatform text based, Text Editor and is done using opensource concepts

The project is divided into 2 main parts. The Basic Input Output Library, and Main Application

Basic Input Output Library

  • C based multi-platform IO functions; (Majority of the code is provided by the prof).
  • The 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.

Main Applicaton

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 3%
    • Application 17%
    • Contribution 10%
  • Final Exam 40%

Resources

Examples

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

Archives

Class notes, samples, tests, ... 2001 -> 2009
checkout svn://zenit.senecac.on.ca/oop344/tags for all the notes since 2001
OOP344 20093 OOP344 - 20101

OOP344 -- Weekly Schedule

Week 1 - Jan 10

This Week

  • 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)

Resources

Week 2 - Jan 17

This Week

  • Assessment Quiz on ipc144 and oop244
  • C, a closer look to:

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 IRC meeting with Fardad on #seneca-oop344 (Remember, for the first meeting all team members should be present)
  • Add Coding Rules to your team page and follow it in your project
    • Coding rules are things like, tab size, indentation size, etc...

Resources

Week 3 - Jan 24

This Week

  • #define and conditional compilation
  • Starting the Basic Input Output Functions
  • Assigning SVN Accounts to teams

To Do

  • 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, modify the code in trunk and commit the code
    • Make sure the code committed to trunk is ALWAYS at compiled state with no warnings or errors.

Challenge

Without use of any library functions (use only the BIOF functions) create a function called:

void bio_putint(int val)

This function should print the integer at where the cursor is on the screen. The first two blogs with the correct answer will get 5% bonus for the first test. The next two blogs optimizing the code of the first two blogs will get 5% bonus for the first test too.

Resources

Week 4 - Jan 31

This Week

  • SVN review
  • Multi dimension arrays
  • void pointers
  • pointer to function

To Do

  • Blog
  • Update your wiki student list page
  • Divide the assignment into small tasks and assign it to team members

Resources

Week 5 - Feb 7

This Week

  • pointer to function
  • sizeof
    • sizeof structures
  • typedef
  • union
  • control flow
    • break, only in switch
    • continue :-(
    • goto -:(
  • joining expressions
  • conditional expression (x = a>b?c:d)

To Do

Resources

Week 6 - Feb 14

This Week

  • Declaration Modifiers
    • const
    • auto
    • extern
  • Real Syntax of main
  • Variable Argument list

To Do

Challenge

Write the printf function but call it MyPrint. It should support

  •  %c (character)
  •  %s (string)
  •  %d (integer)
  •  %X or %x (integer printed in Hex)
  •  %f (double or float no formating, always printed with 2 digit after decimal point)
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

Resources

Week 7 - Feb 21

This Week

  • 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.0.

To Do

Resources

Week 8- Feb 28 Study Week

This Week

To Do

Resources

Week 9 - Mar 7

This Week

  • Monday Test One. All that you have learnt from ipc144 to this point on C language only.

To Do

Resources

Week 10 - Mar 14

This Week

  • Sunday 11:59 Project 0.5 due.
    • create a PRJ_0.5 branch of a tested and compiled trunk
    • PRJ_0.5 should a be working project with almost 50% of the functionalities finalized
    • Note 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

Week 11 - Mar 21

This Week

To Do

Resources

Week 12 - Mar 28

This Week

To Do

Resources

Week 13 - Apr 4

This Week

  • Test 2; everything from ipc144 to now about C and C++ language.
  • Sunday 11:59, Prj_1.0 is due.

To Do

Resources

Week 14 - Apr 11

This Week

To Do

Resources

Exam Week - Apr 18

  • Exam April 20th, 14:00 (2 PM) Room T4040