Practical Object-Oriented Design Courses
I teach two extremely practical object-oriented design (POOD) courses.
POOD-I
The primary goal of the POOD-I course is to teach you to think in objects, and the basic mechanism is to learn by writing code.
See the POOD-I outline for specific details about the content.
In POOD-I, students learn to leverage the 'principles' of OOD to minimize the costs of creating new software and mitigate the pain of maintaining existing code. If your engineers prefer to write applications that are pleasant to work on and easy to maintain, or if they desperately need to fix applications that have escaped their control, this course is for you.
POOD-I consists of hands-on exercises and group discussions. The exercises evolve such that students must progressively enhance their code to meet ever changing requirements.
The acts of refactoring and testing are so deeply intertwined with the ideas of OOD that these concepts are impossible to separate. Therefore, students also learn refactoring techniques that will speed current development, and testing skills that will reduce bugs in future code.
POOD-II
POOD-II is a higher level design course available only to students who have completed POOD-I. Whereas POOD-I is concerned with finding and creating individual objects, POOD-II focuses on understanding and designing interactions between groups of objects. Its primary interest is in the architectural layers of well-designed code.
Students in POOD-II classes work together in small groups to learn the tools of design. They create class diagrams in order to understand the relationships between existing objects, and construct sequence diagrams to communicate proposed designs.
The POOD-II class leans more toward group discussion and design drawings than towards writing code. It’s available only to graduates of the POOD-I course, and is taught in-person.
General Course Information
My teaching style is shaped by research on how we best learn, and the experience of attending these courses has been likened to 'going on an incredibly useful coding vacation'. They are both worthwhile and fun.
Students from a wide range of backgrounds have benefited from these courses, from relative newcomers to seasoned veterans. It's helpful to have a smattering of Ruby and/or some exposure to object-oriented programming, but this is not required. The courses adapt to students, challenging some and guiding others.
The virtual POOD-I course is available privately for companies, by appointment. The minimum class size for the virtual course is 20. I teach smaller courses alone and occasionally invite mystery co-instructors to help with larger classes. I very occasionally teach in-person POOD-I classes, please inquire if this option is of interest.
The POOD-II course is only available in person. If your team has already taken POOD-I and you’d like more, please ask about it!
“ Run, with scissors if you must, to the next offering of this course. Sandi provides a very strong dive into the pride and prejudice of object oriented design that cannot be missed.”
“Stop considering. If you program OO then this course is a no brainer.
”
“Run, don’t walk, and throw money at Sandi now! But seriously, it’s a transformative experience for any developer, and can give teams the tools to trust one another.”
“You should absolutely take this course. Set aside your preconceptions and skepticism and be open to the ideas in this course: They will dramatically improve the way you program. This has easily been the most valuable programming training experience I’ve had in the last 10 years.”
“You learn how to write code that does what it needs to do without being over-engineered. You practice how to make small, effective changes in real world ways. This is what “Agile Methodology” was meant to do.”
“This has been fantastic. I was thrilled that we could immediately start coding. I love this class.”
“Without a doubt this is the best, most useful course I’ve taken. If you write software, you need to take this class!”