by Joe Michael Allen, Frank Vahid, Kelly Downey, and Alex Edgcomb

Slides:



Advertisements
Similar presentations
Summer Computing Workshop. Introduction to Variables Variables are used in every aspect of programming. They are used to store data the programmer needs.
Advertisements

Computer Science 1000 LOGO I. LOGO a computer programming language, typically used for education an old language (1967) the basics are simple: move a.
CIS101 Introduction to Computing Week 12. Agenda Your questions Solutions to practice text Final HTML/JavaScript Project Copy and paste assignment JavaScript:
CS 106 Introduction to Computer Science I 02 / 18 / 2008 Instructor: Michael Eckmann.
Computer Science 1620 Loops.
CS107 Introduction to Computer Science Loops. Instructions Pseudocode Assign values to variables using basic arithmetic operations x = 3 y = x/10 z =
1 9/28/07CS150 Introduction to Computer Science 1 Loops section 5.2, 5.4, 5.7.
CS 232 Geometric Algorithms: Lecture 1 Shang-Hua Teng Department of Computer Science, Boston University.
1 10/20/08CS150 Introduction to Computer Science 1 do/while and Nested Loops Section 5.5 & 5.11.
CS 106 Introduction to Computer Science I 10 / 04 / 2006 Instructor: Michael Eckmann.
General Computer Science for Engineers CISC 106 Lecture 13 Roger Craig Computer and Information Sciences 3/13/2009.
CS 106 Introduction to Computer Science I 04 / 09 / 2008 Instructor: Michael Eckmann.
Investigate the degree to which programming concepts are interrelated Reshmi Ravi.
CMSC 104, Version 9/01 1 The Box Problem: Write an interactive program to compute and display the volume and surface area of a box. The program must also.
Does Student Crowdsourcing of Practice Questions and Animations Lead to Good Quality Materials? Alex Edgcomb, Joshua Yuen, and Frank Vahid University of.
© Copyright 1992–2005 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Looping Exercises Deciding Which Loop to Use At this.
Effectiveness of Interactive Web-Native Content vs. Online Textbooks Alex Edgcomb and Frank Vahid Dept. of Computer Science and Engineering University.
Student Performance Improvement using Interactive Textbooks: A Three-University Cross-Semester Analysis Alex Edgcomb*, Frank Vahid*, Roman Lysecky°, Andre.
1 Loops. 2 Topics The while Loop Program Versatility Sentinel Values and Priming Reads Checking User Input Using a while Loop Counter-Controlled (Definite)
Understanding User Goals in Web Search University of Seoul Computer Science Database Lab. Min Mi-young.
Lecture 1: Overview CMSC 201 Computer Science 1. Course Info This is the first course in the CMSC intro sequence, followed by 202 CS majors must pass.
Before we get started…. First, a few things… Weighted Grading System Programming Style Submitting your assignments… The char and string variable types.
REPETITION STATEMENTS - Part2 Structuring Input Loops Counter-Controlled Repetition Structure Sentinel-Controlled Repetition Structure eof()-Controlled.
Simplify! 1 Frank Vahid Prof. of CS&E, Univ. of California, Riverside Alex Edgcomb Research Specialist, Univ. of California, Riverside Both also with zyBooks.com.
1 09/27/04CS150 Introduction to Computer Science 1 Let ’ s all Repeat Together.
Chapter 7 Problem Solving with Loops
CS 106 Introduction to Computer Science I 03 / 02 / 2007 Instructor: Michael Eckmann.
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 6, Lecture 1 (Monday)
COMP Loop Statements Yi Hong May 21, 2015.
More on Logic Today we look at the for loop and then put all of this together to look at some more complex forms of logic that a program will need The.
Why Repetition? Read 8 real numbers and compute their average REAL X1, X2, X3, X4, X5, X6, X7, X8 REAL SUM, AVG READ *, X1, X2, X3, X4, X5, X6, X7, X8.
CPSC 233 Tutorial 5 February 2 th /3 th, Java Loop Statements A portion of a program that repeats a statement or a group of statements is called.
26 February 2016Birkbeck College, U. London1 Introduction to Programming Lecturer: Steve Maybank Department of Computer Science and Information Systems.
CS 115 OBJECT ORIENTED PROGRAMMING I LECTURE 11 GEORGE KOUTSOGIANNAKIS 1 Copyright: 2015 Illinois Institute of Technology_ George Koutsogiannakis.
1Jun. 20, 2016 © 2016 Alex Edgcomb / Frank Vahid – UCR / zyBooks Simplifying a Course to Reduce Student Stress so Students Can Focus Again on Learning.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CS 106 Introduction to Computer Science I 02 / 15 / 2008 Instructor: Michael Eckmann.
Programming Loops (continued).
Introduction to Programming
Applied Discrete Mathematics Week 2: Functions and Sequences
How to Conduct Toileting Trials: A Webinar Course Evaluation
Printing Lines of Asterisks
Chapter 5: Control Structure
CMSC201 Computer Science I for Majors Lecture 11 – Program Design
­­­An Analysis of Common Errors Leading to Excessive Student Struggle on Homework Problems in an Introductory Programming Course Common errors that lead.
Learning to Program in Python
­­­Python Versus C++: An Analysis of Student Struggle on Small Coding Exercises in Introductory Programming Courses Nabeel Alzahrani1, Frank Vahid1,3,
Welcome everyone Introduce self (name, year, university, research)
JSP (Jackson Structured Programming)
CS 1428 Exam II Review.
Unary Operators ++ and --
CS212 Data Structures 2018 Second Semester.
INC 161 , CPE 100 Computer Programming
CS150 Introduction to Computer Science 1
Let’s all Repeat Together
CS150 Introduction to Computer Science 1
OBJECT ORIENTED PROGRAMMING I LECTURE 11 GEORGE KOUTSOGIANNAKIS
An Analysis of Using Many Small Programs in CS1
A LESSON IN LOOPING What is a loop?
Java Programming Loops
CS150 Introduction to Computer Science 1
An Analysis of Using Many Small Programs in CS1
by Joe Michael Allen, Frank Vahid, Kelly Downey, and Alex Edgcomb
Loops.
Repetition (While Loop) LAB 9
Introduction CMSC 104 Problem Solving and Computer Programming
Nabeel Alzahrani1, Frank Vahid1,2, Alex Edgcomb1,2
Coral: An Ultra Simple Language for Learning to Program
REPETITION Why Repetition?
CS 232 Geometric Algorithms: Lecture 1
Presentation transcript:

Weekly Programs in CS 1: Experiences with Many-Small Auto-Graded Programs by Joe Michael Allen, Frank Vahid, Kelly Downey, and Alex Edgcomb Dept. of Computer Science and Engineering University of California, Riverside This work was supported by the U.S. Dept. of Education (GAANN fellowship) and by Google

Problem College-level introductory programming courses (CS 1) have many well-known issues: High student stress Student dissatisfaction Academic dishonesty Low grades High drop rates Weekly programming assignments form a large part of the student’s experience and are a key source of those issues.

Traditional 1-large Programming Assignments 1 Programming assignment a week Many concepts Confusion

Traditional 1-large Programming Assignments Example 1) Modify the above program to ask the user to specify a number of tree trunk levels (“Enter trunk height: “), then use a loop to draw that many levels. Testing suggestion: If the user specifies 4 tree trunk levels, then the original tree should be drawn. (2) Modify the program again to ask the user to specify a number of tree trunk *’s per level ("Enter trunk width: “), then use a loop to draw that many *’s per level. You’ll need to use a nested loop in which the inner loop draws the *’s, and the outer loop iterates a number of times equal to the number of tree trunk levels. (3) Modify the program so that it only accepts odd numbers for the trunk width. Use a loop to continue prompting the user for a width until the number is odd. (4) Modify the program to ask the user to specify a number of tree leaves levels (“Enter leaves width: “), then use a nested loop to draw that many levels. You’ll need two inner loops for drawing the leaves: one for outputting spaces and one for outputting *’s. The outer loop iterates a number of times equal to the number of tree leaves levels. The top level of the leaves must have at least one *. You will have to modify this as well to only accept odd numbers for the number of leaves. Here is an example program execution. The user typed inputs have asterisks around them to clearly denote them as user inputs. Here is an example program execution when the user attempts to enter an even number for trunk width. A similar pattern should be followed, when a user attempts to enter an even number for leaves width as well. The user typed inputs have asterisks around them to clearly denote them as user inputs.

Our Solution Many Small Programs Allowing collaboration 7 small labs per week Specific concepts 70% threshold Allowing collaboration

Many Small Programs - Prompt

Many Small Programs - Solution

Many Small Programs – Test Cases

Methodology Study conducted on a CS10 course at UCR during Spring 2017 Control Group Experimental Group 2 in-person sections (~160 students) One-large program a week No collaboration Program assignments: 25%, Midterm: 20% 1 online section (~80 students) Many Small Programs Collaboration allowed Program assignments: 15%, Midterm: 30%

Methodology cont. Student Surveys (“Stress Survey”) Grade Performance Asked students about their experience Survey given during week 8 of the quarter Grade Performance Averaged grade percentages for Final, Midterm, Reading Activities, Challenge Activities, and Programming Activities

Results – Stress Survey Experimental group preferred the class 9% more

Results - Grades

Conclusion Students that had MSPs prefer the course 9% more than students that had the traditional programming assignments. Students that had MSPs outperformed students that had traditional programming assignments on the Final and the Midterm, and did about the same on the other class categories.

Future Work After 1 year, are we still seeing similar results with student perception and grades? If we allow collaboration, do students actually collaborate – if so, how much? Does having MSPs in CS1 affect student performance in CS2? Do students start programming assignments earlier if they are MSP or larger assignments? Do students perform better if they have all MSPs or mostly MSPs with some large assignments?