소장자료
LDR | 05057nam 2200625 4500 | ||
001 | 0100803395▲ | ||
005 | 20240329144833▲ | ||
006 | m o d ▲ | ||
007 | cr#unu||||||||▲ | ||
008 | 240116s2023 us |||||||||||||||c||eng d▲ | ||
020 | ▼a9798380485210▲ | ||
035 | ▼a(MiAaPQ)AAI30614664▲ | ||
035 | ▼a(MiAaPQ)STANFORDzm348cp2639▲ | ||
040 | ▼aMiAaPQ▼cMiAaPQ▲ | ||
082 | 0 | ▼a159▲ | |
100 | 1 | ▼aCharitsis, Charalampos-S.▲ | |
245 | 1 | 0 | ▼aMachine Learning and Natural Language Processing for Code Quality Analysis in Introductory Programming Courses▼h[electronic resource]▲ |
260 | ▼a[S.l.]: ▼bStanford University. ▼c2023▲ | ||
260 | 1 | ▼aAnn Arbor : ▼bProQuest Dissertations & Theses, ▼c2023▲ | |
300 | ▼a1 online resource(99 p.)▲ | ||
500 | ▼aSource: Dissertations Abstracts International, Volume: 85-04, Section: B.▲ | ||
500 | ▼aAdvisor: Mitchell, John;Boneh, Dan;Piech, Chris.▲ | ||
502 | 1 | ▼aThesis (Ph.D.)--Stanford University, 2023.▲ | |
506 | ▼aThis item must not be sold to any third party vendors.▲ | ||
520 | ▼aThe employment rate of software developers has risen significantly over the last 30 years. As a result, more students are considering computer science as a potential career path. Over the last 15 years, introductory programming course (CS1) enrollment has been increasing at a much faster rate than the increase in the number of CS faculty, with no apparent signs of slowing. Thus, a scalability issue clearly exists.Technology has opened up learning opportunities to a wide audience. Millions of people use Massive Open Online Course (MOOC) providers, while hundreds of thousands enroll in online CS courses and coding boot camps. Automated assessment helps instructors to maintain pace with the overwhelming workload. Moreover, emphasis is mostly placed on functionality. However, software development is much more than just writing working programs. Code quality assessment remains a manual process. This dissertation focuses on critical CS1 qualitative aspects as well as how to use technology to take on time-consuming human tasks.First, I cover one of the fundamental code quality standards, readability, and focus on its cornerstone in CS1 programs, namely function names. An identifier that captures the intended task with clarity makes code readable and self-documenting. I present and examine a semi-automated software system that I built to improve function names. It uses a variation of the Na¨ive Bayes classifier to assess the quality of the identifiers and then suggests alternatives for the poor ones.Second, I study the relationship between problem-related entities and functional decomposition. I introduce a method for quantifying how broad a student's view of the problem is by the time they jump into coding. I proceed with software implementation and explain how I used natural language processing (NLP) to detect problem-related entities, which is a key stage in this process. Finally, I use the system to classify students at scale and determine how the broadness of the problem's view affects learners' performance, the time required to solve a programming challenge, and the complexity of the solution.Third, I introduce a systematic approach to detecting when novice programmers decompose their code and identify what drives their decision. I detail a software system that I built to implement these tasks. Next, I use the system to classify students and explore their relationship with program complexity and student performance.Lastly, I introduce an alternative to the standard testing approaches for functionality validation. My solution depends on code instrumentation. Its main advantages are that it takes substantially less code and can test programs with nondeterministic behavior or user input. Then, I present Delve, an educational tool that I created for instructors and teaching assistants in introductory programming courses. Delve integrates many ideas from my previous systems and bundles them into an easy-to-use graphical user interface.▲ | ||
590 | ▼aSchool code: 0212.▲ | ||
650 | 4 | ▼aMotivation.▲ | |
650 | 4 | ▼aInternet.▲ | |
650 | 4 | ▼aSoftware development.▲ | |
650 | 4 | ▼aComputer science.▲ | |
650 | 4 | ▼aOnline instruction.▲ | |
650 | 4 | ▼aDecomposition.▲ | |
650 | 4 | ▼aStudent organizations.▲ | |
650 | 4 | ▼aCollaborative learning.▲ | |
650 | 4 | ▼aOnline tutorials.▲ | |
650 | 4 | ▼aFeedback.▲ | |
650 | 4 | ▼aDistance learning.▲ | |
650 | 4 | ▼aIndependent study.▲ | |
650 | 4 | ▼aEducation.▲ | |
650 | 4 | ▼aCurriculum development.▲ | |
650 | 4 | ▼aEducational technology.▲ | |
690 | ▼a0984▲ | ||
690 | ▼a0515▲ | ||
690 | ▼a0727▲ | ||
690 | ▼a0710▲ | ||
690 | ▼a0629▲ | ||
710 | 2 | 0 | ▼aStanford University.▲ |
773 | 0 | ▼tDissertations Abstracts International▼g85-04B.▲ | |
773 | ▼tDissertation Abstract International▲ | ||
790 | ▼a0212▲ | ||
791 | ▼aPh.D.▲ | ||
792 | ▼a2023▲ | ||
793 | ▼aEnglish▲ | ||
856 | 4 | 0 | ▼uhttp://www.riss.kr/pdu/ddodLink.do?id=T16934500▼nKERIS▼z이 자료의 원문은 한국교육학술정보원에서 제공합니다.▲ |
Machine Learning and Natural Language Processing for Code Quality Analysis in Introductory Programming Courses[electronic resource]
자료유형
국외eBook
서명/책임사항
Machine Learning and Natural Language Processing for Code Quality Analysis in Introductory Programming Courses [electronic resource]
발행사항
[S.l.] : Stanford University. 2023 Ann Arbor : ProQuest Dissertations & Theses , 2023
형태사항
1 online resource(99 p.)
일반주기
Source: Dissertations Abstracts International, Volume: 85-04, Section: B.
Advisor: Mitchell, John;Boneh, Dan;Piech, Chris.
Advisor: Mitchell, John;Boneh, Dan;Piech, Chris.
학위논문주기
Thesis (Ph.D.)--Stanford University, 2023.
요약주기
The employment rate of software developers has risen significantly over the last 30 years. As a result, more students are considering computer science as a potential career path. Over the last 15 years, introductory programming course (CS1) enrollment has been increasing at a much faster rate than the increase in the number of CS faculty, with no apparent signs of slowing. Thus, a scalability issue clearly exists.Technology has opened up learning opportunities to a wide audience. Millions of people use Massive Open Online Course (MOOC) providers, while hundreds of thousands enroll in online CS courses and coding boot camps. Automated assessment helps instructors to maintain pace with the overwhelming workload. Moreover, emphasis is mostly placed on functionality. However, software development is much more than just writing working programs. Code quality assessment remains a manual process. This dissertation focuses on critical CS1 qualitative aspects as well as how to use technology to take on time-consuming human tasks.First, I cover one of the fundamental code quality standards, readability, and focus on its cornerstone in CS1 programs, namely function names. An identifier that captures the intended task with clarity makes code readable and self-documenting. I present and examine a semi-automated software system that I built to improve function names. It uses a variation of the Na¨ive Bayes classifier to assess the quality of the identifiers and then suggests alternatives for the poor ones.Second, I study the relationship between problem-related entities and functional decomposition. I introduce a method for quantifying how broad a student's view of the problem is by the time they jump into coding. I proceed with software implementation and explain how I used natural language processing (NLP) to detect problem-related entities, which is a key stage in this process. Finally, I use the system to classify students at scale and determine how the broadness of the problem's view affects learners' performance, the time required to solve a programming challenge, and the complexity of the solution.Third, I introduce a systematic approach to detecting when novice programmers decompose their code and identify what drives their decision. I detail a software system that I built to implement these tasks. Next, I use the system to classify students and explore their relationship with program complexity and student performance.Lastly, I introduce an alternative to the standard testing approaches for functionality validation. My solution depends on code instrumentation. Its main advantages are that it takes substantially less code and can test programs with nondeterministic behavior or user input. Then, I present Delve, an educational tool that I created for instructors and teaching assistants in introductory programming courses. Delve integrates many ideas from my previous systems and bundles them into an easy-to-use graphical user interface.
주제
ISBN
9798380485210
관련 인기대출 도서