Hello everyone, my name is Rick Djouwe, and this semester I am beginning CS 343: Software Construction, Design & Architecture. I am truly excited for this class because it represents the next step in strengthening my ability to think beyond coding and focus on building well-structured, scalable, and maintainable software systems.
What This Course is About
CS 343 covers a wide range of essential topics in modern software development, including:
- Design principles such as abstraction, encapsulation, inheritance, and polymorphism.
- Best practices like SOLID, DRY (“Don’t Repeat Yourself”), and YAGNI (“You Ain’t Gonna Need It”).
- Design patterns that provide reusable solutions to common problems.
- Software architectures and frameworks, including REST API design.
- Refactoring, code smells, and concurrency, which improve software quality and longevity.
- Modeling and documentation tools like UML, which ensure clear communication of design decisions.
In short, this course is not just about writing code, it’s about learning to think like a software engineer who can approach problems critically, design solutions thoughtfully, and work effectively with others.
Skills and Outcomes
Through CS 343, I will gain valuable experience in:
- Collaborating with stakeholders to design, test, and deliver software systems.
- Applying professional judgment and staying current with evolving tools and practices.
- Organizing projects using proven methodologies and team processes.
- Communicating complex technical concepts clearly, both in writing and orally.
These outcomes connect directly to the broader goals of my Computer Science major: analyzing problems, building solutions, and developing the professional skills needed to succeed in the field.
Why This Matters to Me
As someone pursuing a career as a software engineer specializing in artificial intelligence, this course will help me strengthen the foundations of software design and architecture that are critical in building intelligent, scalable systems. Beyond my academic goals, I also see a strong connection to my current role as an Automation Developer at The Hanover Insurance Group, where I contribute to projects that rely on thoughtful design, testing, and collaboration. The principles and practices I learn here will make me more effective in my work today while preparing me for even greater responsibilities in the future.
I am eager to reflect on my progress throughout the semester, connect this material with experiences across my other courses, and apply these lessons directly to both my professional role and long-term career.
For me, CS 343 is more than a class, it’s a bridge between where I am now and the kind of innovative, responsible, and skilled software engineer I strive to become. I am also excited to meet everyone in this course and learn from each other as we move forward together. Feel free to reach out if you’d like to connect, collaborate, or study together this semester!
From the blog Rick’s Software Journal by RickDjouwe1 and used with permission of the author. All other rights reserved by the author.