An Opportunity to Design

As I mentioned in a blog post a few weeks ago, I have been given the privilege to create a course at the University that teaches Programming Design Patterns using Java. In Software Engineering, a Design Pattern is a general repeatable solution to a commonly occurring problem in software design. It is a description or template for how to solve a problem that can be used in many different situations. One of the first things I did in designing this course, was decide on the appropriate Course Structure. Design Patterns are categorised according to the groups below and the patterns listed are covered in the course.

  • Creations Patterns – These patterns are all about class instantiation.
    • Singleton
    • Factory
    • Abstract Factory
  • Structural Patterns – These patterns are all about Class and Object composition.
    • Model-View-Controller
    • Composite
    • Adapter
    • Bridge
    • Facade
    • Decorator
  • Behavioural Patterns – These patterns are all about objects communication among classes.
    • Observer
    • Strategy
    • Iterator
    • Interpreter
    • Chain of Responsibility
    • Command
    • Template
    • Mediator

Secondly, I acquired soft copies of reference texts for the students to be used throughout the course. So far, I’ve been using Design Patterns Explained Simply by http://sourcemaking.com/ as well as the Design Patterns in Java Tutorial from http://www.tutorialspoint.com/.

Thirdly, I focused on assessment preparation. I’ve completed Creational and Structural Design Patterns with the students at one campus and I should complete those Patterns with the students at another campus by next week. Finally, we would complete the Behavioural Design Patterns and prepare for the final exam. While I do wish I had more time to prepare all the material for the course, things are going great. For each pattern taught, I will give multiple examples in class for the students to grasp the practical side of it with the hope that they’ll read the notes from the books to solidify the concept with the theoretical side of things. This course has three assignments, one for each Design Pattern Category, a Mid-Term Exam as well as a Final Exam.

This morning, I submitted the final draft for the Final Exam and I hope it’s approved. There are some changes to be made to the Mid-Term Exam, which will be given in two weeks and the assignments for the Structural and Behavioural Design Patterns will be issued within this coming week. I hope the University is pleased with the work I’ve done and will be interested in delivering this course again at the Bachelor’s level next year. Since I’ve been back at the University part-time, I’ve seen opportunities to deliver more courses at the the Diploma and Bachelor level and I hope I’ll be given to opportunity to do so in the near future. Currently, the University teaches Android Mobile Application Development, so it would be indeed an honour to develop a course teaching iOS Mobile Application Development at the Bachelor level. Until then, I will make suggestions for the courses I would like to deliver, that I think would be of value to the students, with the hope of it being approved.

Advertisements

Back to Lecturing

The new semester at the University began last week. For this second semester, I’ll be lecturing three courses, one on Design Patterns using Java, another on Databases with MySQL and lastly the programming language C. This will take four classes with a total of 16 hours per week, with four 4-hour classes, for a period of 12 weeks, with an additional week if needed. I’m most excited to lecture the Design Patterns course as this is the first time it will be delivered by the University. I know that my ability to successfully deliver the content will affect the likelihood of  the course will be delivered again. Thankfully to sourcemaking.com‘s book on Design Pattern and James W. Cooper’s book on Design Patterns in Java, there will be no need for me to prepare course notes. I’ve also been fortunate to find a C Programming Tutorial from tutorialspoint.com which also eases me up from preparing notes for the C Programming course. I’m yet to find the perfect handout for the Databases course. The students in the class have no database experience and very little database knowledge, so finding notes with very simple explanations is proving to be a challenge. For the next 11 weeks, I will be managing my full time 8-4 job and my lecturing. This will be an exciting challenge as this schedule is a 6 hour increase from the lecturing I did last semester, so it will definitely test me and take me out of my comfort zone. Seeing that my classes end at 9PM, Monday to Thursday and I usually go to bed after 11PM, I’ve decided that it would be best that my morning wake up time be moved from 4AM/4:30AM to 5AM to allow some additional time for sleep. On weekdays, I aim for 5-6 hours sleep but that never really happens, so hopefully this can be attained with my 5AM wake up call. The next 11 weeks will be quite busy but it all contributes to a greater plan and purpose.

From one semester to the next

Today is my last C++ class as well as my last class for the semester. It is indeed a bitter sweet feeling. I’m sad it’s over because I really enjoyed this class and the interaction with the students but no classes for the month of December means a little additional rest for my body even though I’ll be busy marking assignments and papers. I look forward to classes in the next semester. I haven’t finalised my courses just yet but I’ve discussed lecturing Design Patterns with Java and Computer Logic. I’ve never lectured these modules before so I’m really excited, more so for the Design Patterns course as I’ve covered these in my MSc using C++ and Objective-C. It’s going to be so much fun teaching design patterns using Java next semester.