Difference between revisions of "BTP300"

From CDOT Wiki
Jump to: navigation, search
(The Project)
 
(65 intermediate revisions by 11 users not shown)
Line 1: Line 1:
{{BTP300 Index | 20113}}
+
<!-- {{BTP300 Index | 20113}} -->
  
Please help make this page resourceful for all BTP300 students to use!
+
'''Please help make this page resourceful for all BTP300 students to use! (Dr. Chris Szalwinski, Fall 2012)'''
  
= Object-Oriented Software Development I - C++ =
+
== Object-Oriented Software Development I - C++ ==
*This course continues the study of object-oriented programming, which started with BTP200. This course covers details of the C++ language at the intermediate level.  
+
This course continues the study of object-oriented programming, which started with BTP200. It covers the details of the C++ language at the intermediate level.  
 
   
 
   
=== Subject Description and Course Outcome ===
+
*'''Course Description and Learning Outcomes'''
* [https://scs.senecac.on.ca/course/btp300 BTP300]
+
** [https://scs.senecac.on.ca/course/btp300 BTP300]
=== External Links ===
+
*'''External Links'''
* [https://cs.senecac.on.ca/~btp300/pages/content/index.html Course Web Site – Lecture Notes]
+
** [https://cs.senecac.on.ca/~btp300/pages/content/index.html Course Web Site – Lecture Notes]
* [https://cs.senecac.on.ca/~btp300/pages/timeline.html Course Web Site – Timeline]
+
** [https://cs.senecac.on.ca/~btp300/pages/timeline.html Course Web Site – Timeline]
 +
*'''Instructor:''' Dr. Peter Liu (Fall 2012)
  
 
== Wiki-based Learning ==
 
== Wiki-based Learning ==
 +
*'''Purpose''' <br>
 +
**Collaboration is a growing trend in today's practice of software development. You may visit Wikipedia to read about [http://en.wikipedia.org/wiki/Ward_Cunningham Ward Cunningham] and collaboration in [http://en.wikipedia.org/wiki/Extreme_programming agile software development]. IBM has developed a wiki-based product for [http://www.itworldcanada.com/a/IT-Workplace/16508059-35d0-424f-a3b2-4d5e17840058.html corporate learning]. During this semester, you will use a wiki to learn how to '''collaborate''' with your fellow classmates when you are building up your C++ programming skills in this course. The students will take an active role in creating useful contents. The professor will play the role of an observer and a facilitator.
 +
*'''Benefits'''
 +
**You will be better prepared to enter the IT workforce and pursue courses on open source software development such as [http://zenit.senecac.on.ca/wiki/index.php/OSD600_Fall_2008 OSD600] or [http://zenit.senecac.on.ca/wiki/index.php/DPS909_Fall_2008 DPS908].
 +
**You are expected to use this wiki when you start working on the course project as a team. In order to develop professional presentation skills, please pay attention to  clarity of expression and spelling errors.
 +
*'''Guidelines of Community Practice'''<br>
 +
**The key element in fostering a spirit of collaboration is that everyone is a '''contributor '''to the learning community. We will respect each other and interact with each other in a professional way. You will discover your ''artistic potentials'' when you use your favorite formats and styles in creating wiki pages.
  
=== Purpose ===
+
== [[BTP300 To-Do List Fall 2012 | Weekly To-Do List]] ==
 +
* Week 3 (Fall 2013)
 +
**'''THEME OF THIS WEEK: SENECA IS COOL AND THE POSSIBILITIES ARE ENDLESS! (posted by the newly famous Jodie Carleton)'''
 +
*Week 11? (Fall 2013)
  
Collaboration is a growing trend in today's practice of software development.
+
*'''Check out this Link for some help on Linked Lists! '''(posted by Jake Deacon) [http://www.codeplaza.org/2013/11/unsorted-linear-linked-list-c-program.html Linked Lists 1] [http://www.codeplaza.org/2013/11/linked-list-operations-c-program.html Linked Lists 2]
You may visit Wikipedia to read about [http://en.wikipedia.org/wiki/Ward_Cunningham Ward Cunningham] and collaboration in [http://en.wikipedia.org/wiki/Extreme_programming agile software development]. IBM has developed a wiki-based product for [http://www.itworldcanada.com/a/IT-Workplace/16508059-35d0-424f-a3b2-4d5e17840058.html corporate learning]. During this semester, you will use a wiki to learn how to '''collaborate''' with your fellow classmates when you are building up your C++ programming skills in this course. The students will take an active role in creating useful contents. The professor will play the role of an observer and a facilitator.
+
* [[Practice for Test 1 (Fall 2013) |Practice for Test 1]]
 +
* [[Practice for Test 2 (Fall 2013) |Practice for Test 2]]
 +
* [[Preparation for Final Exam (Fall 2013) | Preparation for Final Exam]]
 +
** [[More Practice Problems (Fall 2013) | More Practice Problems (requested by a few students)]]
 +
* '''[[Looking into the Future - Parallel Programming]]'''
 +
* '''[[Looking into the Future - Big Data Analytics]]'''
  
=== Benefits ===
+
== The Course Project  ==
 +
When you work on the BTP300 assignments, you will tackle complex programming problems under demanding due dates. You can support each other by posting your questions, answers and comments on the following links. You should try your best to resolve a programming issue within your team first before you post it up here. Please do your own homework before you ask for help or clarification. Take a look at [http://www.eclipse.org/forums/index.php/f/89/ Eclipse Community Forums] and see how Eclipse developers and users conduct Q & A. Note: DO NOT POST '''general''' C++/C programming questions here.
 +
 
 +
=== [[BTP300A Teams (Fall 2013) ]] ===
 +
=== [[BTP300B Teams (Fall 2013) ]] ===
 +
* [[BTP300 Teams Fall 2012 | Teams Fall 2012]]
 +
 
 +
=== [[ BTP300A A2 Teams Fall 2013 ]] ===
 +
=== [[ BTP300B A2 Teams Fall 2013 ]] ===
 +
 
 +
=== [[ BTP300 Practical Tips 2013 | Practical Guidelines (Fall 2013) ]] ===
 +
* [[BTP300 Practical Tips 2012 | Practical Guidelines Fall 2012]]
  
* You will be better prepared to enter the IT workforce and pursue courses on open source software development such as [http://zenit.senecac.on.ca/wiki/index.php/OSD600_Fall_2008 OSD600] or [http://zenit.senecac.on.ca/wiki/index.php/DPS909_Fall_2008 DPS908].
+
=== [[ Assignment 1 (Fall 2013) Q & A ]] ===
 +
*[[Assignment 1: Q & A | archive (Fall 2012)]]
  
* You are expected to use this wiki when you start working on the course project as a team. In order to develop professional presentation skills, please pay attention to  clarity of expression and spelling errors.
+
=== [[ Assignment 2 (Fall 2013) Q & A]] ===
 +
* '''Evaluation Scheme of Assignment 2''' [https://scs.senecac.on.ca/~peter.liu/btp300/EvaluationScheme_A2_F2013.doc]
 +
* [[Assignment_2_(Fall_2013)_Q_%26_A| How to setup SVN ]]
 +
* [[SVN Branches for Assignment 2]] (Alek)
 +
* Merging From Your Branch Into the Trunk
 +
**'''[[Media:SVN_Merge.pdf|Step by Step Instructions ]] (Alek)'''
 +
* [[Assignment 2 (Release 0.1): Q & A | archive - A2 R0.1 (Fall 2012)]]
 +
* [[Assignment 2 (Release 0.2): Q & A | archive - A2 R0.2 (Fall 2012)]]
 +
* [[Assignment 2 (Release 0.3): Q & A | archive - A2 R0.3 (Fall 2012)]]
  
=== Guidelines of Community Practice ===
+
=== [[Assignment 3i (Fall 2013) Q & A]] ===
 +
*[[Assignment 3i: Q & A | archive (Fall 2012)]]
  
The key ingredient in fostering a spirit of collaboration is that everyone is a
 
CONTRIBUTOR to the learning community. We will respect each other and interact with
 
each other in a professional way. You will discover your ''artistic potentials'' when you
 
use your favorite formats and styles in creating wiki pages.
 
  
== The Course Project  ==
+
== Midterms Q & A ==
Please post your questions, answers and comments on the following links.
+
*[[Test 1]]
 +
 
 +
== Learning C++/C Programming ==
 +
You may develop your '''research skills''' by creating useful topics and contents here.
 +
* Iterators in C++ [http://www.oreillynet.com/pub/a/network/2005/10/18/what-is-iterator-in-c-plus-plus.html]
 +
* [[Virtual Methods and Inheritance | Virtual Destructors and Inheritance]]
 +
* [[C++/C Q & A on stackoverlfow]]
 +
* [[C/C++ FAQ]]
 +
* C++ Documentation [http://www.cplusplus.com/]
 +
*How does the compilation, linking process work?[http://stackoverflow.com/questions/6264249/how-does-the-compilation-linking-process-work]
 +
* Visual C++, Borland C++, and other compilers in one IDE
 +
:: If you like to test compiling your codes with different compilers but don't border to install and run them individually, some IDEs are quite handy. E.g. Code::Blocks [http://www.codeblocks.org/] (Other IDEs many also have this function). You can choose a specific compiler for each build in the IDE itself.
 +
 
 +
* Is sizeof in C++ evaluated at compilation time or run time? [http://stackoverflow.com/questions/2615203/is-sizeof-in-c-evaluated-at-compilation-time-or-run-time]
 +
 
 +
* ptrdiff_t is supposed to be used when doing '''pointer subtraction'''. But in this example,(demo program "pointerSubtraction.cpp" on matrix.senecac.on.ca) an int will work just fine storing the subtraction result. Reason:[http://www.cplusplus.com/reference/cstddef/ptrdiff_t/] (Yiqi Liu)
 +
 
 +
* The Function Pointer Tutorials [http://www.newty.de/fpt/]
 +
* Function pointer (Wikipedia) [http://en.wikipedia.org/wiki/Function_pointer]
 +
* C++ Vector class template [http://www.cplusplus.com/reference/vector/vector/]
 +
* C++ List class template (examples) [http://cs.smu.ca/~porter/csc/ref/stl/cont_list.html#sample_programs ]
 +
 
 +
== Workshops Q & A ==
 +
*[[Workshop 1]]
  
== [[Assignment 1: Q &A ]] ==
+
*[[Workshop 2]]
== [[Assignment 2 (Release 0.1): Q & A]] ==
 
== [[Assignment 2 (Release 0.2): Q & A]] ==
 
== [[Assignment 2 (Release 0.3): Q & A]] ==
 
== [[Assignment 3: Q & A]] ==
 
== [[Assignment 4: Q & A]] ==
 
  
== Assignment Submission Requirements ==
+
*[[Workshop 5]]
=== Stage 1 ===
 
Submit your assignment to [https://open.senecac.on.ca/cms/course/view.php?id=267 Moodle] as per the instructions on the assignment specifications
 
=== Stages 2 through 4 ===
 
When ready to submit your final project:
 
# Finalize your modifications in trunk.
 
# Create a directory in trunk called: '''"SubmissionLogs"'''
 
# For each member of the team create a text file named as '''"YourSenecaEmailId.txt"''' in the '''"SubmissionLogs"''' directory. In this text file, in a point form, specify in detail, all the tasks you have done for the group project.
 
# Branch (copy) the whole project including the SubmissionLogs directory and its text files into tags directory under '''"prj1.0"'''.
 
# If final adjustments are needed after these steps, repeat everything from step one but branch the trunk into a new directory in tags as '''prj1.1, prj1.2''', etc.
 
#:(for marking purposes, your instructor will consider your last revision as your submission)
 
  
 
== Resources ==
 
== Resources ==
Line 62: Line 103:
 
* [http://tortoisesvn.net/downloads Download Page of TortoiseSVN]
 
* [http://tortoisesvn.net/downloads Download Page of TortoiseSVN]
 
* [http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html TortoiseSVN Documentation]
 
* [http://tortoisesvn.net/docs/release/TortoiseSVN_en/index.html TortoiseSVN Documentation]
* [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].
 
<!--
 
<!--
 
* [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#The_Basics_of_IRC IRC Basics]
 
* [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#The_Basics_of_IRC IRC Basics]
Line 68: Line 109:
 
* [http://irchelp.org/irchelp/irctutorial.html IRC Tutorial]
 
* [http://irchelp.org/irchelp/irctutorial.html IRC Tutorial]
 
* [http://ankhsvn.open.collab.net/ AnkhSVN - Free Visual Studio SVN Integration Alternative To VisualSVN]
 
* [http://ankhsvn.open.collab.net/ AnkhSVN - Free Visual Studio SVN Integration Alternative To VisualSVN]
 
== Examples and In-Class Notes==
 
  
 
== Archives ==
 
== Archives ==
  
 
[[BTP300 Fall 2011]]
 
[[BTP300 Fall 2011]]

Latest revision as of 20:31, 5 December 2013


Please help make this page resourceful for all BTP300 students to use! (Dr. Chris Szalwinski, Fall 2012)

Object-Oriented Software Development I - C++

This course continues the study of object-oriented programming, which started with BTP200. It covers the details of the C++ language at the intermediate level.

Wiki-based Learning

  • Purpose
    • Collaboration is a growing trend in today's practice of software development. You may visit Wikipedia to read about Ward Cunningham and collaboration in agile software development. IBM has developed a wiki-based product for corporate learning. During this semester, you will use a wiki to learn how to collaborate with your fellow classmates when you are building up your C++ programming skills in this course. The students will take an active role in creating useful contents. The professor will play the role of an observer and a facilitator.
  • Benefits
    • You will be better prepared to enter the IT workforce and pursue courses on open source software development such as OSD600 or DPS908.
    • You are expected to use this wiki when you start working on the course project as a team. In order to develop professional presentation skills, please pay attention to clarity of expression and spelling errors.
  • Guidelines of Community Practice
    • The key element in fostering a spirit of collaboration is that everyone is a contributor to the learning community. We will respect each other and interact with each other in a professional way. You will discover your artistic potentials when you use your favorite formats and styles in creating wiki pages.

Weekly To-Do List

  • Week 3 (Fall 2013)
    • THEME OF THIS WEEK: SENECA IS COOL AND THE POSSIBILITIES ARE ENDLESS! (posted by the newly famous Jodie Carleton)
  • Week 11? (Fall 2013)

The Course Project

When you work on the BTP300 assignments, you will tackle complex programming problems under demanding due dates. You can support each other by posting your questions, answers and comments on the following links. You should try your best to resolve a programming issue within your team first before you post it up here. Please do your own homework before you ask for help or clarification. Take a look at Eclipse Community Forums and see how Eclipse developers and users conduct Q & A. Note: DO NOT POST general C++/C programming questions here.

BTP300A Teams (Fall 2013)

BTP300B Teams (Fall 2013)

BTP300A A2 Teams Fall 2013

BTP300B A2 Teams Fall 2013

Practical Guidelines (Fall 2013)

Assignment 1 (Fall 2013) Q & A

Assignment 2 (Fall 2013) Q & A

Assignment 3i (Fall 2013) Q & A


Midterms Q & A

Learning C++/C Programming

You may develop your research skills by creating useful topics and contents here.

If you like to test compiling your codes with different compilers but don't border to install and run them individually, some IDEs are quite handy. E.g. Code::Blocks [5] (Other IDEs many also have this function). You can choose a specific compiler for each build in the IDE itself.
  • Is sizeof in C++ evaluated at compilation time or run time? [6]
  • ptrdiff_t is supposed to be used when doing pointer subtraction. But in this example,(demo program "pointerSubtraction.cpp" on matrix.senecac.on.ca) an int will work just fine storing the subtraction result. Reason:[7] (Yiqi Liu)
  • The Function Pointer Tutorials [8]
  • Function pointer (Wikipedia) [9]
  • C++ Vector class template [10]
  • C++ List class template (examples) [11]

Workshops Q & A

Resources

Archives

BTP300 Fall 2011