Changyoon Lee, Donghoon Han, Hyoungwook Jin

Slides:



Advertisements
Similar presentations
 Computer Science 1MD3 Introduction to Programming Winter 2014.
Advertisements

Timed Automata.
CS105 INTRODUCTION TO COMPUTER CONCEPTS INTRO TO PROGRAMMING Instructor: Cuong (Charlie) Pham.
Group practice in problem design and problem solving
1 I.Introduction to Algorithm and Programming Algoritma dan Pemrograman – Teknik Informatika UK Petra 2009.
1 CSC 221: Introduction to Programming Fall 2012 course overview  What did you set out to learn?  What did you actually learn?  Where do you go from.
Teaching is not just a process of imparting knowledge to an attentive child. Learning needs to be engaging, social and interactive. It is also vital that.
Hipikat: A Project Memory for Software Development The CISC 864 Analysis By Lionel Marks.
By the end of this session you should be able to...
Knowledge Representation of Statistic Domain For CBR Application Supervisor : Dr. Aslina Saad Dr. Mashitoh Hashim PM Dr. Nor Hasbiah Ubaidullah.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
Algorithms and Pseudocode
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
CS 101 – Oct. 7 Solving simple problems: create algorithm Structure of solution –Sequence of steps (1,2,3….) –Sometimes we need to make a choice –Sometimes.
E- Patient Medical History System
Introduction To Visual Basic 6
Lecture 1b- Introduction
Introduction to Computing Science and Programming I
Compiler Design (40-414) Main Text Book:
CMPT 120 Topic: Python’s building blocks -> More Statements
3.1 Fundamentals of algorithms
The Art of Programming --
COSC 1306 COMPUTER SCIENCE AND PROGRAMMING
CSC 221: Computer Programming I Spring 2010
What to do when a test fails
Topics Introduction to Repetition Structures
Python: Control Structures
CSC 221: Computer Programming I Fall 2005
Debugging and Random Numbers
CMPT 120 Topic: Python strings.
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
National 5 Computing Science Specimen Question Paper
PROGRAMMING LANGUAGES
Topic: Functions – Part 2
Introduction to Programmng in Python
Software Engineering: A Practitioner’s Approach, 6/e Chapter 12 User Interface Design copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Algorithm and Ambiguity
CS 240 – Lecture 11 Pseudocode.
Collaboration with Google Drive
Learning to Program in Python
CSE 341: Programming Langs
Unit 2 Programming.
CSE341: Programming Languages Section 1
Programming Languages
CSE341: Programming Languages Section 1
Fundamentals of Programming
Loops CIS 40 – Introduction to Programming in Python
Coding Concepts (Basics)
ERRORS AND EXCEPTIONS Errors:
CS105 Introduction to Computer Concepts Intro to programming
Approaching an ML Problem
Problem Solving Skill Area 305.1
Algorithm and Ambiguity
Software Verification, Validation, and Acceptance Testing
Code search & recommendation engines
Recursion Taken from notes by Dr. Neil Moore
CMSC201 Computer Science I for Majors Final Exam Information
Programming Languages
Impossible problems.
Computational Advertising and
Review of Previous Lesson
1.3.7 High- and low-level languages and their translators
Algorithms CSCI 235, Spring 2019 Lecture 37 The Halting Problem
CS105 Introduction to Computer Concepts Intro to programming
Software Development Techniques
IS 135 Business Programming
CHAPTER 6 Testing and Debugging.
Chapter 1: Creating a Program.
Inputs, Outputs and Assignment
Presentation transcript:

Changyoon Lee, Donghoon Han, Hyoungwook Jin Automated Instructor for CS101 Newbs AutomaTA Changyoon Lee, Donghoon Han, Hyoungwook Jin with Alice Oh

Last Time... >> >> Problem Algorithm Program Computational Thinking Programming Skill >> >> Problem Algorithm Program Fill a list with Fibonacci numbers less than N. fibonacci ( N ) Case1: N is 1 output [0] Case2: N is 0 output [ ] Case3: other Append the sum of the last two numbers to the list until sum > N 근데 질문이 다음과 같이 두 종류로 나뉨. Goal: Teach programing skills(Language-specific rules, Language fluency, Syntactic debugging) and computational thinking (Decomposition, Abstraction,Semantic debugging) [Diagram] Question → Abstraction(Pseudocode) → Program Syntactic debugging Low-level semantic error function 묻기

Problem Statement CS101 beginners ask many questions related to programming skills. However, their questions contain not enough context so they cannot find satisfactory answers from web searches when self-studying. CS beginners who lack programming skills ask questions without contextual information. Therefore it is difficult to answer those questions their questions lack enough context and thus they cannot get immediate answers from simple web search

Formative Study Purpose To get an idea on what types of questions programming beginners ask Setting Sept. 20, 9pm to 11pm, N1 102 Participants 6 programming beginners, recruited with advertisement on ara Process Take a 10 minute lecture on Hubo and basic Python syntax Solve programming tasks with us as the TA Data collected Code revision history Voice recording of questions asked and answers Analysis Query contextualization with code, Question categorization

Categories CS101 Goals Computational Thinking Programming Skills Understanding “I don’t get what the problem asks me to do” Design “How do I pick all the beepers on a position?” Code “How do I pop an element without removing it?” Debug “What is this error message and why did I get it?” 근데 질문이 다음과 같이 두 종류로 나뉨. Goal: Teach programing skills(Language-specific rules, Language fluency, Syntactic debugging) and computational thinking (Decomposition, Abstraction,Semantic debugging) [Diagram] Question → Abstraction(Pseudocode) → Program Syntactic debugging Low-level semantic error function 묻기

Subcategories Programming Skills Code Debug “How do I pop an element without removing it?” Debug “What is this error message and why did I get it?” Syntax Function Identification Function usage Program mechanism Error message Semantic error How do I define a function? How do I open a file? What is the return value of readline()? Why can’t I access this local variable? Why do I get this error message? Why is there an infinite loop? 근데 질문이 다음과 같이 두 종류로 나뉨. Goal: Teach programing skills(Language-specific rules, Language fluency, Syntactic debugging) and computational thinking (Decomposition, Abstraction,Semantic debugging) [Diagram] Question → Abstraction(Pseudocode) → Program Syntactic debugging Low-level semantic error function 묻기

Question Data Analysis

Project Scope Problems from other categories are well addressed Students ask many questions regarding functions Project feasibility Very difficult to solve for all functions in python CS101 tasks use limited range of functions

Comparison with Existing Solutions Web Search Ask directly AutomaTA Teaching Assistant User Input Query Query + Code Search Time Short Long Answer Relevance Low High Presence Our system takes both student’s query and code, and aims to provide highly relevant answers fast, at anytime students want. There’re a few existing solutions. First of all, web search is available via Google, or Stackoverflow. But it has too may irrelevant answers, so our target user may consider it hard to find the good answers. On the other hand, the user can ask directly to the experts via StackOverflow, or Teaching Assistant. As you know, however, StackOverflow takes too long time to get an answer, and our brilliant TAs unfortunately are not always there. So we propose a new system automaTA, which immediately gives highly-relevant answers anytime they need.

To build a programming platform Solution To build a programming platform which can immediately answer questions on functions by interpreting the context of those questions. Based on our findings from the formative study and the limitations of existing solutions, we propose to build a programming platform which can immediately answer students’ questions on functions by interpreting the context of their question, so that students can spend less time on searching which functions to use. We will get context from students’ query and code as we could answer students’ poorly-formed questions by looking at their code during the formative study.

Approach 1. How to Interpret Query? Map Map Sloppy Queries System Features Sloppy Question & Code Function A Query-Feature graph handles sloppy queries. (Fourney et al, ACM, 2011.) A Context-Function graph handle sloppy questions So, to interpret the context of the questions and to automate the QnA process, we referred to previous research. A query feature graph maps a search query to one of the feature existing in a system, so that the system can handle sloppy questions. In our case, we will construct a context function graph, so that whenever a student asks a question on functions, the system will capture the context of the question and give the most relevant function.

Approach 1. How to Interpret Query? Map Sloppy Queries System Features A Query-Feature graph handles sloppy queries. (Fourney et al, ACM, 2011.) A Context-Function graph handle sloppy questions So, to interpret the context of the questions and to automate the QnA process, we referred to previous research. A query feature graph maps a search query to one of the feature existing in a system, so that the system can handle sloppy questions. In our case, we will construct a context function graph, so that whenever a student asks a question on functions, the system will capture the context of the question and give the most relevant function.

Approach 2. How to Automate Our System? Periodic Validation with TA Human TA Machine Learning Human TA ML 100% 0% Accuracy Time ML Accuracy Human Accuracy Validation ... Machine Learning Training Automated And the human-machine hybrid workflow suggested by Zensors showed that an automated system can be built from scratch with initial human help. By turn-taking between human worker and machine, high accuracy can be maintained throughout the training process. We will adopt this hybrid workflow to collect data and construct the context function graph. A long-run Human-machine hybrid workflow can train Context-Function graph (Laput, Gierad, et al, ACM, 2015.)

User has a question regarding what function to use for an operation INPUT User has a question regarding what function to use for an operation User Query + User Code Dispatcher Enough data & High Accuracy? No Yes If rated low, yield to human TA Human TA Context Function Graph Human Computation Machine-learned Ranking OUTPUT User rates the satisfaction of the answer Function Suggestion + Code Example Maximum Accuracy Answer Let’s look at the case when a user asks a question on functions in our system. The system takes the user query and the code and provides them to the dispatcher. Dispatcher decides if the system has enough data and accuracy for automated process. If there is not enough data and accuracy then human TA provides the answer. Otherwise, if the system is mature enough our query function graph provides the answer. Therefore, the system provides maximum accuracy answer to the user. The user rates the answer provided, and all of query, answer and rating are used to train the query function graph. If the user is unsatisfied, the system provides another answer from human TA. Train Query & Code & Answer & Rating

Context Function Graph Prototype 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 from cs1robots import * create_world() hubo=Robot() def hubo_right(): for i in range(3): hubo.turn_left() hubo_right() if hubo.front_is_clear(): hubo.move() How do I see how my hubo moves? How about using these functions? hubo.set_trace() hubo.set_pause() hubo.set_trace() (“see”, “hubo”, “move”) + code hubo.set_pause() Example code create_world() hubo=Robot() hubo.set_trace(‘blue’) (“hubo”, “turn”, “left”) + code hubo.set_pause() Context Function Graph This is our prototype. When a user asks a question on function, the system provides a list of relevant functions. When the user clicks on of the function, the system provides code example of that function. Then, the user rates the accuracy or the satisfaction of the anwer. If the rating is low, the system provides another answer.

Plan * Completed Week 7 UI/UX Design Prototype Design & Testing Frontend Implementation Learning React & Semantic UI Learning React & Semantic UI Week 10-12 Backend & Training model Implementation Data Collection & Try Different ML Models Data Collection & Try Different ML Models Week 13 System Testing Deploying & Training Week 14 Evaluation Test Data Analysis & Final Presentation These are the milestones we will go through. We will spend about 5 weeks for implementing the system and spend the remaining 2 to 3 weeks on deploying and evaluating our final product. Hoon’s Graduation!!! (Hopefully)

Answer Relevance, User Satisfaction, Task Completion Time, Time Taken Evaluation Plan Conditions Web Search Teaching Assistant AutomaTA Metrics Answer Relevance, User Satisfaction, Task Completion Time, Time Taken Method Within Subject

Any Questions?

Problem Statement: CS101 beginners ask many questions related to programming skills. However, their questions contain not enough context so they cannot get satisfactory answers from existing solutions. Pipeline Evaluation Metric Answer accuracy, User satisfaction, Time taken Conditions Google search, AutomaTA, Human TA Method Within Subject