• No results found

Teaching Computing London is a partnership between Queen Mary University of London and King’s College London19

. It is a resource hub which is supported by and contributed to by many different groups. They provide a large repository of activities and lessons which teachers are free to use in their classrooms. As with the CS Unplugged section a number of papers from the participants of Teaching Computing London were read during the literature review. The results and insights in these papers influenced the design of this course to include more unplugged lessons.

code.org

Code.org20

is a non-profit based in the US who believe that "every student in every school should have the opportunity to learn computer science". Through their annual Hour of Code campaign, they estimate that they have engaged 10% of all students in the world. They have designed a number of courses which are free and open source and are available online for schools and teachers. This ranges from primary schools courses all the way up to university level courses. As well as building games, apps and teaching programming languages they have developed many "unplugged" activities to teach programming concepts and Computational Thinking.

Bebras

Bebras21

is an "international initiative aiming to promote CS and computational think- ing among school students at all ages". The Bebras competition is held annually in many countries. Bebras problems are designed to introduce CS concepts and to test CT skills that do not require any prior technical knowledge. They are designed to be done using pen and paper but can also be made into interactive games, each question is short and focusses on one Computer Science topic. The Bebras problems have been

19 https://teachinglondoncomputing.org/

20 https://code.org/

3.2 external tools and resources used in cs2go

used extensively by the PACT group and this, along with studies found during the literature review (and described more in Chapter4), lead to their inclusion not only

in some of the lessons but also as the basis for some of the course assessment.

3.2.2

p r o g r a m m i n g

Two of the modules designed for CS2Go are programming modules. The first is using Scratch and is designed to be an introduction not only to Scratch but also to program- ming concepts. The second uses Python, specifically Python Turtle. This is designed to build on any acquired knowledge from the Scratch module but can also be taught separately. As discussed in Section 2.6.4, programming is one of the key skills to

help improve CT. This, along with the findings on each tool (Scratch and Python) dis- cussed below, lead to the development of these two modules. Alongside this, personal experience in teaching both Python and Scratch to beginner programmers of all ages, including the target TY age group, led to these two tools to be chosen.

Scratch

Scratch22

is a visual programming language designed by the MIT Media Lab’s Life- long Kindergarten group, which was originally released in 2005, with Scratch 2.0 being released in 2013. Scratch helps young people learn to think creatively, reason systematically, and work collaboratively through designing their own interactive sto- ries, games, and animations. It is available in both browser and desktop form and this allows schools and students to be flexible in how they use it. For those with poor broadband or internet connections then they can download the desktop version and avoid potential network issues. For those where this is not a problem, students can use the online version and can easily access the online community, remix templates and projects as well as access their own projects from home. If a school opts for the desktop version then students can take their programs home by saving them onto a USB drive, emailing them or storing them in a cloud drive.

As of 28th August 2018, there have been over 33 million projects shared and over 30 million register users. In July 2018 there was over 300,000 new users, nearly 500,000 new projects and over 3.1 million comments23

. Although targeted at primary school aged children, it is our belief from previous experiences and from feedback from teachers and other educators that Scratch can still be a valuable tool for secondary

22 https://scratch.mit.edu/

23 https://scratch.mit.edu/statistics/

3.2 external tools and resources used in cs2go

school aged students. It has been shown that using Scratch can allow students to learn programming concepts in a less-threatening way than a textual language [5, 36,83]. Scratch is also a very powerful language and, although often used to make

games, there is very little to limit the programs that can be designed. From the lit- erature review there were many examples of how Scratch has been used in a variety of educational contexts (see Section2.5.2). These findings including practical teaching

experience made using Scratch an obvious choice for the introductory programming module of CS2Go.

Python

Python is a scripting programming language which was first released in 1991. Since then it has grown in popularity and usage both in industry and as an introductory programming language. Reasons for this include its high-level syntax, this allows the concepts to be easily taught without being bogged down in syntax with a language like C or Java. It is multi-platform and so can be used across all operating systems and, as they state it "plays well with others" which allows it to be used across many different systems. It is also relatively easy to write quite powerful applications and functions without massive amounts of code; this allows learners to make quick progress. It is also a highly desirable language in industry with firms such as Google and Indus- trial Light & Magic using it in their applications. Recent surveys show that Python is increasing in popularity within employers and as a first programming language in educational institutions [88]. Python was also one of the common programming

languages used in studies found during the literature review (see Section2.5.2).

The suggested software tool for the CS2Go Python module is a website, repl.it. Whilst researching and investigating how best to teach the Python module several options were found. One option is to have students install Python 3 using Anaconda. We had previously used this to teach students in a CS001 course which used similar material. The CS001 module is an introductory CS module which is part of Maynooth Univeristy’s Certificate in Science Course24

. It is designed for students to take before entering a full-time degree program in science. In the CS001 module students cover topics such as the history of computers, operating systems and algorithms before spending a significant amount of time on programming.

Anaconda allows all the modules and libraries that would be needed to be installed in one go, and it also provides an IDE called Spyder which could be used. One draw-

24 maynoothuniversity.ie/study-maynooth/undergradute-studies/courses/

3.2 external tools and resources used in cs2go

back to this (or any installation of software) is that some schools and students might not have the facilities to do this. If schools only have older machines, then installing a large program might not be possible and this would prevent them from using this module of the course. The other issue is if students don’t have PC’s or laptops at home that can run Python efficiently then the same problems occur. Another issue is the grading and marking of assignments. If students save them as .py file on ei- ther local machines or an internal system, this will most likely require the teacher to download and possible run all these files individually, which is a time-consuming process.

We wanted to avoid this problem and so searched for browser-based solutions. One which was recommended wasrepl.itwhich is hosted in the cloud and so this allows you to log in and work on your programming sessions/problems anywhere. They allow for teacher and student registration which means that teachers can organise their class and keep track of student’s progress. Exercises (such as the one’s designed for this course25

) can be designed and published in the classroom and students can then attempt them. Once they’ve submitted a solution their teacher will be notified. Teachers can then run and grade the students’ work. This could be assigning it a pass mark or sending it back to the student with feedback and tips on how to improve it. For certain languages auto-grading is also available. repl.italso allows for Python turtle which was a necessity for this course, however it needs to be manually graded. Another feature that was helpful was allowing teachers to collaborate on classrooms which allows multiple teacher accounts to access the class. This could mean, for example, if a teacher needed help grading assignments, multiple teachers could do this. This feature used to be free but currently has been removed and is only available for schools that sign up to a pricing plan. There is also now a limit of 30 students per class for a free account.

3.2.3

w e b d e v e l o p m e n t

Mozilla Thimble26

was chosen as the tool to introduce students to web development and website design. Thimble is a full-featured code editor that runs in the browser. It is designed to "help new coders create their own sites and web-based projects using HTML, CSS & JavaScript". It is completely free and allows students to publish their sites live on the web. As it runs in the browser it is easy for students to continue working on their projects at home and in the classroom. It also easily allows students

25 repl.it/community/classrooms/87698

26 https://thimble.mozilla.org/en-US/

3.3 length & order

to "remix" projects, that is, to take other peoples projects and edit them. It also allows students to add files and has a tutorial feature that allows teachers to make their own tutorials which students can work through.

3.3

l e n g t h& order

The original plan was to develop a course that would be 20 hours long. This would provide teachers with enough content for anywhere from 4-20 weeks depending on the frequency and length of their classes. It would also allow enough content that topics could be picked depending on the teacher’s prior knowledge and experience as well as the facilities available to them. However, considerably more content was developed than this over the course of the research. A total of approximately 85 hours of content was created. This has allowed more topics to be covered and in more depth. It also allows teachers to be more flexible in choosing the lessons they wish to teach. Details relating to the created lessons and associated times can be seen in Table3.1.

The number of lessons refers to the number of separate lesson plans that were developed to teach each topic. In general, no lesson plan is shorter than 40 minutes (the minimum class slot in secondary schools), with the aim for most to be about an hour in length. An exception to this would be the Python and Scratch Projects as well as website design.

As explained in more detail in Section 3.4.3, the Python labs are "question-only"

exercise sheets, not full lessons. The exercises are based on the topics which would be taught prior to the students attempting the lab sheets. For ease of viewing, Table

3.1 presents the lessons in the order taught, followed by the lab which corresponds

to those lessons. For example, the first two lessons are "Introduction" and "Variables & Expressions" respectively, and these are followed by Lab 1.

The Intended length column in Table 3.1 describes the expected amount of time

taken to teach each lesson. For example, although there is up to five hours of activities for Cryptography, if designing a timetable, teachers would be recommended to spend two hours on this topic. This is just a guideline for teachers and they are free, and encouraged, to choose lessons which suit their class, content and knowledge level.

The Approx. maximum length column in Table3.1is an estimate of the maximum

amount of time that could be spent on a topic or lesson. This is informed through teaching the lesson. For example, different teachers have shown that lessons in the programming modules can take much longer than planned or anticipated. This is neither a bad nor good thing, as all students and classes will work at their own pace. For lessons which have not been tested, the lengths are inferred either from similar

3.3 length & order

lessons (such as other Scratch lessons), advice from teachers and other experts as well as personal experience.