2. Research Objective and Definition of Problem
Research Objective : To develop cognitive excellence in students of age group 11-14
years preferably using computational thinking skills and techniques by using concepts
of music as a medium of learning
Definition of Problem : It is important to understand by taking evidence from neuroscience
on how the brain actually works, and how we can enhance problem solving skills in
students that can be applied to nearly any context
Hence we are trying to emphasize the importance of creativity in the learning process by
creating music through the application of computational thinking.
Our goal is to develop and disseminate ways to enhance students’ grasps of
computational thinking by engaging them in fundamental concepts that unite computing
and music.
3. What is Computational Thinking?
Wing suggested that “ Computational Thinking ” (CT) is a fundamental skill of analytical
thinking for everyone, not just for computer scientists.
Computational Thinking involves solving problems, designing systems, and understanding
human behavior by drawing on the concepts fundamental to computer science. Thinking
like a computer scientist means more than being able to program a computer. It requires
the ability to think at multiple levels of abstraction.
Computational Thinking
inherently includes :
Creativity
Ability to
explain
Team work
Thinkng logically,
algorhythmically,
recursively
Understanding
people
4. Techniques used in Computational Thinking
Decomposition
The ability to break down a task into minute details so that we can clearly
explain a process to another person or to a computer, or even to just write
notes for ourselves. Decomposing a problem frequently leads to pattern
recognition and generalization, and thus the ability to design an algorithm.
Example : When we taste an unfamiliar dish and identify several ingredients
based on the flavor, we are decomposing that dish into its individual
ingredients.
Pattern
Recognition
The ability to notice similarities or common differences that will help us
make predictions or lead us to shortcuts. Pattern recognition is frequently
the basis for solving problems and designing algorithms.
Example : Children identify patterns in the reaction of their parents and
teachers to their behavior in order to determine what is right and what is
wrong. They base their future behavior on these patterns.
5. Techniques used in Computational Thinking
Pattern
generalization &
abstraction
The ability to filter out information that is not necessary to solve a certain
type of problem and generalize the information that is necessary. Pattern
generalization and abstraction allows us to represent an idea or a process
in general terms (e.g., variables) so that we can use it to solve other
problems that are similar in nature.
Example : A world map is an abstraction of the earth in terms of longitude
and latitude, helping us describe the location and geography of a place.
Algorhythm
Design
The ability to develop a step-by-step strategy for solving a problem.
Algorithm design is often based on the decomposition of a problem and
the identification of patterns that help to solve the problem. In computer
science as well as in mathematics, algorithms are often written abstractly,
utilizing variables in place of specific numbers.
Example : When a chef writes a recipe for a dish, she is creating an
algorithm that others can follow to replicate the dish.
6. Background Study
We studied and analyzed lot of research papers based on theories and applications of
computational thinking, programming languages that use music as a medium of learning,
integration of computational thinking in K-12 curriculum and other relevant projects in
the same domain.
Some important applications for learning computational thinking are listed below :
Scratch
a programming environment that enables young people to create their own interactive
stories, games, and simulations, and then share those creations in an online community
with other young programmers from around the world.
http://web.media.mit.edu/~kbrennan/files/Brennan_Resnick_AERA2012_CT.pdf
Algo.Rhythm
Algo.Rhythm is a set of drum robots with programmable behavior. Each drum robot
records pattern of beats when knocked on, and replays the rhythm by hitting its neighbor.
http://vimeo.com/38300442
Algorithmic Composition: Computational Thinking in Music
The composer still composes but also gets to take a programming-enabled journey of
musical discovery.
http://cacm.acm.org/magazines/2011/7/109891-algorithmic-composition/fulltext
7. Background Study
Performamatics
Computational thinking through computing and music.
https://teaching.cs.uml.edu/~heines/TUES/ProjectHome.jsp
We have made a wiki page for proper documentation of all the important and relevant
literature with respect to our domain of interest. It contains all the research papers and
texts that enabled us to progress further in this subject area.
Here is the link to our wikip page containing all our reference links for study http://computunes.wikidot.com/
8. Why a screen-based solution and why music?
Why a screen based solution?
Greater flexibility in user functions
Able to implement directed task based learning in game format,
not needing teacher intervention
Added possibility of tracking learner's progress and pitfalls
Why music as a medium of learning?
Scratch is a visual programming language which allows kids to make animations and
music.
Logo Turtle : Programming language which uses the graphical element Turtle and was
mainly used for making drawings.
We aim to provide a new medium of learning(music) to kids which we believe is a medium
that they might enjoy exploring with.
9. Initial framework
Our initial approach involves conceptualizing a game design which aims at building
musical sounds taking analogy from a dj disc which has concentric circles as different
notes. It has 8 sectors which represent beats i.e. a unit of time.
We have to build musical sounds by linking one disc to one or more discs through a
defined pattern by decomposing the given musical piece into understandable pattern.
function disc
A rough representation of
the function disc is to show
how notes will be
represented and linked on
the given beat.
Note
Every concentric circle
is a note.
c
Note
If I click ‘d’ , the color
changes to pink and
the note is played for
the 8th beat.
d
e
8th
time
Arc end point
will be the place for
links to other functions/
discs.
time
1 beat of music which
is a unit of time.
10. Initial Framework
One of the sample task could be Our initial task for the user would comprise of a musical clip.
The clip will be played and the user will have to recreate the same using different discs
and linking them in a way so as to match the beat pattern.
The choice of number of discs and number of links will depend on the choice of the user
so as to how he wants to tackle the problem.
The computational skills of algorithm building by looping and decomposition will be taught
through such tasks in a very abstract and fun way.
The aim is to motivate the user to think computationally and solve these problems with
a strategic approach.
11. Sample Task
ABCD ABED
t=0
1
2
8
1
1
1
2
C
3
7
2
8
3
7
8
3
7
A
A
D
B
B
E
4
4
6
3
5
f1
(Main disc)
6
5
4
6
5
2
f2
f3
4
Pointer on f1 is at 1 and at t=0 f1 calls f2 => AB is played; pointer on f1 moves to 2
f1 starts playing again => Note C is played.
Then, f3 is called => Note D is played; pointer on f1 moves to 4
f1 starts playing : f1 calls f2 again => AB is played; pointer on f1 moves to 5
f1 starts playing => Note E is played
f1 calls f3 => Note D is played.
12. Further plan
We are discussing on building specific tasks to be given to the user to build musical
patterns that uses computational thinking techniques at the back end.
We are also focusing on all possible representations and interactions for such a game
design which is fun and intuitive to play with. But at the same time helps in enhancing
computational thinking ability among the kids.
Our methodology would include repetetive prototyping of the game design and testing it
with real users through a set of exercises. These exercises will be designed based on
theories of computational thinking. We would also be focusing on enhancing the user
experience for the interface in addition to using the principles of gamification for our
game design.
We would iterate, re-iterate and keep on testing till we satify our aim of building the game.