Teaching programming in the era of AI is difficult. While the high level of programming is less interesting than low level programming, it still needs to be one of the most used in the industry. Programming language like Python, C#, and C++ still be used for daily maintenance or building new software. Unfortunately, the students less interested with high level programming. They like to use drag and drop, generative AI like copilot, of no-codes development. When we teach the programming in college degree, we found that the student is less interested. On this article, we will discuss how to elevate the programming classroom when the programming is not interested anymore in traditional classroom.
Start with the learning objective. Define what you want for your students. For example, teaching them Web programming.
Develop an essential question. For example, how web programming can help people to reduce poverty in our community?
Choose the real problem with critical thinking. For example, let's student choose what kind of reduce poverty that they want to do.
Encourage group work. For example, creating a group with three or five students.
Choose the most problem that is really important for each group. For example, each group collaborate each other's to choose the most important problem based on priority and discussion.
Incorporate multiple technologies and solution. For example, student may use any technology that related with the programming. You can also put what technology that they have to adopt and what technology that optional / free to adopt. For example, since your curriculum specifically teach Python, you can say the student need to use Python and the rest is up to them.
Iterate the workshop. Give them holistic process and in each process, you give short workshop to elevate and to encourage the students. For example, if creating a web need five steps you need to conduct five short workshop like creating database, gathering requirements, etc.
Give online resources. Setup and curate the online resources for them to learn more. For example, you curate list of Python tutorial that they can learn to complete their skill in web programming.
Showcase the project. Give students opportunities to present their project and receive feedback.
Reflect the result. Let's each member of the group reflect they contribution as well as what they learned in the process. after the showcase session.
that's all. Hopefully, your programming classroom will be better.
OOAD (Object Oriented Analysis Design) is an old term in the 90'. OOAD focused in developing software in object oriented approach. Implementing OOAD means implement object oriented concept when developing a software, it sound an easy task but in reality it needs a quick, comprehensive, and domain knowledge. if OOP (Object Oriented Programming) is how to make a software with object oriented model, then OOAD is a structured process to make your software has sufficient quality. It means you can develop a software with OOP without OOAD. If you add OOAD in your software development you buy an insurance to make sure that what you build is fullfill the user requirements. On this, article we will discuss how OOAD will help you to make your software is better.
Do we really Need OOAD
The short answer is NO, you can develop software without OOAD. A quick analogy is when you learn your new gadget. The first way is understanding the manual and the second way Is learning by doing. The first one is with OOAD and the second one without OOAD. If you just playing with your gadget, it is fine without reading the manual. But imagine if you want to drive a train. You need to read the manual. Based on this analogy, I can say that
Use OOAD if you have a project without experience, complex business process, and a lot of interaction between module of external system
You don’t need use OOAD, if you have lot of experience with the business process, you don’t use OO, and the solution is feasible
How to implement OOAD
You can implement OOAD by doing this five steps
Interview your custome di a noun-verb analysis. Find the user find the activity and the action of the user
Draw a use case diagram, map the user action between actor and the action
Create a ERD (Entity Relationship Diagram) to understand what we need to store
Draw an activity diagram to understand the process
Draw a class diagram to prepare our class
Create a class with your programming language
Do a round trip programming to sync between your class diagram with your class in programming