1,528 research outputs found
Visual and Textual Programming Languages: A Systematic Review of the Literature
It is well documented, and has been the topic of much research, that Computer
Science courses tend to have higher than average drop out rates at third level.
This is a problem that needs to be addressed with urgency but also caution. The
required number of Computer Science graduates is growing every year but the
number of graduates is not meeting this demand and one way that this problem
can be alleviated is to encourage students at an early age towards studying
Computer Science courses.
This paper presents a systematic literature review on the role of visual and
textual programming languages when learning to program, particularly as a first
programming language. The approach is systematic, in that a structured search
of electronic resources has been conducted, and the results are presented and
quantitatively analysed. This study will give insight into whether or not the
current approaches to teaching young learners programming are viable, and
examines what we can do to increase the interest and retention of these
students as they progress through their education.Comment: 18 pages (including 2 bibliography pages), 3 figure
Learning to Program in Python – by Teaching It!
The US Bureau of Labor Statistics predicts over 8 million job openings in IT and computing, including 1 million cybersecurity postings, over the current five-year period. This paper presents lessons learned in preparing middle-school students in rural Georgia for future careers in computer science/ IT by teaching computer programming in the free, open-source programming language Python using Turtle graphics, and discusses exercises and activities with low-cost drones, bots, and 3D printers to get students interested and keep them engaged in coding. Described herein is one pair of instructors’ (one middle-school, one university) multi-year, multi-stage approach to providing engineering and technology courses, including: how to code Turtle graphics in Python; how to engage children by using short, interactive, visual programs for every age level; building cross-curricular bridges toward technology careers using 3D printing, robotics, and low-cost drones; and, how to build more advanced programming skills in Python
Computing in Education: A study of computing in education and ways to enhance students’ perceptions and understanding of computing
There is a huge demand for computing skills in industry due to computing becoming ubiquitous and essential for modern life. Yet despite this, industry struggles to find employees with suitable computing skills and similarly Further and Higher Education institutions have observed a lack of interest in their computing courses in recent years. This study looks at possible reasons for this lack of interest in computing, how computing is taught in education and ways to improve students’ perceptions and understanding of computing. It focuses around a case study of a university outreach event for secondary schools which investigated how interactive teaching methods can be used to enhance students’ perceptions and understanding of computing and to increase their computing knowledge. It includes the use of physical computing and was designed to make computing fun, motivational and relevant, and to provide examples of real-world applications. Surveys were used before and after the event to understand what students’ impressions and knowledge of computing is and to see if the event improved these. Observations were also used to see how well the students handled the event’s content and whether they appeared to enjoy and understand it. Results from the case study indicate that interactive teaching methods enhance computing education, and physical computing with electronics can enhance lessons and show the relevance of computing with examples of real-world applications, and can be fun and motivational. The case study provides teachers with example tasks and challenges they can use with their students and/or ideas around other interactive teaching methods including practical computing
Computational Thinking in Education: Where does it fit? A systematic literary review
Computational Thinking (CT) has been described as an essential skill which everyone should learn and can therefore include in their skill set. Seymour Papert is credited as concretising Computational Thinking in 1980 but since Wing popularised the term in 2006 and brought it to the international community's attention, more and more research has been conducted on CT in education. The aim of this systematic literary review is to give educators and education researchers an overview of what work has been carried out in the domain, as well as potential gaps and opportunities that still exist. Overall it was found in this review that, although there is a lot of work currently being done around the world in many different educational contexts, the work relating to CT is still in its infancy. Along with the need to create an agreed-upon definition of CT lots of countries are still in the process of, or have not yet started, introducing CT into curriculums in all levels of education. It was also found that Computer Science/Computing, which could be the most obvious place to teach CT, has yet to become a mainstream subject in some countries, although this is improving. Of encouragement to educators is the wealth of tools and resources being developed to help teach CT as well as more and more work relating to curriculum development. For those teachers looking to incorporate CT into their schools or classes then there are bountiful options which include programming, hands-on exercises and more. The need for more detailed lesson plans and curriculum structure however, is something that could be of benefit to teachers
The Effectiveness of Codesters in Teaching Basic Computer Science Topics
Founded in 2014, Codesters is a visual programming environment (VPE) like the popular Scratch and Alice. Its goal is to teach middle school and older student’s computer programming. Unlike its predecessors, users of Codesters drag and drop actual Python code instead of blocks and can edit the code themselves. Codesters has also developed modules that integrate coding lessons into the VPE.
In this study, we consider the Codesters Python 1 module and investigate its effectiveness in teaching the basic coding concepts of variables, loops and conditionals. During Fall 2018 and Spring 2019, we ran a coding class for eighth graders at a local Milwaukee school based on this module. We gave a pre-test, three quizzes and a post-test to evaluate what the students have learned. We then analyzed the results of these evaluations and compared them to those taken by students who learned programming in a traditional CS1 class.
Our results indicate that users of Codesters understood loops and conditionals as well as the students from the traditional CS1 class. We also found that the pre-test was a poor indicator of students’ performance in the coding class suggesting that Codesters is able to engage students who might not necessarily excel in a traditional classroom
Forty hours of declarative programming: Teaching Prolog at the Junior College Utrecht
This paper documents our experience using declarative languages to give
secondary school students a first taste of Computer Science. The course aims to
teach students a bit about programming in Prolog, but also exposes them to
important Computer Science concepts, such as unification or searching
strategies. Using Haskell's Snap Framework in combination with our own
NanoProlog library, we have developed a web application to teach this course.Comment: In Proceedings TFPIE 2012, arXiv:1301.465
Recommended from our members
Learning to Code: Effects of Programming Modality in a Game-based Learning Environment
As new introductory block-based coding applications for young students to learn basic computer science concepts, such as, loops and conditionals, continue to increase in popularity, it is necessary to consider the best method of teaching students these skills. Many of these products continue to exhibit programmatic misconceptions of these concepts and many students struggle with how to apply what they learn to a text-based format due to the difficulties with learning the syntactic structure not present in block-based programming languages. If the goal of teaching young students how to program is meant to develop a set of skills they may apply when learning more complex programming languages, then discerning how they are introduced to those practices is imperative. However, few studies have examined how the specific modality in which students are taught to program effects how they learn and what skills they develop. More specifically, research has yet to effectively investigate modality in the context of an educational coding game where the modality feature is controlled, and content is consistent throughout game-play. This is mainly due to the lack of available games with this feature designed into the application.
This dissertation explores whether programming modality effects how well students can learn and transfer computer science concepts and practices from an educational programming game. I proposed that by being guided from a blocks-based to text-based programming language would instill a deeper understanding of basic computer science concepts and would support learning and improve transfer and performance on new challenging tasks.
Two experimental studies facilitated game-play sessions on the developed application for this project. The first study was a 2x2 between subjects design comparing educational module (game versus basic) and programming modality (guided versus free choice). The findings from Study 1 informed the final version design for the module used in the second study where only the game module was used in order to focus the comparison between programming modality. Findings showed that students who coded using the game module performed better on a learning test. Study 2 results showed that students who are transitioned from blocks-based to text-based programming language learn basic computer science concepts with greater success than those with the free choice modality.
A comparative study was conducted using quantitative data from learning measures and qualitative video data from the interviews during the challenge task of the second study. This study examined how students at the extreme levels of performance utilized the toggle switch feature during game-play and how the absence of the feature impacted how they completed the challenge task. This analysis showed two different methods of toggle switch usage being implemented by a high and low performing student. The high performing student utilized the resources more often during the challenge tasks in lieu of leveraging the toggle switch and were still able to submit high level code. Results suggest that a free choice student who uses the feature as a tool to check their prewritten code rather than a as short cut for piecing code together as blocks and submitting the text upon the final attempt. This practice leads to a shallower understanding of the basic concepts and make it extremely difficult to expand and apply that knowledge to a more difficult task.
This dissertation includes five chapters: an introduction and theoretical framework, a game design framework and implementation description, two experimental investigations, and a quantitative and qualitative comparative analysis. Chapter one provides the conceptual and theoretical framework for the two experimental investigations. Chapter two describes the theory and design structure for the game developed for this dissertation work. Chapter three and four will discuss the effects of programming modality on learning outcomes. Specifically, chapter 3 focuses on implications of programming modality when determining how to implement changes for the design of the game for Study 2. Chapter five discusses a comparative analysis that investigated differing work flow patterns within the free choice condition between high and low performing students. Results from these three chapters illustrate the importance of examining this component of the computer science education process in supplemental games for middle and high school students. Additionally, this work contributes in furthering the investigation of these educational games and discusses implications for design of similar applications
Computer Science To Go (CS2Go): Developing a course to introduce and teach Computer Science and Computational Thinking to secondary school students
Computer Science To Go (CS2Go) is a course designed to teach Transition Year
Students about Computer Science and Computational Thinking. This project
has been conducted over two years and this thesis charts the development of
the course from the initial research stage, through the lesson creation sections
to the testing and evaluation of the course material. Over 80 hours of engaging,
informative and challenging material has been developed for use in the
classroom.
Alongside the lesson plans, assessment and monitoring tools have been created,
including a novel tool to assess students Computational Thinking skills.
The content was tested in two major studies after an initial pilot study. This
initial pilot study proved useful in constructing the full CS2Go course. Overall
the course has been well received with teachers and students engaging well
with the content. A web portal has also been created to allow for easy dissemination
of all the CS2Go material. The further development of this web portal
will turn CS2Go into a one-stop shop for teachers and educators hoping to find
CS teaching material
- …