Guest User

Untitled

a guest
Nov 23rd, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.33 KB | None | 0 0
  1. Programming paradigm in relation to the programmer's cognitive concepts
  2. Programming as a concept is a means to control machines by humans. Unfortunately, humans do not think like machines. Still, machines are human constructs and are constructed under the auspices of human conceptualizations. The basis of programming is rooted in the human concepts of mathematics and logic. These bases are very abstract and formal which tend to be incomprehensible to other humans without formal training. (Gries) With the popularity of and growing dependency upon computers we have today it is imperative that languages are less structured and complex so as to conform to more readily available human metaphors. This is mainly due to the speed at which technology and its importance is progressing compared to that of programming languages.
  3.  
  4. There has been a clear evolution in programming paradigms since the time of Charles Babbage and Ada Lovelace. This evolution has favored language structure which more adequately mimics the way people abstract the world around them than rigorous formal systems. While attempts have been made to introduce languages with less formal interfaces that have more natural language constructs, such as COBOL, their success has been hampered by the paradigm still lording over them despite its widespread usage. Therefore, semantics and syntax are not the sole drivers of what is the easier, more natural system for creating software. Recent studies support my position that the shift from procedural to object-oriented programming has moved positively in the direction of cognitive abstractions over superficial naturalism. (Zivkova)
  5.  
  6. While many studies have been done to examine the causation between programming and mental concepts there is much to be done to establish the next best paradigm to bridge the gulf between accelerating hardware and software differentials. Towards this end I propose more in-depth studies are done to prepare the best paradigm for the next generation of programming interfaces and programmers so as to shrink the technological gap. In order to meet these requirements more studies need to be done to determine programming models which provide optimal performance while retaining productivity. Productivity will be exhibited at the intuitive level where the programmer feels that the tools and language structure provided offer the path of least resistance toward the goal of reliable and well-structured program code.
  7.  
  8. The current object-oriented paradigm has provided a rich canvas for expansion of layering of simplified coding. Though it has been successful so far there has also been a lag with the technological advance and peoples' ability to grasp the key concepts of object-oriented programming. (Paterson) This lag indicates a need for a more profound shift of the paradigm so that programming can keep up with the technology. With that in mind, there is a case to study the investment in understanding of how these concepts interrelate between programming language structure and human conception and cognitive abilities to see where the next evolutionary step should occur.
  9.  
  10. Despite the fact that low-level programming in imperative and procedural is still heavily employed in hardware drivers, embedded systems, and core system functionality there is a need for higher level interfaces to expedite software development at the operating system and software levels. Opponents of these higher level interfaces often cite speed and determinacy of these older paradigms while neglecting the disparity that we see between hardware and software support - the growing number of phantom issues (ghosts in the machine) which are difficult to trace and more difficult to remove, the amount of maintenance for low-level code, and the cost in time and manpower to develop software at these lower levels. Efficiency and maintainability have been goals in software development for many years. Their attainability has been tainted by complexity and simple affordability.
  11.  
  12. While the opposition is justified in these claims to some extent they neglect the obvious disparity which is currently plaguing the software industry. With the advent of multiprocessor computers in the market place the need for simpler programming interfaces is becoming penultimate. On top of that, include the recent advent of world-wide connectivity embodied by the internet and mobile devices. The need for adaptation to new paradigms and paradigms that best match conceptual abstractions drive the need for studying how programmers think and interact with computers. Studies of this type are imperative to our future goals and keeping stride with hardware leaps before they become too distant.
  13.  
  14. Many programmers have had problems transitioning from procedural to object-oriented programming due to long term use of the procedural aspect of coding. The change in paradigm from more formal, linear programming to abstract, non-linear programming is a gross change in thought processes. And this has had a profound impact on the status-quo of programming, especially in the business-oriented regimes. The research that followed was influenced by the lack of prior research and desire for more understanding of what drives good programming language structure over failed or limited language structure.
  15.  
  16. This first study was structured by the use of Subjects, Material, Procedures and Analysis. Five expert object-oriented and five expert procedural designers participated in the study. Novices had issues with focusing on input/output, data and control flow. There were also issues with limiting objects and making connections to a class hierarchy. The study concluded that there were no significant differences between the paradigms in difficulty in learning. The study itself was too brief and this did not reach any conclusion on the subject of best paradigm relevant to the subjects' concepts. This study could have been more thorough, not to mention there appeared to be no controls. Lack of controls and other careful planning puts this study at jeopardy of being a fruitless enterprise. (Pennington)
  17.  
  18. Other case studies show that beginners advanced more quickly when introduced to object-oriented programming first as compared to procedural methodologies. Experienced procedural programmers had more difficulty adapting to object-oriented programming because of the less direct concepts encapsulated therein. Our case is in favor of object-oriented programming over procedural programming in a conceptual and applicative way of performing programming task and writing complete software. This study bolsters the case that it provides better frameworks from the start for attaining productivity in software programming.
  19.  
  20. Tutoring is a major aspect to the development and acceleration of a novice programmer. Although one-on-one tutoring is effective, large class numbers and funding concerns require that a better approach using intelligent tutoring systems (ITSs) be incorporated. One drawback of this method of training is the amount of cost that it requires. Finding ways to reduce cost of developing intelligent tutoring systems was the concern of the study. A solution to this issue will be a concern in the future to utilize a cost effective medium to achieve this goal. One group of students was tutored by a one-on-one tutor and a second group used the ITS system. The main subjects were the students and the Intelligent Tutoring System itself. The main obstacle was the cost during these studies due to the number of participants. The ITS seemed to be very effective in helping overcome learning curves for novice students. The researchers intentions were to make the ITS platform independent and improve the ITS integrity. The end result to this system was, can this or other any other ITSs meet different student learning styles and answer questions to different solutions. With these limited funds during this study, will such a system enter a school system anytime soon? As a Computer Science major, I see no bias in this study as long as the system derives unique solutions to different styles of solving equations and incorporating them into different programming languages. (Pillay)
  21.  
  22. In a cognitive study, eight programmers, some with object-oriented experience, were asked to design a program based on a procedural problem. The purpose was to study design strategies employed by programmers given a problem of a different paradigmatic nature. A stack of structures using a procedural design problem applied to experienced and inexperienced programmers. Object-oriented and procedural Programmers were the subjects of this research to make a clear determination. The researchers noted that a flaw in their study involved subjects excelling faster than the research parameters so the resources were limit to continue making progress. The research showed that programmers have different strategies depending on their level of expertise. Future studies should involve a greater number of subjects and incorporate code grouping instead of a full program. I hope this research will eventually be extended past the class aspect of coding in the future. This was a well designed study which merits further research. (Détienne)
  23.  
  24. The goal of this next study was to discover ways to transition from engrained procedural design to object-oriented methodologies. Lack of research and its imperative nature with respect to software engineering businesses moving toward object-oriented systems spurred this research. The research methodology involved the use of professional programmers as participants who were provided the same design problem and procedure for the design of a swim meet system. The participants were comprised of five expert object-oriented and five expert procedural programmers. The study concluded that novices became stuck focusing on I/O and other minor program flow. Issues arose with novices implementing too many class objects. In conclusion, the study found that paradigm had no significance in the learning curve of the participants. The study appeared to be more of a trial nature considering the scope of the goal and did not reach a relevant conclusion on optimal method of transitioning from procedural to object-oriented design. Again, this study could also have been more in depth and included more subjects. (Pennington)
  25.  
  26. The researchers of this final study have been considering ways of learning about programming activity to develop systems that better support program components and their relations. In relation to parallel object-oriented programming, they were formulating a means to offer better support for location and reuse of code. Code fragments were used as a task to be sorted in a meaningful way by the participants of the study. The participants included undergraduate students, graduate students, researchers and lecturers from computer science departments. A limitation of this experiment was the extent to which the tasks subjects were to perform which might have influenced the nature of the classification results. Expert subjects classified by functional relationships whereas novice subjects classified on object-based classifications. They offered the recommendation of longitudinal analysis of code classification including observance of performance over time. This research seemed to be limited due to working with a single code set. One apparent bias resulted from the groups being drawn from independent populations. Nonetheless, this study provides a good basis for future research into the best ways to approach studies involving human cognition and programming structure. (Davies)
  27.  
  28. As shown by the highlighted studies, the object-oriented paradigm has been more effective in large scale projects as well as in comprehension by beginners. While procedural programming affords more direct interface to the system and thereby creates faster and more compact code, it has a disadvantage of being more difficult with which to design and cumbersome for larger projects. It is also clear that transition from an older paradigm to newer can often times be frustrating or a point of rebellion for the inveterate in the former. These studies clearly show that a paradigm more inline with the way people construct concepts benefits both the programmer and the scope of software that can be created. (Kristensen) Carefully designed programming paradigms with carefully constructed languages that bridge the programmer's mental constructs with the computer's system require well-designed studies of varying levels.
Add Comment
Please, Sign In to add comment