1. Introduction
Everyday, we are captivated by colours in nature: bright yellows to deep greens of luscious grasses, radiant browns of the leaves in autumn, colourful birds, and beautiful delicate flowers. Colours also abound in our manufactured world: from the clothes we wear, cars we drive and images we make and see on our computer screens. Using coloured pens and paints can help us relax and are used in therapy, while the science of colour, optics and measurement, quantification, and recording of colours can be studied and analysed. Therefore, the study and use of colours can help motivate a wide range of scientific topics, stimulating a range of learning, skill development, knowledge, and understanding.
In addition, beyond the unequivocal scientific knowledge of light mixing, colour frequencies, and so on, there are many other complexities, ambiguities, and possibilities. These produce opportunities that can help motivate creative thought, critical thinking, decision-making, and other high-level thoughts. For example, naming colours, choosing colours for design work, and finding the right shade are all challenging tasks with uncertain outcomes [
1]. Subsequently, working through design guidelines, discussing choices, and investigating possible decisions can lead to more open-ended discussions of design, ethics, perception, visualisation, and broader understanding of the world we live in, all essential skills for the learner to develop. In fact, human perception of colour is individual—what people see is different from other people—and colours are perceived relative to other colours, lights, and shade. Consequently, there are many colour models that have been invented, which attempt to simplify colour spaces and different ways to encode them on a computer. Thus, all these complexities can help engender deep thought in the learner, provide a range of topics that will interest him/her, and help develop his/her skills. Essentially, there are different levels of understanding: from the colourful rainbows a beginner would understand, to more complex issues of colour perception. We reflect this breadth of skills by classifying the lessons as beginner, intermediate to advanced.
In this paper, we describe the structure of our course around the theme of colours, design, and visualisation, which is underpinned by active learning activities. The learning material is divided into a set of smaller lessons, each having one or more learning activities. In other words, it is not a matter for the teacher to merely explain the point or describe the concept; instead, the teacher needs to create an activity that the learner reads and follows. The activities structure the learning process, propelling the learner through the material. Furthermore, our infrastructure enables different teachers to create the learning sessions and is presented bilingually (English and Welsh), and our guidelines help to keep the activities consistent in structure and appearance. Other researchers will be able to take these structures and apply them to their own topics and lessons. Through the variety of activities, learners develop a broad range of skills and knowledge through following activities around the topic of colour. Throughout the paper, we highlight specific points that we want learners to understand and skills that we want them to develop. These include to critically think about the work before coding (and not to just jump into programming); to learn more about colours; to develop basic computer graphics skills (such as using layers in graphics and coding colours [
2]); to develop basic design and visualisation skills and learn and improve computer coding skills; and above all, to have fun with STEM activities around colours, design, visualisation, and graphics.
We contribute a careful structure of active learning activities and principles, which can be followed by other people who wish to develop learning materials online. We also contribute a set of lessons around colours, design, and visualisation, which learners may wish to follow or teachers use in their own lesson planning. We organised the paper into three parts. First, we describe the background and related work (
Section 2 and
Section 3). Second, we explain how we developed the infrastructure and describe the guidelines to structure and publish each learning activity (
Section 4). Third, we describe some of our activities. These include: introduction to colours, critical thought and design thinking, setting up a coding environment (which we use for several activities), colour basics, visualisation, colour effects, and more advanced activities (
Section 5,
Section 6,
Section 7,
Section 8 and
Section 9).
2. Background
Teachers have long adopted new technologies and have incorporated and explored novel teaching strategies. This is especially true of the coronavirus pandemic, which engendered much innovation in teaching, where academics and teachers had to change, and adapt their teaching, to online delivery. Likewise—as academics in computing and engineering, who teach computer graphics [
3], programming, optics, engineering, and so on—we wanted to help students learn whether they were (or not) part of our University. In particular, at the start of the pandemic, there were many students who wanted to learn, but were not sure what material they should follow. This need spurred us to create a series of learning activities for the public.
Especially seeing the many rainbows that appeared in people’s front windows, in celebration of the workers of the National Health Service, we were enthused to consider that we could create a set of learning activities around colours, rainbows, design, and visualisation. Our vision was to create a range of activities that would excite and encourage people to learn about colours and develop basic programming skills, critical thought, and so on, to more complex skills of critical thought, design, visualisation, decision-making, and ethics. Pulling together interested volunteers and calling the work “Project Rainbow” [
4,
5], we started to develop the content. Our focus was to develop material that was themed around colours, for people who wished to learn computer programming, creative, and visual computing skills. We would direct the material to students at secondary school, college, or universities who wished to follow an introductory to coding course. We had two priorities for the infrastructure:
Our first priority was to insist that every lesson had one or more
learning activities. Learners are more likely to retain the information and understand it in a deep way if they can interact with the material in some way. Students who wish to learn need to engage with the content and try it out for themselves. Shuell [
6] writes “Without taking away from the important role played by the teacher, it is helpful to remember that what the student does is actually more important in determining what is learned than what the teacher does”. With active learning, the students take an active role in the learning process [
7]. They are not, merely, listening or reading about a topic; instead, they are trying, practising, or even failing at tasks. They are “learning by doing” [
8] and applying their knowledge to solve problems and tackle challenges.
Many people on the team had experience with developing learning activities, Project-Based Learning (PBL) styles [
9] and authentic learning strategies. These include, for instance, the Five Design-Sheet method (FdS) [
10], which divides the design challenge into a subset of individual design tasks, and the Explanatory Visualisation Framework (EVF) [
11], which pivots the learning course around an authentic learning task. However, active learning activities are not familiar to everyone. Focusing on the learning activity, rather than the content, requires the teacher to rethink and re-organise how the material is created and presented. It is not a matter of writing the material, organising the lectures, and then, finally, contemplating what assessment or task could be asked of the learner. On the contrary, the teacher needs to realise the outcome and purpose of the learning, followed closely by the activity. We insisted that every lesson was built around a learning activity. A variety of activities could be imagined, such as building something out of cardboard, answering questions, performing research, following an example in code, extending the code, and so on. We encouraged teachers to explore different activities, but whatever task was chosen, it should be clear what the activity was to achieve, would develop skills, be appropriate in the colour theme, and be useful to the learner.
Our second priority was to organise the material into one coherent course, themed around colours. Ours is a constructivist approach [
12], where we set up the infrastructure and the students solved the problems to learn the material, without teacher intervention. We wanted several academics to get involved and develop content, because there was a broad range of skills in the school, and people had volunteered their skills and time. Thus, we needed to develop an infrastructure that would allow teachers to publish content when they had time to do so. When one person creates and delivers all the material, it is more straightforward to be consistent. They can hold, in their mind, tacit knowledge of the course structure and how it will be delivered. When working collaboratively, it is much more difficult to keep the delivery of the material consistent and focused. Probably, when working collaboratively, a detailed plan needs to be created, and people develop specific parts of the course; however, we did not wish to create a detailed plan, and instead wanted to encourage a range of lessons to be delivered, based on the theme. However, there are advantages in working as a group, because people can check each other’s work for accuracy and clarity. We wanted to have the best of both worlds: make a consistent structure, with material that looked like it was of a coherent and well-planned course, but be able to adapt and expand as and when people had time and ideas about materials they could add. Consequently, we needed to develop an infrastructure that would support people to present lesson content, allow the work to be peer-moderated before final publication, and look consistent. Subsequently, we developed an infrastructure using WordPress and established guidelines such that the material followed a similar structure, were tagged appropriately (so that they can be searched), and had a similar appearance.
4. Developing the Activity Structure and Learning Pathways
To develop the site, we decided to use WordPress (WP). We made this decision because we wanted to allow different people to edit specific parts of the site, and it would be mobile ready, accessible, and available on different platforms. We created three parts to the learning site: (1) landing page and information, (2) activities, and (3) study guide. The landing information is a WP page; activities are WP posts; the study guide is a dynamic page built from categories and tags.
4.1. Landing Page
We decided on a visual landing page with a simple design (shown in
Figure 1) and kept minimal information on the front page. We included a brief explanation that these are “STEM activities focusing on colours, light and optical effects”, included the list of activities, and provided a search for interesting activities. We did not want to have a long explanation of colours or describe information about the project, because we want learners to get going with the activities. Scrolling down the landing page gives direct access to the activities. Only specific authors have permission to edit these high-level pages. WordPress also allows different plugins to extend its main functionality. We used two additional plugins: First was a translation plugin to allow us to have dual language support (English and Welsh). Most academics started writing their activity in English, which was translated into Welsh by themselves or translated by another Welsh speaker. Second, we wanted to keep logs of activities to understand how the site was being used, and so needed to use cookies. Subsequently, we developed a privacy notice and cookie policy and allowed users to accept or reject our use of cookies.
4.2. Guidelines to Create Learning-Activities
Using WP meant that we could create individual activities as blog posts and post them to the site when they were available. Using the permissions and editing capability of WP meant that several academics could create the activities and not have access to the wider setup of the site. We also developed a set of written guidelines of how to write, create, categorise, and tag each post. The guidelines define the structure of each post, create categories, which are used to organise the site content, and the type of tags that would be useful for the site, which allow search engines to find individual activities.
Our guidelines for the activity structure needed to be well-defined, such that posts from different people were similarly structured, focused on an activity, and appeared visually similar, but also that they were not to restrictive as to constrain the type of activities included. Therefore, we decided to suggest the features of each activity, rather than any specific content or wording:
Each activity needs a descriptive title. The title needs to be short and explain what was to be done by the activity.
Introduce the activity and the material. Include necessary background information with links to external sources. Explain the activity with enough detail to allow the student to imagine the output or result.
The activity should be central to the lesson. There can be several stages to the activity, or several activities could be included in the lesson. Whatever strategy is followed, it is imperative that several steps are included and each step is ordered appropriately and clearly numbered. The steps can be interwoven with descriptive and explanatory information. However the activity is explained, what is imperative is that the instructions, purpose, and steps required are clearly presented. It is also important to consider the learner, his/her skills, abilities, background, and any colour vision impairment [
52], for instance incorporating principles of colour-blind-safe colours [
53].
Images or photographs should be used within the lesson. They must include a caption and relevant accessibility text descriptions (alt text) to improve website accessibility and search engine optimisation.
Several “top tip” summary boxes should be added. They should be formatted in the same way and be used to highlight something to remember or a skill to learn.
The lesson is created as a post in WP and must also include a summary description and have an associated indicative picture, which will be used in the learning pathway section. While the activity should be understandable in itself, it could link to other prerequisite activities.
Somewhere in the lesson, there should be questions to help students consider the material in a deep way. This could be achieved by including a set of instructions to help students “go further” or instructions or questions that encourage learners to perform additional exercises.
Any code used should follow the defined coding style (which is defined in CSS and added to WordPress). The style includes line numbers, consistent colouring, and highlights keywords. Following a code style means that every code fragment is formatted in a similar way.
We wanted to have a simple way to organise the activities. We used the
categories mechanism in WordPress. Three examples are shown in
Table 1. This allowed us to organise the material through the WordPress mechanisms. Consequently, we needed to define a set of categories, such that different academics would know how to label their activities.
The first category we required academics to include was one to define the level. There are several mechanisms we could have employed. We could grade the activities by level (e.g., secondary school, university), classify them by defining a difficulty grade (e.g., between one and five), or label them by a general name (such as beginner or advanced). Indeed, as a group of academics, we deliberated over these different mechanisms. Each of these classifications have their challenges, in particular because we do not know the attainment level of the learner. Potentially, we could have implemented an entry quiz to define the learner ability, but this would be more time-consuming and challenging to implement: it could provide another barrier of entry and would definitely delay when the students start the activities. Consequently, we decided to choose three simple labels: beginner, intermediate, or advanced. This convenient labelling scheme provides a mechanism for people to self-select their ability. Beginner we describe as new to programming and do not know much about colour. Intermediate activities develop skills for students who have coded before and know something about colour. The categories labelled advanced are for those who have done a lot of programming already. Additionally, we insisted that the posts were categorised with three additional high-level labels: “project rainbow”, “colours”, and (if a programming exercise) a computer language, e.g., “Java”. We used these WordPress categories to help organise the site and allow people to better navigate the site.
We also needed a way to organise the material in a more descriptive way that was specific to a lesson. This would also allow people to search for and locate specific topics of interest. For this purpose, we used the tags mechanism in WordPress. We allowed teachers to choose their own tags, but encouraged them to select words that described the whole activity or individual parts of the activity. We proposed that the best way to achieve this was that teachers think through each step in the lesson and provide a tag name for each part. For example, with the coding tasks, the tags would describe different aspects of the code, such as colour, grid, for loop, array, and so on. They will be used to organise the activities and allow search engines to match learners to the best learning activity.
Creating the guidelines for the creation of each lesson post is useful. Not only do they provide a standard way of creating the posts, but the act of creating the guidelines helps to confirm what is important. Therefore, to create a lesson, teachers should:
Follow the eight-stage activity structure, including title, lesson introduction, background information (with links to external sources), central activity or several activities, images/photographs, and several top tips. Any code should follow the coding style.
Define categories. Authors need to categorise each post as “Project Rainbow” and label each as one of beginner, intermediate, or advanced.
Add tags. Authors should add five or more tags. The tags must describe different parts of the activity. We encourage adding common tags such as colour, critical thinking, HSB, others that describe the programming language (e.g., Java, JavaScript, Processing.org), and those specific to individual parts of the activity. These tags help to describe the activity, can be used in search engines, and together offer insight into the type of activity that is asked of the learner.
Create a summary description. Include a summary description of the activity, focusing on the task that the student will achieve. This will appear in the learning pathway section.
Translate. Authors need to organise the translation into Welsh, or vice versa.
Peer review and publish. When completed, each activity is peer-reviewed by a colleague, for its accurateness, quality of post, clarity of instruction, and appropriateness for Project Rainbow. Academics could nominate another user of the system to act as their reviewer.
4.3. Study Guide
The final section to the site is the study guide. Screenshots of different activities are shown in
Figure 2. While all learning is a personal experience [
54] and some students will find their own learning strategies [
55], we wanted to publish a suggested way to navigate the material. Our suggested learning pathway organises the lessons in order of beginner, intermediate, and advanced. We provide a suitable structure to linearly progress from one activity to the next. Students can use this list as an index into the material. Our learning pathway mixes types of activities. Some are practical activities that move the student away from a computer (sketching, using a laser pointer, etc.), while others are programming activities. Many of the activities use the
http://processing.org (accessed on 30 January 2022) library, while others use JavaScript or CSS. We chose processing.org [
56] because it was developed to create visual images and has been used with learners with wide abilities. If someone wishes to follow the activities in a different order, then they can search for specific topics. This is possible because the posts are tagged and classified in a consistent way. Students can search the Project Rainbow site for specific keywords or select only (for example)
beginner exercises.
5. Introductory Activities—Learning about Colours
We included several introductory activities and explain four here. Our aim was that through these activities, the learner will learn something new about colours and develop his/her knowledge in an accessible and interesting way. When developing introductory learning materials, it can be challenging to know the level and writing style. We did not want to patronise, but we did want to cover basic concepts, which would become the foundation that other activities could reference. Consequently, we mixed basic knowledge with information that people may not know. For instance, when introducing colours, we obviously made reference to the colours of the rainbow (Red, Orange, Yellow, Green, Blue, Indigo, and Violet) and made reference to the mnemonic Roy G. Biv. This is a useful mnemonic because it highlights the main three primary colours Red, Green, and Blue, which helps us lead onto the RGB colours that are used on computers [
2].
The first activity gets students to create a colour spinner. We include step-by-step instructions for how to create and use one and a downloadable template that can be printed and cut out. We use this activity to help discuss basic concepts in rainbows in nature and light (see
Figure 3). We explain how rainbows in nature are formed and that the second arc of a double rainbow is reversed. We discuss different aspects of colour, such as the colours of a rainbow, as seven distinct colours, are attributed to Aristotle (384–322 BC), but they may have been developed by Aristotle’s successors Theophrastus or Strato. We explain that Newton, with his colour circle, described how coloured lights can be mixed together and that he only used five colours, but adding orange and then indigo to match with the seven notes in a major scale. This information helps to get people to critically think about colours and understand that the seven colours in a rainbow are artificially named. We link to external sites, such as Wikipedia pages, to allow people to read about the topic, discuss mixing paints versus mixing lights (subtractive and additive colour mixing), and define terms such as colour hues.
The second activity focuses on coding colours using the RGB model, finding and naming colours. We discussed, as a team, if we should teach RGB or Hue–Saturation–Value (HSV) colour spaces first. HSV has the advantage that the colours are ordered by the rainbow hue; however, after deliberation, we decided that it was important that learners understand RGB colour coding. Manipulating RGB colour spaces can be confusing, and we thought that it would make a good activity. We added a further post at a later time, on the topic of colour spaces. We were careful in our wording about the RGB colour model and defined technical terms when needed. We used a colour picker that we embedded into the WordPress post. There are many colour pickers that could have been used, such as Google’s colour picker or the W3Schools HTML colour picker. While each has its advantages, we decided to embed our own colour application into the page (created with p5.js), shown in
Figure 4b. The embedded colour picker meant that learners could stay on the page while exploring the activities. If people wished to look at more advanced colour pickers, they could visit the external sites. In addition, it would have been possible to perform a similar activity in processing.org, edit p5.js, or in HTML, and we had plans to create activities around these different pickers. However, at this stage, we wanted to focus on basic principles and not rely on coding knowledge, so chose to use the embedded colour picker code and focus on the colours themselves, not any specific picking tool.
The third activity gets students to bend laser light in a glass of water (
Figure 5), and the fourth gets students to add a rainbow to an image. Integrating a broad range of different activities into Project Rainbow was useful. While some activities needed computers, other activities encouraged students to move away from their computers. Hopefully, people will have a laser pointer (such as from a cat toy). We list the materials (pint glass, washing liquid, laser pointer) and provide the instructions in a YouTube video. While for the fourth activity, we give instructions using Photoshop, we explain the process such that people could use another editor, including: load an image, create a rectangle, change the gradient fill, rasterise, change opacity and blur. In fact, we used this image as the memorable image for the whole site (see
Figure 1).
6. Planning Activities—Critically Thinking and Sketching Proposed Solutions
There is an advised order for some activities. We explain at the start of an activity if it would be advisable to take another before. For instance, introduction to colours and RGB colour coding are important to understand, but the laser pointer and Photoshop activities could be taken later. Notably, many activities rely on the next four activities. First, it is important that students download the
http://processing.org (accessed on 30 January 2022)
sketch environment and understand how to us it. Second, the Critical Thinking Sheets (CTSs) are used in several activities. Third, understanding some basic computer graphics principles will substantially help learners be able to develop graphical code more easily. Finally, understanding the Hue–Saturation–Value (HSB) colour space is important and heavily relied upon in later activities.
Subsequently, the introduction to the processing.org [
56] environment is important. We make it interesting by directing the activity around creating randomly positioned, RGB coloured lines (see
Figure 6). When taught at the degree level (in our introduction to computer graphics unit), we add much more detail. We discuss different coordinate spaces (right-handed and left-handed coordinate systems [
2]) and different ways to express lines, for example: in processing
line(x1,y1,x2,y2); path descriptions in SVG
<path d="M 100 100 L 300 100 z" stroke="blue"/> to move the turtle in Logo graphics
forward 100. However, we decided to keep the activity focused on setting up the environment and included basic computer graphics concepts. At this stage, we use
static sketches in processing.org which keeps the programs simple by creating a single image, without animation or interaction.
Understanding the structure and use of the Critical Thinking Sheets (CTSs) [
10,
11] is another important goal, as the method is used in many activities. The activity gets students to contemplate and reflect on their task and make plans and strategise appropriate solutions—skills that are often omitted [
25]. Understanding and envisioning the goals of the tasks is important, especially with coding. We do not want learners to rush straight into coding. Instead, we want them to critically think about their problem, make a sketch, and write some ideas about how they could solve it. Through this strategy, bad ideas or misunderstandings can be thrown out. Especially when programming computer graphics, learners often jump into code too soon. They write some code, try out values, see the response, and try some more. This trial and error process takes time and can be reduced with some thought and planning, which we achieve through the CTS method.
The Critical thinking Sheet (CTS) method [
30,
31] gets learners to think about their challenge from five complementary angles.
Figure 7 (left) shows the layout of the CTS sheet and labels the five parts. First, the learner needs to ➀ explain the challenge in about two short sentences. Then, they ➁ sketch a picture of what the outcome could look like; labels can be added to help explain the parts. In Panel ➂ the main components, facets, or parts of the idea are considered. Panel ➃ allows the student to think about the process and the individual algorithmic steps that are required to implement the design. Finally, in Panel ➄, people can consider what they need to do next to implement it.
We encourage students to complete the CTS by hand. We provide a PDF of the sheet, such that students can print it out and sketch the solution in pen or pencil. We encourage the use of pen and pencil from our positive experiences with sketching on paper for design ideation, when people use the Five Design-Sheet design study [
10]. Indeed, from our experience, students who have used the CTS through tablet PC interfaces have performed less well than those using traditional pen and paper [
30,
31]. It is much easier for people to complete the sheets by hand and quicker for them to make sketches. Students readily know how to use a pen and quickly complete the sheet. However, it takes them much longer and the outcome is not as clear or expressive if done on a touchscreen or computer. It seems that students get distracted by technology (deleting, editing, resizing, colouring, aligning, and so on) rather than focusing on the main ideas and contemplating appropriate solutions. We acknowledge that the situation may change in the future. Tablet interfaces are getting more prevalent (with many students having ready access to smart phones, tablets, or touchscreen PCs), but their skills (currently) are still less refined than with pen and paper.
Completing all five steps of the CTS is important. When learners have to explain the challenge and write it down in a small space, they are forced to think hard and critically about the core ideas. Making a sketch helps learners externalise their vision. The drawing not only provides a record of the idea, but when they start coding, they can use this picture as a measure of how far through the project they are. They have a picture to help them know when they have completed it. When people summarise the problem into “parts”, they need to imagine and break the problem into individual parts (analysis). Plus, they need to put similar ideas together into overarching categories (synthesis). The importance of Panel 3—breaking the idea into individual parts—cannot be understated. The ideas here can be used to help the student break the idea into separate parts—strategies often used in computing. For instance, Dijkstra [
57] suggests to consider a “separation of concerns”, where different functions achieve separate tasks. One such separation is exemplified by the Model, View, Controller pattern [
58] (where the View reflects the Model and the Controller updates the model). This type of thinking helps to prepare the learner for concepts that will be used in the future, in preparation for using constructs such as MVC, classes and objects and other structures if later they build an object oriented solution and, in our case (in
Figure 7), primitives and attributes. In panel ➃ they are thinking about the algorithmic steps and the important stages of the algorithm. Finally, the fifth panel forces them to reflect on all of the ideas that they have contemplated and consider what they will do next to move forward from ideas to practice.
To achieve the lesson, we chose to create a rainbow scene, with a tree and some grass. An example of a completed sheet for the rainbow scene is shown in
Figure 7. In this case, Panels ➀ and ➁ are relatively straightforward. However, Panel ➂, which gets learners to summarise the system into parts (consider different facets of the system), is more time-consuming. In addition, we want students to learn some basic computer graphics terminology (such as graphics
primitives and
attributes). In fact, this scene can be made by using simple graphics
primitives of coloured circles and rectangles. We explain what each of these are and provide examples. Circle primitives can be used for the
rainbow, rectangles and circles for the
tree, and rectangles again for the
grass. Attributes for the rainbow (red, orange, yellow, green, blue, indigo, violet),
trunk colour (brown), and
leaf colour (green)and shown in the middle-right panel on the CTS Completed sheet, in
Figure 7.
To understand the graphics drawing process, we created a physical mockup of the scene; see
Figure 7 (right). This process will help the learner consider the steps needed to create the picture, using layering effects in computer graphics [
2], where the rainbow parts are made from circles and they are positioned at the back. Subsequent circles partially occlude earlier circles. Then, the grass is added, which occludes part of the coloured circles, allowing them to appear as semi-circles to make up the rainbow shape. Finally, the tree is added, with the leaf circles on top, as they are the closest to the observer. Using this physical mockup, it is easy to explain how the visual illusion turns the rainbow-coloured circles into arc-like visuals. We could have used arc primitives for each rainbow part, but this would not necessarily describe the graphics principle of layering objects.
10. Discussion
We believe the colour theme was successful. Certainly, colour is a topic that enables many skills to be developed and explored and enthuses people to learn. It provides an underpinning focus that connects all the activities together, and definitely, there are many different lessons that can be taught within this theme. Colour and creativity go hand in hand. Colouring books are often used to help people relax, and creative computing is certainly fun for many people [
66]. Different types of creative development, such as designing webpages, games, and programming, are all tasks that inspire young people [
67]. However, there are many challenges when using colour.
First, people find it a difficult topic to understand, from comprehending how colours interact [
45], the intensity and range of colours [
68], how they can be used to communicate effective information [
47], to how colour affects the perception of objects [
69]. When creating activities in colour, we tried to keep the instructions clear and to lead readers step by step. However, teachers need to be careful that they are teaching the correct information in a way that does not mislead. The guidelines that we employed along with our peer-review strategy all helped to create suitable teaching material. In addition, there are many more topics that we could have covered and activities to invent. For instance, it would be good to add a colour activity on mixing, using different lights and filters [
68]. It would be exciting to see if it were possible to create more activities using objects that people would find around their home.
Second, colour vision deficiency can impinge on people using the activities. Indeed, many of our activities use the rainbow colour map. While this is easy to use, colourful, and creates interesting pictures, the created pictures are not colour safe. Colour vision deficiency is common, affecting about 8% of men and
% women [
70]. It can impinge on every-day activities, from choosing clothes to wear and understanding signage [
71]. There is a huge opportunity to develop a range of active learning activities focusing on good practice in colour. Such material would help readers understand how to create colour-safe pictures, data visualisations, or patterns. Individual researchers have developed specific solutions. For instance, Borkin et al. [
47] investigated best practices in communicating medical visualisations through colour-safe colour maps. In addition, tools, such as ColorBrewer [
53], incorporate colour-safe colour combinations. While each of these instructions are useful, there is no one set of learning materials that is accessible for the public. Furthermore, there are few recorded active learning activities that provide guidance to use colour effectively. Subsequently, it would be interesting and exciting to have access to a wider set of guidelines that are focused on learners and include a range of activities of good practices in colour. It would be a resource that could be used by designers, visualisation educators, and many other people.
The guidelines that we developed provide a structure that other people can follow. These have been useful to help create consistent-looking and structured activities, with a clear set of tasks. The peer review process has helped to improve the lessons. We include some accessible guidelines so as to have clear titles, labels, alternative descriptions on images, descriptive summaries, clear goals in the tasks, and so on. Making the lessons accessible is important. Our academics are familiar with making images with high colour contrast, large fonts, well-structured slides, and so forth, and we have experience using Ally and other tools [
72]. However, our guidelines do not address colour deficiencies or all possible accessible issues. We could run automatic checks on the lessons and report on their accessibility. However, we instead left these decisions to the teacher and creator of the activity. Any queries or questions can come through the reply mechanism, where the teacher can answer the questions and correspond with the learner.
We created a wide range of activities motivated by colour, from editing photos, coding colourful patterns to sketching designs. However, there are many more activities that we could create. For example, in other courses, we have taught fractals, picture generation by transparent designs and other effects, and more aspects of lights, optics, and other scientific topics. However, teachers could always do more. With the Project Rainbow structure, it is possible to create the activity and publish it when it is created. This means that people can start doing the work as soon as it is online. It also means that the quantity of activities can grow over time, and perhaps over time, the less popular ones will be removed from the system—in this way, refining and improving the learning material.
While also most of the activities involve computer programming, we included several crafting and sketching tasks. These allow people to move away from the computer. We are strong advocates for using a wide range of activity types in the teaching. We believe it helps to keep the learners interested, and people get to try out different techniques. However, it is clear that some learners do not enjoy doing different activities [
29]. We found that some students (especially those studying for a software engineering degree) have expressed that they did not like the non-computer programming activities. They are a minority voice, and seem to be students who just want to code. The views appear to be from people who have more coding experience, in comparison to their peers. Perhaps, they are visualising and thinking through their code in their mind and, perhaps, have implicitly considered the issues already. However, anecdotally, we have seen the very same students perform less well in project modules, suggesting that they are missing out on the richness of developing their broader, critical thinking skills.
One of the main challenges, however, is that the activities take time and effort to create, especially to make them suitable for public delivery. Academics are busy people performing teaching and research, and it is challenging to find additional time to create these activities. Furthermore, care and attention are required to guarantee that the information is correct, clear, and can be followed by people. Stand-alone lessons need to have additional explanation, clear diagrams that explain, code examples, and so forth, to make them clear and easy to follow. Therefore, images need to be designed, created, edited, saved as a small file (for quick remote download), copyright free, and uploaded to the WordPress store along with an alternative description. Like any form of publishing, developing the content of each activity takes time and effort. In fact, we know that the activities went through many versions before being published. They were created, edited, refined, and reorganised many times before being peer reviewed, translated into Welsh, and published. Additionally, while this is now a bilingual resource, it definitely takes more time and effort to develop activities in two languages. The WordPress translation plugin was extremely helpful when creating this resource.
11. Summary and Conclusions
Developing Project Rainbow has been a rewarding experience, and we have had positive feedback from participants saying thanks and expressing that they have found it interesting and rewarding to follow. It is interesting to look at the statistics on the site. Some activities have been more popular; the activities on creating a coloured grid in processing, pure CSS rainbows, a rainbow in code, and learning the Hue, Saturation, and Value (HSV) color space were the most popular, with participants coming from the top five countries of Australia, the United States, the U.K., India, and Canada, respectively. Most referrals came from Facebook and Twitter. This seems sensible, because they were our two primary sources of advertisement.
We set out to create a set of activities focused on colour and rainbows; we achieved these goals and created a structure and ideology that other people can follow. Looking back, we now see much worth in the early discussions, when we deliberated how to set up the site. Making each of the activities a WordPress post enabled many academics to get involved with the project and to create activities. Developing guidelines of how to structure the lessons helped to make a consistent site and has started to influence how other taught modules are run at the University. At the start of the project, we were keen to develop learning activities, with the knowledge that they were useful. Upon reflection, we now have a stronger view that learning activities are necessary. We have since taken ideas that we have learned in this project and applied them to our own degree teaching. First, we re-used the materials in several classes and workshops, in particular, we used the Welsh versions of the ten
http://processing.org (accessed on 30 January 2022) programming activities in the
https://eisteddfod.wales/ (accessed on 30 January 2022) of Wales. Second, we re-organised some of the material and used them in our creative computing, storytelling, and design module unit. We followed the research, design, development, and reflection structure and ran a different activity each week to support the lecture material. We developed videos of the activities, wrote guidance material, and set a series of tasks for the students to perform.
Project Rainbow has been a success. It has enabled us, as academics, to create a range of public-facing activities. Members of the public and those at the National Welsh Eisteddfod have followed them in both Welsh and English, and we have learned and applied the structure to other projects and courses. The guidelines have helped us create a consistent site and allow different teachers to create content.