Within the realm of the topics we are exploring this week, we are looking at knowledge artifacts for higher level competencies. I think that the programming design tools that are used in programming classes are a good example of these artifacts.
For programming the higher level thought processes that the student conducts are crucial to the educational and assessment outcome. Therefore, requiring such items as flowcharts and other diagrams are good representations of the higher order knowledge artifacts so that the student can be assessed properly in competency and skill other than just with the end result of a successfully executable program.
Some of the tools and strategies that are used in online programming classes are flowcharts and pseudo code. Created by Terry Wilson, Martin C. Carlisle, Jeff Humphries and Jason Moore is Raptor. “RAPTOR is an open source flowchart interpreter. It offers a “flowchart-based programming environment, designed specifically to help students visualize their algorithms and avoid syntactic baggage. RAPTOR programs are created visually and executed visually by tracing the execution through the flowchart. Required syntax is kept to a minimum. Students prefer using flowcharts to express their algorithms, and are more successful creating algorithms using RAPTOR than using a traditional language or writing flowcharts without RAPTOR.”
One unique element of Raptor that is different from any diagramming tool that can be used to create flowchart is that it interprets the text and actually will run the code to generate results. While the text is not tied to any particular programming language it is facilitated to the extent that the logic will be interpreted and must successfully run and produce results in order to generate the flowchart.
Pseudo code is another artifact that represents the developing higher level knowledge processes that are done prior to a final product is done. This is a simple written representation of the step by step logical and algorithmic representation of a program. Pseudo code is not necessarily tied to any programming language but as a student gets more experience and practice with programming and the correlation between pseudo code and programming code, some of the pseudo code statements may be the actual programming language code.
Here is an example of pseudo code and matching flowchart for a simple program. One unique attribute is that typically, for every line of pseudo code the is one matching flowchart symbol.
Alice is a tool used typically for Grades 5-12 “Adventures in Alice Programming is a project for integrating the programming language Alice into middle schools and high schools in the state of NC, based in the Durham, NC region. Originally, the target schools were the schools in Durham county, Vance county, Person county and Chatham county. We have now expanded to schools throughout NC. We have also taken a few teachers from other states.”
There is a renewed interest in Alice due to the visual presentation and illustrations of programming concepts that are proven to be effective for children and adults alike. New uses for and generation of use for Alice 3.0 is discussed here. Here is a video explaining more.
One thing that I am seeing in many of today’s higher education computer science curriculum, is sometimes the loss in emphasis on these programming fundamentals and tools. Rather, the students are introduced to programming through a commercial product, an Integrated development environment, as used in the workplace. These environments are advantageous to a programming student no doubt and expedites their readiness for the workplace, but skipping the proper preliminary, fundamental programming courses these fundamental tools are not learned or used therefore at times causing questionably designed commercial products. Or they are given step by step instructions with videos which they can follow and complete successfully, but when given a new similar scenario, without new steps or video, they cannot seem to relate the previous steps and video to the new scenario even though it is very similar.
In general, any class that has a desired outcome which involves many preliminary higher level processes, cognitive skills and competencies so as to get to the desired outcome, there are intermediary knowledge artifacts that are produced. These need to be taught, learned and captured in order to not only assess these intermediary competencies and skills, but also to insure that the final products are up to par to industry standards. This may even be more important for the online classroom being that typically, the instructor cannot monitor or observe the students as they go through these processes and sometimes they are difficult for the student to do independently.
All in all, these intermediary higher level competencies are very important and need to be captured and represented for learning and teaching.
DK Books. (2016). Computer Coding. Retrieved from http://www.dk.com/uk1/computercoding/index.html
Duke University. (2106). Adventures in Alice Programming. Retrieved from http://www.cs.duke.edu/csed/alice/aliceInSchools/
Kodables. (2016). Teaching Kids to Code: Mission Possible. Retrieved from https://www.kodable.com/..
MIT. (2016) Scratch. Retrieved from https://scratch.mit.edu/.
Tynker. (2016). Learn to Code with Tynker. Retrieved from https://www.tynker.com/.
Wilson, T., Carlisle, M., Humphries, J., Moore, J. (2011 ) Raptor. Retrieved from http://raptor.martincarlisle.com/