Minimizing Technical Barriers to Learning Programming

Minimizing Technical Barriers to Learning Programming PDF Author: Martin Velez
Publisher:
ISBN: 9781392212301
Category :
Languages : en
Pages :

Get Book Here

Book Description
Software is an integral part of our lives. It controls the cars we drive every day, the ships we send into space, and even our toasters. It is everywhere and we can easily download more. Software solves many real-world problems and satisfies many needs. Thus, unsurprisingly, there is a rising demand for software engineers to maintain existing software and to design and build new systems. Unfortunately, there is a scarcity of software engineers. But thankfully, more and more people are opting or being encouraged to pursue a Computer Science education, and we are seeing an explosion in enrollment worldwide. At UC Davis, for example, an introductory programming course quadrupled in enrollment from about a hundred students to four hundred. Recently, official enrollment at UC Berkeley’s introductory programming course was 1,762. Massively open online courses (MOOCs) like Coursera and Udacity regularly sign up thousands of students for a single course. Not surprisingly, however, not everyone who enrolls in CS courses succeeds. A study in 2014 found that, on average, 33% of students fail. Often, these same students decide to drop out instead. For example, Ireland reported that about a third of students drop out of Computer Science degree programs. Undoubtedly, there are many factors contributing to these issues. But perhaps, the most straightforward reason is that programming is simply difficult and challenging. And with larger classes, students are receiving less personalized instruction and intervention. Therefore, we need innovative tools and approaches to help students learn to program. In this dissertation, we focus on technical barriers to learning programming. We define technical barriers as those challenges that are faced by programmers of all levels but are especially difficult to beginners. These technical barriers can cause students to waste time, to become frustrated, and even to quit. This dissertation describes three efforts addressing these technical barriers from different angles: simplifying the programming environment, assisting with compilation errors, and exploring a syntax-free programming paradigm. Students often spend a considerable amount of time and effort installing and configuring programming tools and environments. This can frustrate, and distract them from more important learning objectives, particularly in introductory programming courses. A web integrated development environment (IDE) can serve as a low-threshold, ready-to-use programming environment, and reduce the time and effort needed to start practicing programming. Moreover, the uniform execution environment can facilitate better interactions between students and instructors. We describe the design and deployment of KODETHON, a web IDE, at a large public university. KODETHON can support multiple programming languages, multi-file projects, and real-time collaboration. To date, more than 3,000 students have used KODETHON in at least 15 different courses to write over 15 million lines of code. We studied student adoption behavior and perceptions of KODETHON by analyzing server database and logs, and by deploying a user survey. We found that about a third of participants perceive KODETHON to be useful. We also found that students find “Web-based” and “No Installation Required” to be the two most useful features. We present lessons learned and provide advice for educators and researchers considering introducing a web IDE as a pedagogical tool.Every programmer, from novices to professionals, makes compilation errors. Resolving compilation errors can be time-consuming, difficult, and frustrating. For decades, error messages have been identified as a source of this difficulty. A promising approach to help programmers is to augment error messages with compilation repair examples. The challenge is how to obtain and present these repair examples. We present COMPASSIST, a system that generates and refines repair examples. Based on these repair examples, the system suggests possible patches to users when their program fails to compile. We evaluated COMPASSIST on a mainstream C++ compiler, and demonstrate that it can generate examples for more than half (867/1, 686) of compiler errors. We also conducted a user study where participants found these synthetic repair examples to be helpful in a majority (5/9) of tasks involving real-world C++ compiler programs. Lastly, we focus on programming language syntax. Natural language is robust against noise. The meaning of many sentences survives the loss of words, sometimes many of them. Some words in a sentence, however, cannot be lost without changing the meaning of the sentence. We call these words “wheat” and the rest “chaff”. The word “not” in the sentence “I do not like rain” is wheat and “do” is chaff. For human understanding of the purpose and behavior of source code, we hypothesize that the same holds. To quantify the extent to which we can separate code into “wheat” and “chaff”, we study a large (100M LOC), diverse corpus of real-world projects in Java. Since methods represent natural, likely distinct units of code, we use the ∼9M Java methods in the corpus to approximate a universe of “sentences.” We extract their wheat by computing the function’s minimal distinguishing subset (MINSET). Our results confirm that functions contain much chaff. On average, MINSETS have 1.56 words (none exceeds 6) and comprise 4% of their methods. Beyond its intrinsic scientific interest, our work offers the first quantitative evidence for recent promising work on keyword-based programming and insight into how to develop a powerful, alternative programming model.

Minimizing Technical Barriers to Learning Programming

Minimizing Technical Barriers to Learning Programming PDF Author: Martin Velez
Publisher:
ISBN: 9781392212301
Category :
Languages : en
Pages :

Get Book Here

Book Description
Software is an integral part of our lives. It controls the cars we drive every day, the ships we send into space, and even our toasters. It is everywhere and we can easily download more. Software solves many real-world problems and satisfies many needs. Thus, unsurprisingly, there is a rising demand for software engineers to maintain existing software and to design and build new systems. Unfortunately, there is a scarcity of software engineers. But thankfully, more and more people are opting or being encouraged to pursue a Computer Science education, and we are seeing an explosion in enrollment worldwide. At UC Davis, for example, an introductory programming course quadrupled in enrollment from about a hundred students to four hundred. Recently, official enrollment at UC Berkeley’s introductory programming course was 1,762. Massively open online courses (MOOCs) like Coursera and Udacity regularly sign up thousands of students for a single course. Not surprisingly, however, not everyone who enrolls in CS courses succeeds. A study in 2014 found that, on average, 33% of students fail. Often, these same students decide to drop out instead. For example, Ireland reported that about a third of students drop out of Computer Science degree programs. Undoubtedly, there are many factors contributing to these issues. But perhaps, the most straightforward reason is that programming is simply difficult and challenging. And with larger classes, students are receiving less personalized instruction and intervention. Therefore, we need innovative tools and approaches to help students learn to program. In this dissertation, we focus on technical barriers to learning programming. We define technical barriers as those challenges that are faced by programmers of all levels but are especially difficult to beginners. These technical barriers can cause students to waste time, to become frustrated, and even to quit. This dissertation describes three efforts addressing these technical barriers from different angles: simplifying the programming environment, assisting with compilation errors, and exploring a syntax-free programming paradigm. Students often spend a considerable amount of time and effort installing and configuring programming tools and environments. This can frustrate, and distract them from more important learning objectives, particularly in introductory programming courses. A web integrated development environment (IDE) can serve as a low-threshold, ready-to-use programming environment, and reduce the time and effort needed to start practicing programming. Moreover, the uniform execution environment can facilitate better interactions between students and instructors. We describe the design and deployment of KODETHON, a web IDE, at a large public university. KODETHON can support multiple programming languages, multi-file projects, and real-time collaboration. To date, more than 3,000 students have used KODETHON in at least 15 different courses to write over 15 million lines of code. We studied student adoption behavior and perceptions of KODETHON by analyzing server database and logs, and by deploying a user survey. We found that about a third of participants perceive KODETHON to be useful. We also found that students find “Web-based” and “No Installation Required” to be the two most useful features. We present lessons learned and provide advice for educators and researchers considering introducing a web IDE as a pedagogical tool.Every programmer, from novices to professionals, makes compilation errors. Resolving compilation errors can be time-consuming, difficult, and frustrating. For decades, error messages have been identified as a source of this difficulty. A promising approach to help programmers is to augment error messages with compilation repair examples. The challenge is how to obtain and present these repair examples. We present COMPASSIST, a system that generates and refines repair examples. Based on these repair examples, the system suggests possible patches to users when their program fails to compile. We evaluated COMPASSIST on a mainstream C++ compiler, and demonstrate that it can generate examples for more than half (867/1, 686) of compiler errors. We also conducted a user study where participants found these synthetic repair examples to be helpful in a majority (5/9) of tasks involving real-world C++ compiler programs. Lastly, we focus on programming language syntax. Natural language is robust against noise. The meaning of many sentences survives the loss of words, sometimes many of them. Some words in a sentence, however, cannot be lost without changing the meaning of the sentence. We call these words “wheat” and the rest “chaff”. The word “not” in the sentence “I do not like rain” is wheat and “do” is chaff. For human understanding of the purpose and behavior of source code, we hypothesize that the same holds. To quantify the extent to which we can separate code into “wheat” and “chaff”, we study a large (100M LOC), diverse corpus of real-world projects in Java. Since methods represent natural, likely distinct units of code, we use the ∼9M Java methods in the corpus to approximate a universe of “sentences.” We extract their wheat by computing the function’s minimal distinguishing subset (MINSET). Our results confirm that functions contain much chaff. On average, MINSETS have 1.56 words (none exceeds 6) and comprise 4% of their methods. Beyond its intrinsic scientific interest, our work offers the first quantitative evidence for recent promising work on keyword-based programming and insight into how to develop a powerful, alternative programming model.

Touch of Class

Touch of Class PDF Author: Bertrand Meyer
Publisher: Springer Science & Business Media
ISBN: 3540921451
Category : Computers
Languages : en
Pages : 933

Get Book Here

Book Description
From object technology pioneer and ETH Zurich professor Bertrand Meyer, winner of the Jolt award and the ACM Software System Award, a revolutionary textbook that makes learning programming fun and rewarding. Meyer builds his presentation on a rich object-oriented software system supporting graphics and multimedia, which students can use to produce impressive applications from day one, then understand inside out as they learn new programming techniques. Unique to Touch of Class is a combination of a practical, hands-on approach to programming with the introduction of sound theoretical support focused on helping students learn the construction of high quality software. The use of full color brings exciting programming concepts to life. Among the useful features of the book is the use of Design by Contract, critical to software quality and providing a gentle introduction to formal methods. Will give students a major advantage by teaching professional-level techniques in a literate, relaxed and humorous way.

Departments of Transportation and Treasury, and Independent Agencies Appropriations for 2005: Department of Transportation FY05 budget justifications

Departments of Transportation and Treasury, and Independent Agencies Appropriations for 2005: Department of Transportation FY05 budget justifications PDF Author: United States. Congress. House. Committee on Appropriations. Subcommittee on the Departments of Transportation and Treasury, and Independent Agencies Appropriations
Publisher:
ISBN:
Category : Government publications
Languages : en
Pages : 1998

Get Book Here

Book Description


The Cambridge Handbook of Computing Education Research

The Cambridge Handbook of Computing Education Research PDF Author: Sally A. Fincher
Publisher:
ISBN: 1108756212
Category : Computers
Languages : en
Pages : 924

Get Book Here

Book Description
This is an authoritative introduction to Computing Education research written by over 50 leading researchers from academia and the industry.

Departments of Transportation and Treasury, and Independent Agencies Appropriations for 2004

Departments of Transportation and Treasury, and Independent Agencies Appropriations for 2004 PDF Author: United States. Congress. House. Committee on Appropriations. Subcommittee on the Departments of Transportation and Treasury, and Independent Agencies Appropriations
Publisher:
ISBN:
Category : United States
Languages : en
Pages : 2158

Get Book Here

Book Description


Departments of Transportation and Treasury, and Independent Agencies Appropriations for 2005

Departments of Transportation and Treasury, and Independent Agencies Appropriations for 2005 PDF Author: United States. Congress. House. Committee on Appropriations. Subcommittee on the Departments of Transportation and Treasury, and Independent Agencies Appropriations
Publisher:
ISBN:
Category : Political Science
Languages : en
Pages : 1904

Get Book Here

Book Description
Distributed to some depository libraries in microfiche.

Departments of Transportation and Treasury, and Independent Agencies Appropriations for 2004: Department of Transportaion FY04 budget justifications

Departments of Transportation and Treasury, and Independent Agencies Appropriations for 2004: Department of Transportaion FY04 budget justifications PDF Author: United States. Congress. House. Committee on Appropriations. Subcommittee on the Departments of Transportation and Treasury, and Independent Agencies Appropriations
Publisher:
ISBN:
Category : United States
Languages : en
Pages : 1900

Get Book Here

Book Description


HCI International 2022 – Late Breaking Papers: Interacting with eXtended Reality and Artificial Intelligence

HCI International 2022 – Late Breaking Papers: Interacting with eXtended Reality and Artificial Intelligence PDF Author: Jessie Y. C. Chen
Publisher: Springer Nature
ISBN: 3031217071
Category : Computers
Languages : en
Pages : 630

Get Book Here

Book Description
This proceedings LNCS 13518 constitutes the refereed proceedings of the 24th International Conference on Human-Computer Interaction, HCII 2022, which was held virtually as part of the 24th International Conference, HCII 2022, in June/July 2022. HCII 2022 received a total of 5583 submissions from academia, research institutes, industry, and governmental agencies from 88 countries submitted contributions, and 1276 papers and 275 posters were included in the proceedings that were published just before the start of the conference. Additionally, 296 papers and 181 posters are included in the volumes of the proceedings published after the conference, as “Late Breaking Work” (papers and posters). The contributions thoroughly cover the entire field of human-computer interaction, addressing major advances in knowledge and effective use of computers in a variety of application areas.

Practical Knowledge Barriers in Professional Programming

Practical Knowledge Barriers in Professional Programming PDF Author: Kyle Thayer
Publisher:
ISBN:
Category : Application program interfaces (Computer software)
Languages : en
Pages : 172

Get Book Here

Book Description
More and more jobs are being created that involve programming. Parts of the practical knowledge needed to get these jobs and succeed in these jobs is not taught in traditional university computer science departments. A lack of this knowledge can be a barrier to successfully programming professionally. In order to learn more about these knowledge barriers, I (along with my co-authors) have taken on three projects to understand these barriers and how people can get around them: 1) we studied the barriers faced by coding bootcamp students, finding non-knowledge based barriers such as credentials, personal costs, as well as knowledge barriers such as how to pass a technical interview, and using available resources to learn how to use application programming interfaces (APIs); 2) Inspired by the barriers to learning APIs in the first study, we developed a theory of what knowledge is actually needed to work with APIs, including API usage patterns; 3) Inspired by the need to understand API usage patterns in the second study, we developed a data structure to represent API usage patterns and an algorithm to extract part of the structure. For people who want to address these barriers at a systemic level, this work can guide them in designing bootcamps or other programs to address these needs, or in designing to help people learn and use APIs. For people who want to become programmers, this work can guide them in deciding whether a bootcamp will meet their needs and knowing what other needs they may have, and future systems based on our API work may help them learn and use APIs.

Pollution Prevention and Waste Minimization in Laboratories

Pollution Prevention and Waste Minimization in Laboratories PDF Author: Peter A. Reinhardt
Publisher: CRC Press
ISBN: 9780873719759
Category : Technology & Engineering
Languages : en
Pages : 522

Get Book Here

Book Description
This nuts and bolts book addresses specific waste minimization and pollution prevention techniques that work in specific types of laboratories for specific wastestreams. Concepts in the book may be directly applied to laboratory operations. In addition, the book illustrates other approaches to laboratory pollution prevention, such as reducing wastewater discharges and fume hood emissions. A wide range of waste types, including hazardous, infectious, medical, PCB, and radioactive, are discussed. This book helps you to develop a broad, institutional framework to plan and set priorities for pollution prevention. It responds to your laboratory's critical need to have readily available techniques and concepts for waste minimization and pollution prevention.