Difference between revisions of "BTP300"

From CDOT Wiki
Jump to: navigation, search
(Object-Oriented Programming I - C++)
 
(75 intermediate revisions by 12 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)
  
== The Project  ==
+
== Wiki-based Learning ==
The course project is a four-stage assignment to build a game using the framework as the starting point.  Each team consists of up to 4 members. Membership is subject to instructor approval and is open to modification until the end of the week of the drop date for the course.  The first stage of the assignment augments the console library that supports the course with a line-editing facility. This stage is completed individually.  The next three stages are team stages. Each member is responsible for one aspect of each stage.  Details are on the Project Requirements page.
+
*'''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.
  
== Evaluation ==
+
== [[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)
  
* Assignment 30%
+
*'''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]
** Individual Work - 50%
+
* [[Practice for Test 1 (Fall 2013) |Practice for Test 1]]
** Group Work - 50%
+
* [[Practice for Test 2 (Fall 2013) |Practice for Test 2]]
** Total (Individual + Group) - 100%
+
* [[Preparation for Final Exam (Fall 2013) | Preparation for Final Exam]]
* Workshops 10%
+
** [[More Practice Problems (Fall 2013) | More Practice Problems (requested by a few students)]]
* Test 30%
+
* '''[[Looking into the Future - Parallel Programming]]'''
* Exam 30%
+
* '''[[Looking into the Future - Big Data Analytics]]'''
== Assignment Submission Requirements ==
+
 
=== Stage 1 ===
+
== The Course Project  ==
Submit your assignment to Moodle as per the instructions on the assignment specifications
+
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.
=== Stages 2 through 4 ===
+
 
When ready to submit your final project:
+
=== [[BTP300A Teams (Fall 2013) ]] ===
# Finalize your modifications in trunk.
+
=== [[BTP300B Teams (Fall 2013) ]] ===
# Create a directory in trunk called: '''"SubmissionLogs"'''
+
* [[BTP300 Teams Fall 2012 | Teams Fall 2012]]
# 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"'''.
+
=== [[ BTP300A A2 Teams Fall 2013 ]] ===
# 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.
+
=== [[ BTP300B A2 Teams Fall 2013 ]] ===
#:(for marking purposes, your instructor will consider your last revision as your submission)
+
 
 +
=== [[ BTP300 Practical Tips 2013 | Practical Guidelines (Fall 2013) ]] ===
 +
* [[BTP300 Practical Tips 2012 | Practical Guidelines Fall 2012]]
 +
 
 +
=== [[ Assignment 1 (Fall 2013) Q & A ]] ===
 +
*[[Assignment 1: Q & A | archive (Fall 2012)]]
 +
 
 +
=== [[ 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)]]
 +
 
 +
=== [[Assignment 3i (Fall 2013) Q & A]] ===
 +
*[[Assignment 3i: Q & A | archive (Fall 2012)]]
 +
 
 +
 
 +
== Midterms Q & A ==
 +
*[[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]]
 +
 
 +
*[[Workshop 2]]
 +
 
 +
*[[Workshop 5]]
  
 
== Resources ==
 
== Resources ==
Line 44: 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 51: Line 110:
 
* [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]]

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