Difference between revisions of "Weekly Schedule 20103 - OOP344C"

From CDOT Wiki
Jump to: navigation, search
(To Do: Removed < />)
(To Do)
 
(77 intermediate revisions by 6 users not shown)
Line 17: Line 17:
 
=== To Do ===
 
=== To Do ===
  
Due date: ??? , 12:00 (noon)
+
Due date: September 11th , 23:59 (11:59pm)
  
Form a team of 4 students and select a name for your team.
+
Form a team of 3 students and select a name for your team.
  
Due date: ??? , 23:59 (11:59pm)
 
 
# 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, and #seneca-social for Social (off-topic) dialog.
 
# 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, and #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]
 
# 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 an account on this wiki, (please use your seneca email id)
 
# Add your name to the [[OOP344 Student List 20103 | OOP344 Student List]]
 
# Add your name to the [[OOP344 Student List 20103 | OOP344 Student List]]
 
# Download [http://tortoisesvn.net/downloads SVN] and check out the OOP344 repo(svn://zenit.senecac.on.ca/oop344) to get the notes done in class (userid: "oop344", no password)
 
# Download [http://tortoisesvn.net/downloads SVN] and check out the OOP344 repo(svn://zenit.senecac.on.ca/oop344) to get the notes done in class (userid: "oop344", no password)
Line 42: Line 42:
 
* #define (macros)
 
* #define (macros)
 
* Multi-platform Coding
 
* Multi-platform Coding
 +
* Conditional Compilation
 
* Review of types in C
 
* Review of types in C
 +
* svn more detailed
 
* Starting Basic IO library for the project
 
* Starting Basic IO library for the project
 
=== To Do ===
 
=== To Do ===
 +
* If not done already, complete week 1 To Do '''NOW'''.
 +
* Finalize and confirm your teams of 3 (or 4 with Fardad's permission): [[Initial Team Assignments 20103 - OOP344C]] '''due Wed Sep 15 12:00 noon'''.
  
* Finalize your teams (groups of 4 or five students)
+
=== Resources ===
* Apply for svn account by sending [mailto:fardad.soleimanloo@senecac.on.ca?subject=oop344_svn- fardad] an email holding the list of your team members in comma separated format (csv) as follows: (1 email per team)
 
  
<big><pre>
 
team name
 
A,last name1,first name1,seneca id1
 
B,last name2,first name2,seneca id2
 
....
 
</pre></big>
 
 
=== Resources ===
 
* [[oop344 20102 - iof functions|Basic Input/Output Functions]]
 
* [http://en.wikipedia.org/wiki/C_preprocessor Preprocessor Directives]
 
  
 
== Week 3 - Sep 19 ==
 
== Week 3 - Sep 19 ==
  
 
=== This Week ===
 
=== This Week ===
 
+
* IRC in action ([[Sep 21, 2010 class lecture notes for OOP344|class lectures and notes]])
 
* Casting
 
* Casting
 
* Pointers, Arithmetic
 
* Pointers, Arithmetic
 
* Arrays, (Multi-dimensional)
 
* Arrays, (Multi-dimensional)
* [[oop344 20102 - iof functions|iof]] (continued)
 
 
* lazy evaluation
 
* lazy evaluation
 +
* developing and finalizing  basic io library
 +
* Committing your work to svn
 +
* [[Sept 24 2010 class lecture notes for OOP344 | Notes on Pointers, Arrays and Lazy Eval]]
  
 
=== To Do ===
 
=== To Do ===
 
+
* Starting next week, we will try to have one quiz per week.
 +
* Create svn directories for your '''development root''' under branches in your project repository (your team svn account) '''due Thu Sep 23 12:00 noon'''
 +
* Create test directories under your '''development root''' '''due Thu Sep 23 12:00 noon'''
 +
: note: ''use your seneca email id as root of your development branch''
 +
<big><pre>
 +
|-- Team svn account
 +
  +--branches
 +
  | +-- member id one  <-- this is your "development root"
 +
  |  +-- testdir
 +
  | +-- member id two
 +
  |  +-- testdir
 +
  | +-- member id three
 +
  |  +-- testdir
 +
  +--tags
 +
  +--trunk
 +
</pre></big>
 +
* Add C text files to your repo's testdir and exercise Checkout, update, commit, etc... on it. '''due Thu Sep 23 12:00 noon'''
 
* work with svn and familiarize yourself with it
 
* work with svn and familiarize yourself with it
 
* Blog,
 
* Blog,
* Book your first IRC meeting with your prof.
 
 
* Get ready for the first quiz on what ever we work on till now
 
* Get ready for the first quiz on what ever we work on till now
  
 
=== Resources ===
 
=== Resources ===
 
* [[oop344 20102 May 27 - Online IRC course| May 27 course]]
 
  
 
== Week 4 - Sep 26 ==
 
== Week 4 - Sep 26 ==
Line 86: Line 94:
 
* void pointers
 
* void pointers
 
* intro to pointer to functions
 
* intro to pointer to functions
* [[Oop344_20102_-_iof_functions | Coding iof functions]]
+
* developing io library continued
  
 
=== To Do ===
 
=== To Do ===
* write void MemCpy(void* des, void* src, unsigned int size);
+
# Add a blank solution to trunk with the following files:
** this function copies the contents of src into des, byte by byte to '''''size''''' bytes
+
## iol.c(blank file)
 +
## iol.h(blank header file with safeguard coded only)
 +
## ioltest.c a file that includes '''iol.h''' and has conditional compilation set for each developers main() function for testing:
 +
##: see below for example.
 +
# Each team member should branch the trunk into his/her workspace in branches
 +
#: Each team member must implement one platform and test it to make sure all the functions work properly
 +
# Merge back the workspace to trunk to apply the changes you made.
 +
#: Merge, compile trunk, make sure everything works, then commit the trunk and branch it to next tag dir sequence.
 +
#: First one completing the platform should call the tag prj0.01, next one should call the tag 0.02 and so on....
 +
#: Last one completing the assigned platform should call the tag 0.1. ( will mark this tag the latest release after 0.1)
 +
# '''Prj0.1 due on Wed 29 noon; '''
 +
#: Submit in tags prj0.1 branch (dir) of your team repository
 +
#: Simple '''iolib''' functions are due with your own test program to prove that functions work properly
 +
#: One platform must be committed per (and by) team member. (i.e. if you have four team members, you have four platforms to develop)
 +
#: Note that in MAC for function keys you should use combination of one of the ctrl, alt or apply keys with the function keys to get a unique key code.
 +
#: Minimum number of platforms is 2. which means if you are doing the project alone, you must have at least two platforms.
 +
<big>
 +
/* ioltest.c example
 +
#include "iol.h"
 +
#define senecaid1  1
 +
#define senecaid2  2
 +
#define ....
 +
#define PROGRAMMER senecaid1
 +
#if PROGRAMMER == senecaid1
 +
int main(){
 +
/* test written by senecaid1 */
 +
  return 0;
 +
}
 +
#elif PROGRAMMER == senecaid2
 +
int main(){
 +
/* test written by senecaid2 */
 +
  return 0;
 +
}
 +
#elif ......
 +
#else
 +
int main(){
 +
  /* common main for all */
 +
  return 0;
 +
}
 +
#endif
 +
</big>
  
 
=== Resources ===
 
=== Resources ===
* [svn://zenit.senecac.on.ca/oop344/trunk/05-Jun02 iof notes]
+
[[Hints for Using SVN to collaborate on school projects]]
  
 
== Week 5 - Oct 03 ==
 
== Week 5 - Oct 03 ==
Line 106: Line 154:
 
* sizeof
 
* sizeof
 
* bitwise operators
 
* bitwise operators
* [[Oop344_20102_-_iof_functions | Coding iof functions]] continued
+
* [[Iolib functions 20103 - OOP344 | Coding iolib functions (Q&A)]] continued
  
 
=== To Do ===
 
=== To Do ===
Line 112: Line 160:
 
=== Resources ===
 
=== Resources ===
  
== Week 6 - June 13 ==
+
== Week 6 - Oct 10 ==
  
 
=== This Week ===
 
=== This Week ===
* Quiz
 
 
* bitwise operators (continued)
 
* bitwise operators (continued)
 
* bit-fields
 
* bit-fields
Line 121: Line 168:
 
* Real Syntax of main()
 
* Real Syntax of main()
 
* Variable Arguments
 
* Variable Arguments
* Starting C++ and Main Project
+
* Starting C++ and Main Project (Encapsulating '''iolib''')
  
 
=== To Do ===
 
=== To Do ===
 +
* This weekend all wiki pages and contributions will be marked.
 +
*: make sure all the following are up-to-date
 +
*:# Your information in student list
 +
*:# Your personal page on wiki
 +
*:# Your project development page
 +
*:# Your blog
 
* Study for Quiz This week & next week
 
* Study for Quiz This week & next week
* Next Week Midterm Test
+
* Fill [https://zenit.senecac.on.ca/svn/oop344/trunk/TeamSelfMarking.ods The Team Self Evaluation From] on a computer, print and hand it in when doing the midterm test.
* Fill [svn://zenit.senecac.on.ca/oop344/trunk/TeamSelfMarking.ods The Team Self Evaluation From] on a computer and hand it in.
+
* write void printBits(unsigned int) shortest way possible.
 +
 
 
=== Resources ===
 
=== Resources ===
  
 
+
== Week 7 - Oct 17 ==
== Week 7 - Oct 10 ==
 
  
 
=== This Week ===
 
=== This Week ===
Line 141: Line 194:
  
 
=== To Do ===
 
=== To Do ===
* Start the main project by dividing tasks between team members
+
* Prj0.2 is due Sunday Oct 17 at 23:59 (in tags, prj0.2 branch)
 +
*: All '''iolib''' functions are due
 +
 
 
=== Resources ===
 
=== Resources ===
  
 +
== Week 8 - Oct 24 (Study Week) ==
 +
 +
=== This Week ===
 +
* [http://fsoss.senecac.on.ca/ FSOSS]
  
== Week 8 - Oct 17 (Study Week) ==
+
=== To Do ===
 +
 
 +
=== Resources ===
 +
 
 +
== Week 9 - Oct 31==
  
 
=== This Week ===
 
=== This Week ===
* OOP344 classes are in place on Tuesday and Wednesday (12:00 to 14:00, Room S2174 and if majority of the class stays, we can stay more)
+
* Midterm test on Tuesday  
* Test 1 will be on Wednesday
 
* Main Project Review
 
* Default Parameters
 
* Member Initialization
 
 
* Namespaces
 
* Namespaces
* Intro to Linked Lists ??
+
* Linked list
* [svn://zenit.senecac.on.ca/oop344/trunk/13-Jun29 Review Session Notes]
+
* File Streams
 +
 
 +
=== To Do ===
 +
 
 +
=== Resources ===
 +
* [http://tinyurl.com/344ProjTalk November 5th IRC Meeting Transcript]
 +
 
 +
== Week 10 - Nov 07==
 +
 
 +
=== This Week ===
 +
* File Streams
 +
* Binary Files
 +
=== To Do ===
 +
 
 +
=== Resources ===
 +
 
 +
== Week 11 - Nov 14==
 +
* Inline Functions
 +
* Templates
 +
** Functions
 +
** Classes
 +
=== This Week ===
 +
 
 +
=== To Do ===
 +
 
 +
=== Resources ===
 +
 
 +
== Week 12 - Nov 21==
 +
* References
 +
* Inheritance
 +
** Multiple
 +
** Virtual
 +
** Abstract classes (reviewed)
 +
 
 +
=== This Week ===
 +
 
 +
=== To Do ===
 +
<!--* Nov 28, 23:59, Prj 0.6 is due
 +
*: The full object oriented frame work of the application -->
  
 +
=== Resources ===
 +
 +
== Week 13 - Nov 28==
 +
=== This Week ===
 +
* Exception Handling
 +
* Casting Reviewed
 +
* Template Library
 +
* Test 2
 +
 +
=== To Do ===
 +
 +
=== Resources ===
 +
 +
== Week 14 - Dec 5==
 +
 +
=== This Week ===
 +
* Review
 +
* Exam preparation
 
=== To Do ===
 
=== To Do ===
* Start the main project by dividing tasks between team members
+
* Dec 12, 23:59, Prj 0.6 due.
* Create Mock-up classes and methods and commit it to the repository.
+
*: Final release of application is due.
  
 
=== Resources ===
 
=== Resources ===

Latest revision as of 07:06, 20 December 2010


OOP344 | Weekly Schedule | Student List | Teams | Project | Student Resources

OOP344C -- Weekly Schedule 20103

Week 1 - Sep 5

This Week

  • Introduction to Open Source development.
  • Collaboration Tools:
    • Wiki
    • Blog
    • IRC
    • Code Repository
  • 144/244 review

To Do

Due date: September 11th , 23:59 (11:59pm)

Form a team of 3 students and select a name for your team.

  1. Join the IRC by registering your nickname on freenode server and joining the #Seneca channel
    Additional channels of interest: #seneca-oop344 for 344 related dialog, and #seneca-social for Social (off-topic) dialog.
  2. Create a blog (if you don't already have one) and add your feed to Planet CDOT
  3. Create an account on this wiki, (please use your seneca email id)
  4. Add your name to the OOP344 Student List
  5. Download SVN and check out the OOP344 repo(svn://zenit.senecac.on.ca/oop344) to get the notes done in class (userid: "oop344", no password)

Resources

Week 2 - Sep 12

This Week

  • Preprocessor Directives
  • #include
  • #define (macros)
  • Multi-platform Coding
  • Conditional Compilation
  • Review of types in C
  • svn more detailed
  • Starting Basic IO library for the project

To Do

Resources

Week 3 - Sep 19

This Week

To Do

  • Starting next week, we will try to have one quiz per week.
  • Create svn directories for your development root under branches in your project repository (your team svn account) due Thu Sep 23 12:00 noon
  • Create test directories under your development root due Thu Sep 23 12:00 noon
note: use your seneca email id as root of your development branch
|-- Team svn account
  +--branches
  | +-- member id one  <-- this is your "development root"
  |   +-- testdir
  | +-- member id two
  |   +-- testdir
  | +-- member id three
  |   +-- testdir
  +--tags
  +--trunk
  • Add C text files to your repo's testdir and exercise Checkout, update, commit, etc... on it. due Thu Sep 23 12:00 noon
  • work with svn and familiarize yourself with it
  • Blog,
  • Get ready for the first quiz on what ever we work on till now

Resources

Week 4 - Sep 26

This Week

  • void pointers
  • intro to pointer to functions
  • developing io library continued

To Do

  1. Add a blank solution to trunk with the following files:
    1. iol.c(blank file)
    2. iol.h(blank header file with safeguard coded only)
    3. ioltest.c a file that includes iol.h and has conditional compilation set for each developers main() function for testing:
      see below for example.
  2. Each team member should branch the trunk into his/her workspace in branches
    Each team member must implement one platform and test it to make sure all the functions work properly
  3. Merge back the workspace to trunk to apply the changes you made.
    Merge, compile trunk, make sure everything works, then commit the trunk and branch it to next tag dir sequence.
    First one completing the platform should call the tag prj0.01, next one should call the tag 0.02 and so on....
    Last one completing the assigned platform should call the tag 0.1. ( will mark this tag the latest release after 0.1)
  4. Prj0.1 due on Wed 29 noon;
    Submit in tags prj0.1 branch (dir) of your team repository
    Simple iolib functions are due with your own test program to prove that functions work properly
    One platform must be committed per (and by) team member. (i.e. if you have four team members, you have four platforms to develop)
    Note that in MAC for function keys you should use combination of one of the ctrl, alt or apply keys with the function keys to get a unique key code.
    Minimum number of platforms is 2. which means if you are doing the project alone, you must have at least two platforms.

/* ioltest.c example
#include "iol.h"
#define senecaid1  1
#define senecaid2  2
#define ....
#define PROGRAMMER senecaid1
#if PROGRAMMER == senecaid1
int main(){
/* test written by senecaid1 */
  return 0;
}
#elif PROGRAMMER == senecaid2
int main(){
/* test written by senecaid2 */
  return 0;
}
#elif ......
#else
int main(){
  /* common main for all */
  return 0;
}
#endif

Resources

Hints for Using SVN to collaborate on school projects

Week 5 - Oct 03

This Week

  • Pointer to functions
  • unions
  • Enumeration
  • typedef
  • logical operators
  • conditional expression
  • sizeof
  • bitwise operators
  • Coding iolib functions (Q&A) continued

To Do

Resources

Week 6 - Oct 10

This Week

  • bitwise operators (continued)
  • bit-fields
  • Declaration Modifiers
  • Real Syntax of main()
  • Variable Arguments
  • Starting C++ and Main Project (Encapsulating iolib)

To Do

  • This weekend all wiki pages and contributions will be marked.
    make sure all the following are up-to-date
    1. Your information in student list
    2. Your personal page on wiki
    3. Your project development page
    4. Your blog
  • Study for Quiz This week & next week
  • Fill The Team Self Evaluation From on a computer, print and hand it in when doing the midterm test.
  • write void printBits(unsigned int) shortest way possible.

Resources

Week 7 - Oct 17

This Week

  • Quiz
  • Forward declaration
  • Abstract classes
  • Exceptions
  • Default Parameters
  • Main project review

To Do

  • Prj0.2 is due Sunday Oct 17 at 23:59 (in tags, prj0.2 branch)
    All iolib functions are due

Resources

Week 8 - Oct 24 (Study Week)

This Week

To Do

Resources

Week 9 - Oct 31

This Week

  • Midterm test on Tuesday
  • Namespaces
  • Linked list
  • File Streams

To Do

Resources

Week 10 - Nov 07

This Week

  • File Streams
  • Binary Files

To Do

Resources

Week 11 - Nov 14

  • Inline Functions
  • Templates
    • Functions
    • Classes

This Week

To Do

Resources

Week 12 - Nov 21

  • References
  • Inheritance
    • Multiple
    • Virtual
    • Abstract classes (reviewed)

This Week

To Do

Resources

Week 13 - Nov 28

This Week

  • Exception Handling
  • Casting Reviewed
  • Template Library
  • Test 2

To Do

Resources

Week 14 - Dec 5

This Week

  • Review
  • Exam preparation

To Do

  • Dec 12, 23:59, Prj 0.6 due.
    Final release of application is due.

Resources