My teaching is built around one core idea: the knowledge and experience I have accumulated over more than 30 years exist now for one purpose—to be passed on to you in ways that lead to concrete, measurable improvements in your life.
I recognize that many students at a community college are here for practical, goal-oriented reasons—career change, professional or academic advancement, financial stability, or a second chance. I respect that. My job is not simply to expose you to computer science concepts but to prepare you to function competently and confidently in professional technical environments. That requires rigor, discipline, and accountability, and those expectations are reflected throughout my teaching.
Computer science has a strong theoretical foundation, and theory matters. However, in this program, theory is not taught for its own sake. It is taught because it explains why systems behave the way they do, why certain designs fail, and why some solutions scale while others collapse.
Every theoretical concept you encounter in my courses is there to support practical application. Practical application is the blade; theory is the sharpening stone.
A common complaint in higher education is that school is not the “real world.” I take that as a challenge.
In my courses, especially those teaching practical skills such as software engineering, you will use the same kinds of tools and workflows used in industry: Linux-based environments, professional version control, structured testing, documentation, and disciplined development practices. You will be expected to use these tools correctly. They are not extras. They are part of the work.
Code is treated as professional work. If it does not compile, does not meet specifications, or does not pass required tests, it is not acceptable. In the workplace, non-working or incomplete code is not “mostly correct”—it is wrong.
Communication, both written and verbal, is treated with the same seriousness. So are concepts and theory. If you cannot explain why something works, what assumptions it depends on, or how to apply it correctly, then you do not yet understand it well enough.
Grading in my courses reflects that reality.
With that said, our goal, together, is not to punish failure but to build competence. We learn by doing, failing, correcting, verifying, and improving.
A defining feature of my philosophy is strict attention to critical thinking, computational rigor, coding discipline, and both academic and industry best practices. You will be required to follow explicit rules grounded in computer science theory as well as professional engineering conventions.
Some of these rules are widely accepted academic or industry standards. Others are intentionally strict training constraints designed to develop discipline.
These constraints exist for a reason. They force you to slow down, think, plan, and design before solving. They train you to build structure instead of relying on trial and error. Over time, they help develop the habits of a disciplined, precise, and effective professional.
Powerful tools change how work is performed, but they do not remove your responsibility for understanding the work. Generative AI is now part of professional and intellectual life, and I expect students to learn how to use it effectively rather than pretend it does not exist.
I describe the broader principle behind this as Intellectual Agency : using AI as intellectual leverage while preserving human ownership of understanding, judgment, verification, and final responsibility. Work may be delegated. Intellectual ownership may not.
In education, I put that principle into practice through the AI-Integrated Classroom . AI may participate extensively in the work, but students remain responsible for understanding what they produce, evaluating and verifying results, explaining their decisions, and demonstrating what they have learned.
The tools will continue to change. That responsibility does not.
My courses are challenging. The standards are high. The workload is significant. I do not believe my role is to produce students who can eventually make systems work if given enough time and tolerance. My goal is to help you become a precise, disciplined professional who can deliver correct solutions under real constraints.
I hold high standards because I take you seriously. When you leave this program, you represent not only yourself but also the training you received. I take personal responsibility for that. I do not lower expectations to create the illusion of success. I prepare students to earn it.
If you succeed in my courses, you will know why. If you struggle, you will know where and why—and you will be given a clear and disciplined opportunity to improve or to re-evaluate your goals.
I will give you the tools, structure, and standards of the professional world, sharpened with strong theoretical foundations.
What you do with them is up to you.
Please read my generative AI statement and see how the AI-Integrated Classroom is implemented in my courses . The broader frameworks are documented at Intellectual Agency and AI-Integrated Classroom . You can also read about why I teach at ACC and my other writing on Medium .