Programming at University-Part II: Subject Objectives
Delfim Marime
Software Engineer | Solution Architecture |AWS Solutions Architect Associate|AWS Developer Associate |Hashicorp Certified:Terraform Associate| Hashicorp Certified: Vault Associate | Java Developer| Golang developer
Objectives they are what we must achieve , they exist for that simple reason to be achieved, they make sure we know where we are heading for guaranteeing that we don't get lost. There simple exist make it possible for us to understand where are we and where we need to be.
But aside of all that Speech just to fill space lets head towards the OBJECTIVE of this article. First I would advise people that didn't read the Part I to do so and want to thank everyone for the support and ask people to comment directly here its hard to read all comments on different Social Medias but thank you guys.
Introduction
On the last article we discussed about the role of the University and the Teacher on administration of Programming Classes. In the same article we describe problems like:
- The content of Programming according to the System of Precedence doesn't flow as expected.
- The content of Programming Subject's doesn't evolve with the Programming Language version(SDK).
- The Students are afraid of Programming.
And was stated that the first two problems were responsibility of the University and the Teacher. And one of the friends that comment said as I quote:
Unlike technical courses, university teaches you more to think than to do stuff, so yes some content should be updated but the most important thing is that you are creative enough to think of the best ways to solve a problems/ answer questions.
Which I partial agree with him,why partial , simple this article will explain it. P.S:this Article isn't a direct confrontation to the quote , it was planned before the comment was made.
Programming Subject and Objectives
To discuss about Programming Subject and Objective first we need to understand what we do with objectives so lets travel to time , our stop is before Christ at Greek.
So we can see that Aristotle states that we have to adjust the means to achieve the end(Objective). So now comes the question:
What are the Objectives of Programming Subjects?
Till sometime ago, I would clearly say Its Teach Students how to Program but in reality is not quite simple. During the continuous research that I have been and Still doing I found two distinct Objectives that can't coexist.
- Teach Students the neutral(common) Basis, Concepts,Paradigms of Programming using a Specific Language.
- Teach Students how to program in a Specific Language.
This two Objective cannot coexist because you can't be PARTIAL and IMPARTIAL at the same time. What do I mean by Partial and Impartial?
Teach Students the neutral(common) Basis, Concepts,Paradigms of Programming using a Specific Language
This Objective states that the Students shall not focus on learning the Language (being impartial about the language) but the Students shall use the language to test the concepts. For instance lets speak about Arrays, they exist on C , C++, C#, JAVA, JAVASCRIPT, ANDROID, PYTHON and other Language in this case the Objective states that if we are learning Programming Subject and we are using JAVA to show how Array works nothing more nothing less. Which actual mean that we are not Learning JAVA but just using JAVA(Language) to show how Arrays(Concept) work.
In this Scenario the University and the Teacher have a list of Concepts , which are the Subject content list, that the Subject of Programming need to explore and not explore the Language itself which kind of makes the 2nd point of the last article invalid because the common concepts almost don't change and they are basic which mean you actual can find this concept plus other concept relate to that concept or even a different version of it , lets take for example the structure "for" exist anywhere but does "for each"?!). Since this objective is to explore the Concepts and not the Language itself , the Content List of the Subject doesn't need to evolve with the SDK version.
In Simple Words: This Objective focus on the Concepts and not the Language.
Teach Students how to program in a Specific Language
This Objective is already auto explanatory by itself. So this Objective focus on the Language which means that the University and the Teacher choose a Specific Language and teach it for their Students . Lets say they choose JAVA this mean the Students will have to learn about the JAVA itself starting from studying the basics to the more complex.
In this Scenario the Subject explores the Language so it makes sense that it should explore one of the most updated version because the SDK changes. This changes normally consist of :
- Introducing new API's.
- Bug fixes.
- Depreciating old and unused API's.
- Others.
Since this Objective states that the Teacher and University should teach the Language , the Essence of Programming in a certain Language is to know the API, this means that the Content List of the Subject should be Synchronized with the SDK version, of course they don't need to Synchronize with the Patch version(normally the last number on the 3 digits version number for those who follow the Semantic Versioning Specification, Patch in JAVA 1.8.80 is 80). But of course there are some things to be considered when trying the Synchronize the version(Major, in JAVA 1.8.80 is 1) and subversion(Minor, in JAVA 1.8.80 is 8) lets say that when the Semester start the Content List of the Subject was built based on the latest SDK version, lets take for example Java JDK(which is the SDK for JAVA) 1.7.80 and at the middle of the Semester Oracle released JDK 1.8.0, the content list should stay the same (based on the started version , which means 1.7.80) but the next Semester should be 1.8.0 this is what I mean about the Content of the Subject evolve with the SDK version.
In Simple Words: This Objective focus on the Language and not the Concepts but we learn the concepts of the Language .
Just stating that 2/5 of the Universities I could get Intel use the Objective of teaching Concepts. One of the two Universities, this current Semester changed the Language that was used to teach Programming, this is just to show that the First Objective Impartial when talking about Specific Language.
So its all for this article , I probably will end up writing PART III because there is something I would like to discuss ,lets just say that I got into a situation on the Classroom this week that created another point of view about Programming at University.
Would see comments about what you think about this article and don't be afraid to let your own opinion(congratulation and/or even criticizing). Thank you.
Keep you mind on your Objective, and persist until you succeed. Study, think, and plan. W.Clement Stone