Difference between revisions of "OOP344"

From CDOT Wiki
Jump to: navigation, search
(Archives)
Line 1: Line 1:
 
  
 
<big><big>Object Oriented Programming II Using C++</big></big>  with introduction to open source
 
<big><big>Object Oriented Programming II Using C++</big></big>  with introduction to open source
Line 36: Line 35:
 
** Test 1    10%
 
** Test 1    10%
 
** Test 2    10%
 
** Test 2    10%
** Quizzes  10%
 
 
* Project
 
* Project
 
** IO Library 3%
 
** IO Library 3%
** Application  17%
+
** Application  27%
** Contribution 10%
+
** Contribution and Participation 10%
 
* Final Exam 40%
 
* Final Exam 40%
  
Line 64: Line 62:
 
[[OOP344 20093]]<br/>
 
[[OOP344 20093]]<br/>
 
[[OOP344 - 20101]]
 
[[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)
 
 
* 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<br />Additional channels of interest:
 
** #seneca-oop344 for 344 related dialog
 
** #seneca-social for Social (off-topic) dialog
 
* 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]
 
* Download [http://subversion.tigris.org/ SVN] and check out the OOP344 repo(svn://zenit.senecac.on.ca/oop344) to get the notes done in class
 
 
=== Resources ===
 
 
* A quick tutorial for SVN: [http://www.owlnet.rice.edu/~comp314/svn.html Source Control in Ten Minutes]
 
*[http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#Creating_Projects_in_Visual_Studio_for_Console_ApplicationsHow to create console application projects in Visual Studio]
 
*[http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#Create_an_IRC_account_and_login_.28in_Windows.29Create an IRC account and login (in Windows)]
 
* [http://zenit.senecac.on.ca/wiki/index.php/RabbitVCS RabbitVCS - Linux alternative to TortoiseSVN]
 
 
== 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 [[OOP344 IRC Schedules | 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 ===
 
 
* Explains pointers and how memory is stored.... [http://augustcouncil.com/~tgibson/tutorial/ptr.html C/C++- Memory and Pointers]
 
 
== 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:
 
 
<big>
 
void bio_putint(int val)
 
 
</big>
 
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
 

Revision as of 00:55, 12 May 2010

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%
  • Project
    • IO Library 3%
    • Application 27%
    • Contribution and Participation 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