Tuesday, February 9, 2010

OOP344 - Object Oriented Programing Using C++ and an introduction to Open Source

First semester of trying open source on OOP344 is passed with some interesting results;

By changing the subject to an open source format;
  • Students Understood the material better and could get help much easier by having the concept of collaboration as one of the bases of their work.
  • I covered the material much faster but also did it more effectively so I actually had a week of extra time to review and re-touch the complex aspects of C++ language and OOP.
  • Students not only learnt what they were supposed to, with respect to object orientation and complex programming, but also learnt how to do this in groups using open source concepts and effectively boost each other's strengths and make up for each other's weaknesses.
  • Students became aware of "Open Source" !!!
  • Students lost the fear of getting involve in programs with huge source code.
Future results:
  • I am hoping that this will attract the students, to pick our (Seneca) Open Source subjects in future.
  • Lots of time will be saved in open source subjects in future, by skipping lectures about IRC, wiki, code repositories, and other open source collaborative tools.

I only had one problem; I did not have enough time to make the students comfortable with the "unusualness" of open source and just as they became used to the idea, the semester was over.
By "unusualness" of open source, I mean to reward sharing instead of penalizing it, to learn to work in a community rather than behind closed doors and to gain by giving.

To overcome the lack of time, this semester, I started the open concept from the very first day; I started the use of wiki, blogging, IRC, and code repositories from day one.

I am hoping that by doing this, by the time we get to complex coding, (in mid semester) the students can think about how to code rather than how to commit the code to svn!

This, (introduction to open source) I hope, will pave the way for the student to participate more easily in real open source subjects and communities in Seneca like Openoffce.org, Mozilla, Fedora, etc...


  1. Another great thing about this revised OOP344 is the inclusion of SVN. Getting students acquainted with a version control system earlier in the curriculum is a wonderful thing, and another way that Seneca can set its graduates apart from other institutions.

  2. Ah, hello Fardad

    This is a great improvement to OOP344, and I wish it was like this for me. Although you taught me some really cool tricks for C++ ;)

    I've been taking the OSD600 class and it's some amazing stuff, I'm catching up fast from what I would of missed with you in OOP, and I think I've found a possible career with it. It suits me quite well. I think it's the standards of the code that we're working with that I like. It's no longer our code, we're sharing it, and must be on our best manners ;) This would help a lot of students.

    I've actually been saying to quite a few professors at Seneca, that OSD600, or something like it should be mandatory. I'm glad there is OOP344 for that. I think it's up to the students to request stuff like this too.

    I know a few friends of mine at school that didn't take OSD600, and already regret it, and a few others that won't because of some stigma towards blogging. Do you make 344 students blog too?

    Anyway, keep up the good work and, live long and prosper.

  3. Thanks for sharing your info. I really appreciate your efforts and I will be waiting for your further write ups thanks once again.
    HTML5 Developer| Flash Video Player

  4. very good post, i undoubtedly love this site, go on it python programming blog

  5. my baby enjoys playing on the baby swing, baby swings can really make your baby happy.. python installation

  6. The blog is like an ocean, I wish to drown in.
    Mason Soiza

  7. I read the above article and I got some different kind of information from your article about a mattress. It is a helpful article to enhance our knowledge for us. Thankful to you for sharing an article like this.C++ Language Training in Delhi

  8. Merkur 15c Safety Razor - Barber Pole - Deccasino
    Merkur 15C Safety Razor - 출장안마 Merkur - 15C for https://deccasino.com/review/merit-casino/ Barber Pole is 1등 사이트 the perfect introduction to 출장안마 the Merkur Safety novcasino Razor.

  9. Learn the foundations and odds and uncover the best variants at on-line roulette casinos. You can 1xbet korea play American Roulette from quantity of} dollars or take pleasure in European Roulette with a decrease house edge. You may even play live dealer roulette towards an Arabic-speaking croupier!


  10. Glass replacement is a necessary service that car owners may require at some point in their vehicle's lifespan. The glass components of a car serve several purposes, including protecting passengers from the elements, providing visibility while driving, and contributing to the car's structural integrity. In this blog post, we will discuss the importance of glass replacement, how to identify when replacement is necessary, and what to expect during the replacement process.
    Importance of Glass Replacement
    The glass components of a car are crucial to a driver's safety on the road. Any damage to the glass can compromise the integrity of the vehicle and put passengers at risk. Windshields, side windows, and rear windows are all essential components that need to be in good condition for safe driving. In addition, damaged glass can lead to visibility issues, making it challenging to drive safely in different weather conditions.
    Identifying the Need for Glass Replacement
    There are several signs that indicate the need for glass replacement. Cracks or chips on the windshield or other glass components can impair visibility and compromise the structural integrity of the vehicle. Additionally, broken or shattered glass can be hazardous and need to be replaced immediately. If you notice any damage to your car's glass, it is best to seek professional help as soon as possible to avoid further damage or injury.
    The Glass Replacement Process
    The glass replacement process is typically straightforward and can be completed in a few hours. A professional glass replacement technician will assess the damage and determine if the glass component can be repaired or if it needs to be replaced entirely. If the glass needs to be replaced, the technician will remove the damaged glass and install a new one. They will also ensure that the glass fits properly and seals correctly to prevent any leaks.

  11. A digital marketing agency in Delhi is a company that provides various online marketing services to businesses and organisations in the Delhi region. These agencies specialise in leveraging digital channels such as search engines, social media platforms, email marketing, content marketing, and more to help their clients reach and engage their target audience, generate leads, and drive conversions.
    Here are some key services offered by a digital marketing agency in Delhi:
    Search Engine Optimization (SEO): SEO involves optimising a website to improve its visibility in search engine rankings. This includes keyword research, on-page optimization, technical SEO, link building, and more.
    Pay-Per-Click Advertising (PPC): PPC campaigns involve running targeted ads on search engines like Google or social media platforms like Facebook. Agencies create and manage PPC campaigns to drive relevant traffic to their clients' websites.
    Social Media Marketing: This service involves managing and leveraging social media platforms like Facebook, Twitter, Instagram, LinkedIn, etc., to build brand awareness, engage with the target audience, and drive traffic and conversions.
    Content Marketing: Content marketing focuses on creating and distributing valuable and relevant content to attract and engage the target audience. It includes creating blog posts, articles, videos, infographics, and more to establish thought leadership and drive organic traffic.
    Email Marketing: Agencies help clients create effective email marketing campaigns to nurture leads, promote products or services, and build customer loyalty. This includes email list management, designing compelling newsletters, and analysing campaign performance.
    Conversion Rate Optimization (CRO): CRO involves optimising a website or landing page to increase the percentage of visitors who take a desired action, such as making a purchase or filling out a contact form. Agencies use data analysis, A/B testing, and user experience optimization techniques to improve conversions.