66,122 research outputs found
Lisp, Jazz, Aikido -- Three Expressions of a Single Essence
The relation between Science (what we can explain) and Art (what we can't)
has long been acknowledged and while every science contains an artistic part,
every art form also needs a bit of science. Among all scientific disciplines,
programming holds a special place for two reasons. First, the artistic part is
not only undeniable but also essential. Second, and much like in a purely
artistic discipline, the act of programming is driven partly by the notion of
aesthetics: the pleasure we have in creating beautiful things. Even though the
importance of aesthetics in the act of programming is now unquestioned, more
could still be written on the subject. The field called "psychology of
programming" focuses on the cognitive aspects of the activity, with the goal of
improving the productivity of programmers. While many scientists have
emphasized their concern for aesthetics and the impact it has on their
activity, few computer scientists have actually written about their thought
process while programming. What makes us like or dislike such and such language
or paradigm? Why do we shape our programs the way we do? By answering these
questions from the angle of aesthetics, we may be able to shed some new light
on the art of programming. Starting from the assumption that aesthetics is an
inherently transversal dimension, it should be possible for every programmer to
find the same aesthetic driving force in every creative activity they
undertake, not just programming, and in doing so, get deeper insight on why and
how they do things the way they do. On the other hand, because our aesthetic
sensitivities are so personal, all we can really do is relate our own
experiences and share it with others, in the hope that it will inspire them to
do the same. My personal life has been revolving around three major creative
activities, of equal importance: programming in Lisp, playing Jazz music, and
practicing Aikido. But why so many of them, why so different ones, and why
these specifically? By introspecting my personal aesthetic sensitivities, I
eventually realized that my tastes in the scientific, artistic, and physical
domains are all motivated by the same driving forces, hence unifying Lisp,
Jazz, and Aikido as three expressions of a single essence, not so different
after all. Lisp, Jazz, and Aikido are governed by a limited set of rules which
remain simple and unobtrusive. Conforming to them is a pleasure. Because Lisp,
Jazz, and Aikido are inherently introspective disciplines, they also invite you
to transgress the rules in order to find your own. Breaking the rules is fun.
Finally, if Lisp, Jazz, and Aikido unify so many paradigms, styles, or
techniques, it is not by mere accumulation but because they live at the
meta-level and let you reinvent them. Working at the meta-level is an
enlightening experience. Understand your aesthetic sensitivities and you may
gain considerable insight on your own psychology of programming. Mine is
perhaps common to most lispers. Perhaps also common to other programming
communities, but that, is for the reader to decide..
Increasing student motivation in computer programming with gamification
Games have important motivational power. They
take advantage of a set of tools to encourage people to engage
with them just for the joy of playing and the possibility to win.
While gamification is gaining ground in a lot of areas in our
society, its application in education is still an emerging trend.
In recent years, gamification has attracted the attention of
researchers from different areas such as teaching and learning
computer programming. Ever since the first programming
languages emerged, the problems inherent to programming
teaching and learning have been studied and investigated. The
theme is very serious, not only for the important concepts
underlying computer science courses but also for reducing the
lack of motivation, failure, and abandonment that result from
student frustration. In most of these studies and research one
factor prevails, lack of student motivation or how to motivate
students to learn programming. One way to combat this
problem is to use gamification. Using game design elements in
non-game contexts is one of the good ways to motivate and
encourage students to learn programming. To assess how
gamification impacted the learning experience, we compared
data from one gamified and non-gamified year. In general, the
results show significant improvements in terms of attendance
to class, participation, and proactivity. They also suggest that
our approach can reduce the high rate of failure grade among
students. In conclusion, this case study, we show how the use of
concepts related to gamification can improve motivation,
passion, beauty, joy, awe, e naturally the succeed in
programming
CBUSSTUDENTHACK: ​Innovation and Inspiration for Everyone
CBusStudentHack is a 7-week programming contest organized by Franklin University for High School students around the Central Ohio region. The event aims at promoting computer science education and providing High School students with 21st century skills needed for college and career readiness. Since its inception in 2015, this event has attracted a lot of students to learn, design and develop mobile apps to solve problems relevant to their own life and make a difference in the community. Enrollment has grown significantly and tripled only in three years. The impact of this event is beyond getting students to write computer programs. It provides an opportunity to engage young students in technology education, to bring Computer Science to underrepresented groups, to empower students to bring their creativity to life, and to discover the fun and beauty in solving real problems with computing.https://fuse.franklin.edu/ss2018/1009/thumbnail.jp
Research questions and approaches for computational thinking curricula design
Teaching computational thinking (CT) is argued to be necessary but also admitted to be a very challenging task. The reasons for this, are: i) no general agreement on what computational thinking is; ii) no clear idea nor evidential support on how to teach CT in an effective way. Hence, there is a need to develop a common approach and a shared understanding of the scope of computational thinking and of effective means of teaching CT. Thus, the consequent ambition is to utilize the preliminary and further research outcomes on CT for the education of the prospective teachers of secondary, further and higher/adult education curricula
- …