Jump to content
  • Advertisement
Sign in to follow this  
Alpha_ProgDes

Are Design Patterns mandatory now in universities?

This topic is 1820 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I remember in university that CS 1 (Variable, Functions, Classes, Inheritance, Composition), CS 2 (Data Structures), and Discrete Mathematics were mandatory. I wonder if Design Patterns is mandatory now. I don't see why it wouldn't. It seems just necessary to the beginner programmer as the other 3. I know some people here are CS/SE/CMIS teachers and other are actual employers. Do you think that it should be added to the mandatory curriculum as opposed to an elective (if it is one)?

Share this post


Link to post
Share on other sites
Advertisement

Nothing is mandatory within a university course, unless the course syllabus says it is mandatory. I personally don't think it's something that should be a mandatory unit of a course (speaking as an industry bod, and ex-lecturer). In general, you try to ensure that the course syllabus is as vague as possible (because making changes is something that can take years to achieve due to a million layers of bureaucracy, and course validation requirements). If you are too explicit in your course description, it can often lead to situations where you find yourself being forced to teach "Programming for the VAX", or "Spectrum 48k Basic". If you were to keep it vague under the generic title of "software development practice", then you get some freedom to adjust the course content to keep it relevant to the latest trends and advances. Being too specific, will just end up shooting the department in the foot later on..... 

Share this post


Link to post
Share on other sites

If you think "Programming for the VAX" is too absurd an example, in the late 90s I actually had to learn Warnier structured programming and Jackson structured programming in my second-year programming class and PDP-11 assembly in Computer Architecture class. These are things that probably seemed very reasonable 20 years earlier, but by the time I studied them, it was a complete waste of time. If someone in 2035 were force to study software design patterns, it might be similarly absurd; It's hard to judge from our perspective.

Edited by Álvaro

Share this post


Link to post
Share on other sites

I had to learn Jackson Structured Programming too (for about a day) when I was on an employment training course in the 90s for learning C. Better than flowcharts but still dreadful.

 

Of course, I studied maths at university which teaches you how to think (and think logically and rigorously, as well as how to break tasks into smaller pieces to prove theorems etc.) rather than what to think so programming wasn't too hard to pick up later on (I already knew Pascal from school, although it was taught badly and we only wrote a couple of Pascal programs ourselves). It was enough to let me skip all my Pascal classes on my maths degree and just turn up at the end of year exam and pass though.

 

My first real job was as a games programmer (so I got lucky, things were different in the 90s I guess), and I had to learn how to program properly pretty quickly then (doing a conversion from PC/3DO code to PS1 in conjunction with a guy doing the same for the Saturn).

Edited by Paradigm Shifter

Share this post


Link to post
Share on other sites

I agree with Promit.  Programmers need a lot of experience before they understand when patterns should be applied.  On the job, I *constantly* see singleton and boated observer patterns used where they don't need to be, making the code way more complex than it needs to be.

 

Design Patterns was a senior-level requirement where I went.  We had a small class.  Each person was assigned one or two patterns from the book (Gamma et al) and had to give a presentation explaining the pattern.  We very quickly discovered that the majority of the class had no idea what their pattern was useful for or when it should or should not be used (even the guy who got the Singleton pattern didn't know when it should or should not be used).

Share this post


Link to post
Share on other sites

Is this really a For Beginners topic?  We're talking about what educators do teach or should teach, not what beginners should learn. 

Share this post


Link to post
Share on other sites

Really? In the US, CS1, CS2, and DM were all mandatory classes you had to take to get your CS or CMIS degree.

We had all those, but we didn't even touch on design patterns. In fact, we only had one class in the entire curriculum that taught object orientation.

Is this really a For Beginners topic?  We're talking about what educators do teach or should teach, not what beginners should learn.

Bouncing to General Programming. It doesn't fit much better here either, but oh well. Edited by swiftcoder

Share this post


Link to post
Share on other sites

Of course! Even if at that level many people won't get the hang of it, they'll at least know patterns exist. Which is good.

 

I consider the purpose of most of the education system not to teach from the begin to the end a subject but more of "Hey! This thing exists! You might find it useful!" and then you do your own research about it if you want. It shows to the students one more reason why software isn't just typing stuff into the box and hit the build/compile button.

 

Sure, a lot of people don't get it and think that if they implemented a bloated MVC pattern on a 1k program it means that it has to be implemented everywhere (have seen a few examples of "If I need two of these working at the same time, must use threads!" No, if you have a game with 10 bots you don't use a new thread for each of them), but that's just the result of bad teaching.

 

I'm not the "You can't handle the truth!" type :P

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!