OOP344 20093
Object Oriented Programming II Using C++
OOP344 20093 - OOP344 Student List 20093 - OOP344 Teams 20093 - OOP344 Assignment One 20093 - OOP344 Assignment Two 20093 - OOP344 IRC Schedules 20093
- OOP344 Student Resources 20093
Please help make this page resourceful for all OOP344 students to use!
OOP344 -- Object Oriented Programming II Using C++
Subject Description and Course Outcomes
- Please visit the School Of Computer Studies website for the detailed description of the subject
The Project
The project for this semester is a multiplatform text based, Text Editor.
The project is divided into 2 main parts.
Individual work
Done individually! Each student must complete and hand her/his own work, no collaboration permitted for this part.
The assignment can be found here.
- Console Input Output Library (ciol)
- Basic Console Input Output (io):
This part is written in C language. It is responsible for handling basic input output features needed to interact with the console - Line and Selection Editor:
This part is written in C Language and only uses bcio routines, to interact with the console.- Line Editor
This is responsible for making a full edit on a single line of text and also provide basis for a multi-line text editor. - Selection Editor
It provides means (A Checkbox) to create selection lists or Yes/No queries.
- Line Editor
- Basic Console Input Output (io):
Open Source
This part will be done collaboratively in groups of 4 - 8 students under a simulated open source model
- Basic Encapsulating Classes (bec)
This part is written in C++ and encapsulates the io routines into classes - The Text Editor
this part is written in C++ and uses the bec classes to do full text edit.
Grading
To be completed
Resources
- How To edit Wiki pages
- Subversion (SVN)
- SVN book at red-bean.com or download the PDF from here.
- Mac Lab Available in 2108 as well as in the Computing Commons*
Examples
svn://zenit.senecac.on.ca/oop344
Archives
Class notes, samples, tests, ... since 2001
Or checkout svn://zenit.senecac.on.ca/oop344/tags
OOP344 -- Weekly Schedule
Week 2 - Sep 13
This Week
C, a closer look to: define, include, macros, operators, statement evaluation, return value of main, return value of printf and scanf, Conditional Compilation
Starting assignment one
To Do
Due date: Sep -17 - 2009 , 23:59 (11:59pm)
- Add your name to the OOP344 Student List
- Join the IRC by registering your nickname on freenode server and joining the #Seneca channel
- Create a blog (if you don't already have one) and add your feed to Planet CDOT
- Challenge: write this function without using any library functions; void GetInt(char *strint, int val);
this function gets an integer value and converts it to a string ("strint") - Challenge: Modify io_display function to the shortest code possible. Get the sourceHERE.
Week 3 - Sep 20
This Week
Starting Assignment one, starting the project
Pointers, pointer arithmetic, pointer to pointer to....,
To Do
- Complete last week's "To Do"s.
- Form the teams and add your team to the wiki
- Teams with less than 4 members and more than 8 are not acceptable.
- Merge or divide teams if necessary to adjust the number of team members.
- Teams' member selection must be finalized by Oct 3rd.
- Those without a team, join the teams with least number of members.
- Select a team leader who is going to be the contact person for the team.
- Challenge 3: using what we learned so far (logical operators, and pointers) write the io_display function in ONE line only(Due Sunday 23:59):
void io_display(const char *str, int row, int col, int len){ yada yada yada; }
Week 4 - Sep 27
Topics for this week
- #undef, casting, unsigned variables, multi-dimensional arrays and their pointer notation
- pointers to functions, pointers to pointers to pointers to...
- typedef, enum
To Do
- Complete last week's "To Do"s.
- Finalize Teams by end of the week (Sat Oct 3rd)
- If your team has less than 4 members, either try to merge your team to another team or break up your team and join other teams.
- After finalizing your members make sure your team wiki page is created and includes the list of all team members and their information
- Select and identify a first and second contact person for your group.
Week 5 - Oct 04
This Week
- Quiz 2
- Bits, bitwise operators
- a jump ahead and review!, C++, Inheritance, polymorphism, encapsulation
- default parameters, forward declaration, initialization vs. setting, virtual methods, pure virtual methods, abstract base classes
To Do
- Complete last week's "To Do"s, if not done already!
- Copy as1tester.c and run the test with your ciol.c and ciol.h
- A quick tutorial for SVN: Source Control in Ten Minutes
- Read first four chapters of the SVN book.
- Download SVN and install it on your PC from subversion.tigris.org
- windows: Tortoise SVN
- Linux (Fedora:
yum install subversion
) - MAC: already in Apple's Developer Tools
Week 6 - Oct 11
This Week
Dynamic Memory allocation
To do Dynamic Memory Allocation you need:
- Pointer of the type of the memory we are allocating. Ex: int* p;
- If the pointer is already pointing at another already allocated memory, deallocate it.
- Allocate memory and set the pointer to its address.
- Use the memory.....
- When you are done, deallocate it. Ex: delete [ ] p;
To Do
- Assignment one is due Thursday Oct 15th, 23:59
- Complete past weeks' "To Do"s
- A quick tutorial for SVN: Source Control in Ten Minutes
- Get ready for a quiz on Dynamic memory allocation and SVN next week.
Week 7 - Oct18
This Week
- passing arguments
- Quiz on DMA and SVN
- Assigning SVN Accounts
- IRC Meetings with Teams.
Topics
- Linked Lists
- Declaration Modifiers
- Passing arguments as command line arguments
- Variable argument list
To Do
- Upload your sources to SVN
- Do Test Checkouts, builds and commits.
- For 5%, copy constructor for the DsStack class in the notes.
- For your own good, make the DsStack class in the notes efficient....
- svn://zenit.senecac.on.ca/oop344_093svn/notes/27A-Oct22
Week 8 - Oct 25
This Week
- Study break
- IRC classes
Week 9 - Nov 1
This Week
Test One
Test one on Monday and Tuesday (Nov 2 and Nov 3)
Topics
- Linked Lists (continued)
- doubly-linked
- trees (introduced)
Week 10 - Nov 8
This Week
Topics
- File Streams
- what are cin and cout
- fstream, ifstream, ofstream
- Binary File Access
- read, write, append, truncate (ios::in, ios::out, ios::app, ios::ate, ios::trunc, ios::binary)
Week 11 - Nov 15
This Week
Topics
- Binary File Access (continued)
- seeking and getting the current location in a file
- index files, hashes, searches
- inline functions
Week 12 - Nov 22
This Week
Topics
- Templates
- function templates
- class templates
- Statics
- Declaration Modifiers
- methods
- extern
- Quiz
Week 13 - Nov 29
This Week
Test Two
Test Two, Monday and Tuesday (Nov 30 and Dec 1)
Topics
- multiple inheritance
- Base classes
- virtual base classes
- abstract base classes (revisited)
- exception handling
Week 14 - Dec 6
This Week
Exam
Exam on Thursday Dec, 10th, room T4040 14:00
Topics
- casting and run time information
- standard template library (introduced)
- review