1,541 research outputs found
A Case Study in Modular Programming: Using AspectJ and OCaml in an Undergraduate Compiler Project
We report our experience in using two different languages to build the same software project. Specifically, we have converted an entire undergraduate compiler course from using AspectJ, an aspect-oriented language, to using OCaml, a functional language. The course has evolved over a period of eight years with, on average, 60 students completing it every year. In this article, we analyze our usage of the two programming languages and we compare and contrast the two software projects on a number of parameters, including how they enable students to write and test individual compiler phases in a modular way.
A gentle transition from Java programming to Web Services using XML-RPC
Exposing students to leading edge vocational areas of relevance such as Web Services can be difficult. We show a lightweight approach by embedding a key component of Web Services within a Level 3 BSc module in Distributed Computing. We present a ready to use collection of lecture slides and student activities based on XML-RPC. In
addition we show that this material addresses the central topics in the context of web services as identified by Draganova (2003)
Supporting the Algebra I Curriculum with an Introduction to Computational Thinking Course
The Louisiana Workforce Commission predicts a 33.6% increase in computer science and mathematical occupations by 2022 and the Bureau of Labor Statistics foresees a 16% increase in computer scientists from 2018-2028. Despite these opportunities for job and financial security, the number of Louisiana students enrolled in a nationally accredited computing course is less than 1%, compared to national leaders California and Texas which have 3% and 3.8% of students respectively. Furthermore, the international assessments of mathematical literacy, PISA and TIMMS, both report American students continue to fall further behind their international peers in mathematics achievement.
This thesis rejects these statistics as definitive and attempts to contribute to an expansion of the mathematical libraries of a computational thinking course that a teacher could use to support a standards-based Algebra I course. The framework presented in this thesis supports the Louisiana State University (LSU) STEM Pathway course entitled Introduction to Computational Thinking (ICT). The course introduces students to a systematic problem-solving approach in which they learn to solve problems computationally, that is, through abstraction, decomposition, and pattern recognition. ICT utilizes the functional programming language Haskell in the educational programming environment âCodeWorldâ in order to create pictures and animations.
Jean Piaget, the great child cognitive development psychologist, proclaimed âThe goal of intellectual education is not to know how to repeat or retain ready-made truthsâ; rather, one becomes educated by âlearning to master the truth by oneselfâ (Piaget, 1973). Because of the graphical outputs that one can easily code in CodeWorld, students have the ability to explore an algebraic concept with a computer programmed model, alongside the textbookâs given table, equation and graph. This thesis provides additional projects for supporting the Algebra I curriculum through LSUâs ICT course and an overview of the history of computing with an emphasis on highlighting some of the attempts that were undertaken within the past 80 years to use computational thinking and programming to support problem solving across disciplines, including the humanities, math and sciences
Recommended from our members
Using visual representations to improve instructional materials for distance education computing students
Understanding how to develop instructional materials for distance education students is a challenging problem, but it is exacerbated when a domain is complex to teach, such as computer science. Visual representations have a history of use in computing as a means to alleviate the difficulties of learning abstract concepts. However, it is not clear whether improvements observed are as a result of improvements in the visual representations used in instructional materials or due to individual differences in students. This research examines the two themes of individual differences and visual representation in order to investigate how they collectively impact on improving instructional materials for distance education students studying computer science. It investigates the impact of different representations on learning while additionally investigating the relationship between individual differences and student learning.The research in this thesis shows that visual representations are important in designing instructional materials. In particular, texts with visual representations have the power to cue students to perceive instructional materials as easier to process and more engaging.Investigation into the impact of concrete high-imagery versus abstract low-imagery visual representations illustrated that concrete visual representations incurred fewer cognitive overheads for computer science students and were able to ameliorate the challenges of learning computing.The research in this thesis into individual differences demonstrated that Imagers did benefit more from studying instructional materials containing text with visual components. However the research indicates that appropriate selection of individual difference tests is dependent upon the application, i.e., whether the results are to be used to assess generalised tendencies or episodes in learning and whether the tests examine underlying approaches to cognition or practices in education.An underlying question was whether students studying instructional materials containing low-imagery visual representations would cope as well as those studying high-imagery ones. Accomplished learners demonstrated that they could perform as well as with those receiving high-imagery visual representations. However, studying and recalling these materials did incur more cognitive processing.This thesis argues that improving instructional materials by including appropriate visual representations is a useful basis for improving learning for distance education computer science students
The Appsmiths: Community, Identity, Affect And Ideology Among Cocoa Developers From Next To Iphone
This dissertation is an ethnographic study, accomplished through semi-structured interviews and participant observation, of the cultural world of third party Apple software developers who use Apple's Cocoa libraries to create apps. It answers the questions: what motivates Apple developers' devotion to Cocoa technology, and why do they believe it is a superior programming environment? What does it mean to be a "good" Cocoa programmer, technically and morally, in the Cocoa community of practice, and how do people become one? I argue that in this culture, ideologies, normative values, identities, affects, and practices interact with each other and with Cocoa technology in a seamless web, which I call a "techno-cultural frame." This frame includes the construction of a developer's identity as a vocational craftsman, and a utopian vision of software being developed by millions of small-scale freelance developers, or "indies," rather than corporations. This artisanal production is made possible by the productivity gains of Cocoa technology, which ironically makes indies dependent on Apple for tools. This contradiction is reconciled through quasi-religious narratives about Apple and Steve Jobs, which enrolls developers into seeing themselves as partners in a shared mission with Apple to empower users with technology. Although Cocoa helps make software production easier, it is not a deskilling technology but requires extensive learning, because its design heavily incorporates patterns unfamiliar to many programmers. These concepts can only be understood holistically after learning has been achieved, which means that learners must undergo a process of conversion in their mindset. This involves learning to trust that Cocoa will benefit developers before they fully understand it. Such technical and normative lessons occur at sites where Cocoa is taught, such as the training company Big Nerd Ranch. Sharing of technical knowledge and normative practices also occurs in the Cocoa community, online through blog posts, at local club meetings, and at conferences such as Apple's WWDC, which help to enroll developers into the Cocoa techno-cultural frame. Apple's relationship with developers is symbiotic, but asymmetrical, yet despite Apple's coercive power, members of the Cocoa community can influence Apple's policies
An Empirical Study on The Impact of C++ Lambdas And Programmer Experience
Lambda functions have become prevalent in mainstream programming languages, as they are increasingly introduced to widely used object oriented programming languages such as Java and C++. Some in the scientific literature argue that this feature increases programmer productivity, ease of reading, and makes parallel programming easier. Others are less convinced, citing concerns that the use of lambdas makes debugging harder. This thesis describes the design, execution and results of an experiment to test the impact of using lambda functions compared to the iterator design pattern for iteration tasks, as a first step
in evaluating these claims. The approach is a randomized controlled trial, which focuses on the percentage of tasks completed, number of compiler errors, the percentage of time to fix such errors, and the amount of time it takes to complete programming tasks correctly. The overall goal is to investigate, if lambda functions have an impact on the ability of developers to complete tasks, or the amount of time taken to complete them. Additionally, it is tested if developers introduce more errors while using lambda functions and if fixing errors takes them more time. Lastly, the impact of experience level on productivity is evaluated by comparing the performance of participants from different levels of experience with one-another. Participants were assigned one of five levels based on their progress in the computer science major. The five levels were freshman, sophomore, junior, senior and professional. The professional level was assigned to individuals out of school with 5 or more years of professional experience.
Results show that the impact of using lambdas, as opposed to iterators, on the number of tasks completed was significant. The impact on time to completion, number of errors introduced during the experiment and times spent fixing errors were also found to be significant. The analysis of the difference between the different levels of experience also shows a significant difference. The percentage of time spent on fixing compilation errors was 56.37% for the lambda group while it was 44.2% for the control group with 3.5% of the variance being explained by the group difference. 45.7% of the variance in the sample was explained by the difference between the level of education. Therefore, this study suggests that earlier findings that student results are comparable with the results of professional developers are to be considered carefully
Recommended from our members
Experts on e-learning: insights gained from listening to the student voice!
The Student Experience of e-Learning Laboratory (SEEL) project at the University of Greenwich was designed to explore and then implement a number of approaches to investigate learnersâ experiences of using technology to support their learning. In this paper members of the SEEL team present initial findings from a University-wide survey of nearly a 1000 students. A selection of 90 âcameosâ, drawn from the survey data, offer further insights into personal perceptions of e-learning and illustrate the diversity of students experiences. The cameos provide a more coherent picture of individual student experience based on the
totality of each personâs responses to the questionnaire. Finally, extracts from follow-up case studies, based
on interviews with a small number of students, allow us to âhearâ the student voice more clearly. Issues arising from an analysis of the data include student preferences for communication and social networking tools, views on the âsmartnessâ of their tutorsâ uses of technology and perceptions of the value of e-learning. A primary finding and the focus of this paper, is that students effectively arrive at their own individualised selection, configuration and use of technologies and software that meets their perceived needs. This âpersonalisationâ does not imply that such configurations are the most efficient, nor does it automatically suggest that effective learning is occurring. SEEL reminds us that learners are individuals, who approach
learning both with and without technology in their own distinctive ways. Hearing, understanding and responding to the student voice is fundamental in maximising learning effectiveness. Institutions should consider actively developing the capacity of academic staff to advise students on the usefulness of particular online tools and resources in support of learning and consider the potential benefits
of building on what students already use in their everyday lives. Given the widespread perception that students tend to be âdigital nativesâ and academic staff âdigital immigrantsâ (Prensky, 2001), this could represent a considerable cultural challenge
- âŠ