Changes

Jump to: navigation, search

OOP344

2,387 bytes removed, 15:58, 10 April 2014
OOP344 -- Object Oriented Programming II Using C++: Added exam topics section
 
 
<big><big>Object Oriented Programming II Using C++</big></big> with introduction to open source
{{OOP344 IndexExtended | 20141}}
Please help make this page resourceful for all OOP344 students to use!
 
Short link for current page: [https://bit.ly/oop344 bit.ly/oop344]
= OOP344 -- Object Oriented Programming II Using C++ =
== Exam Topics ==
* The topics on the exam are listed in this [https://docs.google.com/document/d/1r2l-ErNeT6Sul7X8OiOD_GknA48BIuy7i931TO0UifE/edit?usp=sharing google doc]
* While studying for the exam, it is most efficient to spend your time '''only''' on what is listed
* Study other topics only when you've exhausted the listed topics
* The bitwise operations workshop is a good exercise for bit operations
== [httpsIRC ==* Server://scsirc.senecacfreenode.on.ca/course/net* Channel: #seneca-oop344 Subject Description and Course Outcomes] ==
== Professors ==* Please visit the Hasan Kamal-Al-Deen** Skype: hasan.kamal.al.deen** IRC: northWind, northAway, northBot ('''IRC Bot''')** Website: [https://scs.senecac.on.ca School Of Computer Studies/~hasan.kamal-al-deen https://scs.senecac.on.ca/~hasan.kamal-al-deen] website for the** Schedule: [https://scs.senecac.on.ca/course~hasan.kamal-al-deen/?q=schedule https://scs.senecac.on.ca/~hasan.kamal-al-deen/oop344 detailed description?q=schedule] of the subject** Office Hours:*** Tuesday: 11:40am - 1:25pm*** Thursday: 1:30pm - 3:15pm
== The Project (under construction) ==* [[Greg Blair]]** Email: [mailto:john.blair@senecacollege.ca john.blair@senecacollege.ca]
The project for this semester is a multiplatform text based<!--*: IRC: server: irc.freenode.net, Text Editor and is done using opensource concepts<br />channel: #seneca-oop344* [[user:CloudScorpion|Joseph Hughes]]
The project is divided into 2 main parts* [[user:Fardad|Fardad Soleimanloo]] *: Online office status: '''''(OFFLINE)'''''*:[https://bbb. The Basic Input Output Librarysenecacollege.ca BigBlueButton], (login using your seneca userid and password)<br /> meeting name: OOP344 Online Office, password: oop344 *:: <small>''you must have headset OR headphones and Main Applicationmicrophone for voice chat, you CAN NOT use computer speakers for voice chat because of</small>*: Skype: sosfardad-->
=== Basic Input Output Library =Examples and In-class Notes==* A/C Section - inclass notes: [https://github.com/Seneca-OOP344/20141notes.git git@github.com:Seneca-OOP344/20141notes.git]* B Section - inclass notes: [https://github.com/CaptGreg/SenecaOOP344-attic.git git@github.com:CaptGreg/SenecaOOP344-attic.git]
* 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.- OLD STUFF
=== Main Applicaton ===svn://zenit.senecac.on.ca/oop344 (userid: oop344, no password) <--- You need to install SVN to open the link. <br/>--><!--Link was not working. link updated.-->
This part will be done collaboratively in groups of 4 - 8 students under a simulated open source model== [https://scs.senecac.on.ca/course/oop344 Subject Description and Course Outcomes] ==
* Basic Encapsulating Classes <br Please visit the [https://> This part is written in C++ and encapsulates scs.senecac.on.ca School Of Computer Studies] website for the '''''io''''' routines into classes[https://scs.senecac.on.ca/course/oop344 detailed description] of the subject == The Project ==* TBA == Exam Schedule ==* The Application<br />this part is written in C++ and uses the "Basic Encapsulating Classes" classes to do interact with the user.TBA
== Grading ==
* Tests** Test 1 10%** Test 2 1030%** Quizzes 10%* Project** IO Library 330%** Application 1730%** Contribution Bonus 10%(till maximum project mark) for completing all [https://scs.senecac.on.ca/~btp300/pages/workshops/index.html workshops]
* Final Exam 40%
== Resources ==
* Class notes can be found here: svn[https://zenitcs.senecac.on.ca/oop344~btp300/pages/content/index.html Object-Oriented Programming I - C++]* [http://teachingopensource.com/index.php/Textbook_Release_0.8 Practical Open Source Software Exploration]
* [http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page How To edit Wiki pages]
* [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet How To edit Wiki Cheatsheet]
* [http://www.possibility.com/Cpp/CppCodingStandard.html C++ Coding Standard]
* Mac Lab Available in 2108 as well as in the Computing Commons*
* [http://zenit.senecac.on.ca/wiki/index.php/OOP344_Student_Resources#The_Basics_of_IRC IRC Basics]
* [http://irchelp.org/irchelp/irctutorial.html IRC Tutorial]
* How to Install [http://wiki.tryphon.eu/how_to_install_xchat XChat] ([http://www.silverex.org/download/ XChat 2 <free>])
* [http://colloquy.info/downloads.html Colloquy] an IRC Client for Mac
* [http://en.cppreference.com/w/cpp/language/operator_precedence C++ Operator Precedence] C++ Operator Precedence
* [https://github.com/languages/C%2B%2B Open Source C++ projects on GitHub] For those who wants to try their knowledge, you can participate in Open Source C++ Projects on GitHub. Just click the link, choose project for you and start working on it, as simple as that.
* [http://www.sgi.com/tech/stl/ Standard Template Library Programmer's Guide]
 
<!-- OLD stuff: to be updated
* [[initial Steps to succeed in OOP344]]
* Class notes can be found here: svn://zenit.senecac.on.ca/oop344 (userid: oop344, no password) <--- You need to install SVN to open the link.
* [http://subversion.tigris.org/ Subversion (SVN)]
* [http://subversion.apache.org/packages.html Subversion (SVN) Binary Packages]
* [http://tortoisesvn.net/downloads Download Page of TortoiseSVN]
* [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].* Mac Lab Available in 2108 as well as in the Computing Commons*Using [[SVN for School Projects]]*[http://zenitwww.senecacrapidsvn.on.caorg/download/wikirelease/index0.php12/OOP344_Student_Resources#Create_an_IRC_account_and_login_RapidSVN-0.12.28in_Windows0-8051.29Create an IRC account and login (in Windows)dmg RapidSVN]a SVN Client for Mac* [http://irchelpankhsvn.open.orgcollab.net/irchelp/irctutorial.html IRC TutorialAnkhSVN - Free Visual Studio SVN Integration Alternative To VisualSVN]
== Examples ==
svn://zenit.senecac.on.ca/oop344/trunk-->
== Archives ==
<!-- OLD REPO
checkout svn://zenit.senecac.on.ca/oop344/tags for all the notes since 2001 (Userid: oop344 | No password) <--- You need to install SVN to open the link.
-->
<br />
===Inclass Notes===
*[https://github.com/Seneca-OOP344/fardad-archive.git git@github.com:Seneca-OOP344/fardad-archive.git]
===Weekly Schedules===
*[[https://cs.senecac.on.ca/~fardad.soleimanloo/oop344/notes/OLD/ Class notes, samples, tests, ... 2001 OOP344 20093 | OOP344 -> 200920093]]<br />checkout svn://zenit.senecac.on.ca/oop344/tags for all the notes since 2001*[[OOP344 - 20101]]<br />*[[OOP344 20093Weekly Schedule 20102 | OOP344 - 20102]]<br />*[[OOP344 Weekly Schedule 20103 | OOP344 - 2010120103]]<br />= OOP344 -- *[[Weekly Schedule = == Week 1 20111 - OOP344 | OOP344 - Jan 10 == === This Week === * Introduction to Open Source development.* Collaboration Tools:** Wiki** Blog** IRC** Code Repository* 14420111]]<br /244 review === To Do === Due date: Jan 12, 2010 , 23:59 (11:59pm)>* Add your name to the [[Weekly Schedule 20112 - OOP344 Student List| OOP344 - 20112]]<br />* Join the IRC by [http://www.wikihow.com/Register[Weekly Schedule 20113 -aOOP344 | OOP344 -User-Name-on-Freenode registering your nickname on freenode20113]] 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 ListWeekly Schedule 20121 - OOP344 |add your feedOOP344 - 20121]] to[http:<br //zenit.senecac.on.ca/~chris.tyler/planet/ Planet CDOT]>* Download [http://subversion.tigris.org/ SVN[Weekly Schedule 20123 - OOP344 | OOP344 - 20123]] and check out the OOP344 repo(svn:<br //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 StudioWeekly Schedule 20131 - OOP344 | OOP344 - 20131]*[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:<br //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 [[Weekly Schedule 20132 - OOP344 IRC Schedules | IRC meetingOOP344 - 20132]] with Fardad on #seneca-oop344 (Remember, for the first meeting all team members should be present)<br />* 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++[Weekly Schedule 20133 - OOP344 | OOP344 - Memory and Pointers20133]== 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) <br /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 [[Weekly Schedule 20141 - Feb 7 ===== This Week === * pointer to function* sizeof** sizeof structures* typedef* union* control flow** break, only in switch** continue :OOP344 | OOP344 -(** goto -:(* joining expressions* conditional expression (x = a20141]]<br/>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

Navigation menu