Difference between revisions of "OOP344 - 20101"

From CDOT Wiki
Jump to: navigation, search
(To Do)
(fixed the oop344 index)
 
(27 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<big><big>Object Oriented Programming II Using C++</big></big>
+
<big><big>Object Oriented Programming II Using C++</big></big> with introduction to open source
{{OOP344 Index}}
+
{{OOP344 Index - 20101}}
  
 
Please help make this page resourceful for all OOP344 students to use!
 
Please help make this page resourceful for all OOP344 students to use!
Line 46: Line 46:
 
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]
 
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]
 
* [http://subversion.tigris.org/ Subversion (SVN)]
 
* [http://subversion.tigris.org/ Subversion (SVN)]
 +
* [http://tortoisesvn.net/downloads Download Page of TortoiseSVN]
 
* [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].
 
* [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*
 
* Mac Lab Available in 2108 as well as in the Computing Commons*
 
* [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#Create_an_IRC_account_and_login_.28in_Windows.29 Create an IRC account and login (in Windows)]
 
* [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#Create_an_IRC_account_and_login_.28in_Windows.29 Create an IRC account and login (in Windows)]
 +
* [http://irchelp.org/irchelp/irctutorial.html IRC Tutorial]
  
 
== Examples ==
 
== Examples ==
Line 134: Line 136:
  
 
Without use of any library functions (use only the BIOF functions) create a function called:
 
Without use of any library functions (use only the BIOF functions) create a function called:
 +
 +
<big>
 
  void bio_putint(int val)
 
  void bio_putint(int val)
 +
 +
</big>
 
This function should print the integer at where the cursor is on the screen.
 
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 first two blogs with the correct answer will get 5% bonus for the first test.
Line 142: Line 148:
  
 
== Week 4 - Jan 31 ==
 
== 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 ==
 
== 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 ==
 
== 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 ==
 
== 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 ==
 
== Week 8- Feb 28  Study Week ==
 +
=== This Week ===
 +
 +
=== To Do ===
 +
 +
=== Resources ===
  
 
== Week 9 - Mar 7 ==
 
== 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 ==
 
== 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 ==
 
== Week 11 - Mar 21 ==
 +
=== This Week ===
 +
 +
=== To Do ===
 +
 +
=== Resources ===
  
 
== Week 12 - Mar 28 ==
 
== Week 12 - Mar 28 ==
 +
=== This Week ===
 +
 +
=== To Do ===
 +
 +
=== Resources ===
  
 
== Week 13 - Apr 4 ==
 
== 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 ==
 
== Week 14 - Apr 11 ==
 +
=== This Week ===
 +
 +
=== To Do ===
 +
 +
=== Resources ===
  
 
== Exam Week - Apr 18 ==
 
== Exam Week - Apr 18 ==
 +
* Exam April 20th, 14:00 (2 PM) Room T4040

Latest revision as of 11:03, 12 May 2010

Object Oriented Programming II Using C++ with introduction to open source
OOP344 - 20101 - Student List - Teams - Project - IRC Schedules - 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 -- 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