+ All Categories
Home > Education > Trends and Innovations in Introductory CS Course

Trends and Innovations in Introductory CS Course

Date post: 14-Aug-2015
Category:
Upload: aayushee-gupta
View: 104 times
Download: 1 times
Share this document with a friend
Popular Tags:
35
TRENDS AND INNOVATIONS IN FIRST CS COURSE -Aayushee Gupta
Transcript

TRENDS AND INNOVATIONS IN FIRST CS COURSE

-Aayushee Gupta

Outline

Curriculum Guidelines from ACM IEEE 2013 Report

Survey of curriculum, techniques, languages and environment used

Teaching pedagogies Flipped Classroom Peer instruction Pair Programming Visualization based programming Problem Posing

Curriculum Guidelines from ACM IEEE 2013 Report

SDF (SOFTWARE DEVELOPMENT FUNDAMENTALS) : This new KA generalizes introductory programming to focus on more of the software development process, identifying concepts and skills that should be mastered in the first year of a computer-science program

The new KA also provides students with a view of software beyond programming skills, including topics from Algorithms and Complexity (e.g., basic analysis, fundamental data structures), Software Engineering (e.g., small scale reviews, basic development tools), and Programming Languages (e.g., paradigm-independent constructs).

DESIGN CONSIDERATIONS Providing multiple pathways into and through introductory course

sequences can make computer science more accessible to different audiences

Care must be taken to emphasize the more general concepts in computing within the context of learning how to program

A programming-focused introductory course can help develop essential skills in students early on. Too narrow a programming focus in an introductory class, while giving immediate facility in a programming language, can also give students a too-narrow (and misleading) view of the place of programming in the field

The inclusion of software development practices in introductory courses can help students develop important aspects of real-world software development early on

The use of specific platforms can bring compelling real-world contexts into the classroom and platforms designed for pedagogy can have beneficial focus

Survey Paper -1

AIM: To identify trends in student numbers, programming language and environment/tool use and the reasons for choice of these, paradigms taught, instructor experience, text used and time spent on problem solving strategies in lectures and tutorials and compare with previous censuses conducted during 2001 and 2003

MATERIALS: Study of 44 introductory programming courses in 28 Australian universities, conducted in the latter months of 2010.

EXPERIMENTAL PROCEDURE Audio-recording of phone interview of around 10 to 15 minutes

duration with administrative or academic staff responsible Questions were asked regarding the language and paradigm

choice, teaching duration, instructor experience, textbooks, problem solving strategies and development tools, mental effort required to understand and learn aspects of programming using the language(s) used in each course

Mason, R., Cooper, G., & de Raadt, M. (2012, January). Trends in introductory programming courses in Australian universities: languages, environments and pedagogy. In Proceedings of the Fourteenth Australasian Computing Education Conference-Volume 123 (pp. 33-42). Australian Computer Society, Inc..

FINDINGS Average numbers of enrolments per course have halved, falling

from 349 in 2001 to just 176 in 2010 Languages taught in Australian universities continue to be

dominated by Java Languages that are seen as particularly beneficial for learning

purposes (rather than for industry use) are becoming more popular, such as Python, Alice and Processing

Few courses that introduced novice users to three or more languages

Choice of programming language and environment is governed by pedagogical reasons

The focus on the object-oriented paradigm and the objects-first approach to learning programming appears to have reduced since the 2003 census

Language comparison by percentage of courses

Number of languages taught in a course

Hours in class on-campus

Reasons for language choice

Trends in environment use

Trends in paradigms taught

Levels of mental effort

Survey Paper -2

AIM: Survey the languages and techniques taught in CS0,CS1 and CS2 courses across 371 undergraduate computer science schools in the U.S., quantifying which practices are actually in common use

EXPERIMENTAL PROCEDURE Selected every 10th and 5th school majoring in CS course from

Carnegie Classification List and US News University Directory respectively and sent online surveys to 785 institutions

Survey included questions on languages, environments, programming paradigms, interactive debuggers and time spent on teaching programming and algorithms skills in CS0,CS1 and CS2 courses

Davies, S., Polack-Wahl, J. A., & Anewalt, K. (2011, March). A snapshot of current practices in teaching the introductory programming sequence. InProceedings of the 42nd ACM technical symposium on Computer science education (pp. 625-630). ACM

FINDINGS Over one-third of schools don't regularly offer a CS0 course at all,

and those that do use an enormous variety of languages, and spend a widely differing amount of class time on programming vs. other topics

CS1 and CS2, by contrast, are far more uniform across schools. Alice is by far the most common novice-focused environment in

common use; while Java and C++ more dominant in CS1 and CS2 courses

70.6% of schools (262/371) teach CS1 and CS2 in the same language.

Interactive debuggers are used in 228 (61.5%) of CS1 courses, and 244 (65.8%) of CS2 courses.

Types of development environments used.

The most popular languages used in CS0 courses.

Percentage of CS0 class time spent “teaching algorithmic and programming skills.”

The most popular languages used in CS1 and CS2.

Percentage of respondents who indicated that the “object-oriented programming paradigm” was used.

Teaching Pedagogies

Flipped Classroom

This model inverts or 'flips' the usual classroom paradigm, things are done the other way round: the teacher “delivers” lectures before class in the form of pre-recorded videos, and spends class time engaging students in learning activities that involve collaboration and interaction

AIM: Results and observations of implementing a flipped classroom to teach an introductory programming course (CS1) and how it compares to a traditional lecture-style approach

SUBJECT: 3 sections of Engineering, engineering technology, and software engineering undergraduates studying introductory programming using Python at Arizona State University

EXPERIMENTAL STRATEGY 2 experimental sections in which one half of the course was taught using

flipped approach and second half using traditional approach; 1 control section taught using traditional approach

All in-class assignments were game-based and the game-based videos necessary for solving the in-class assignments were specifically recorded to achieve student success

A total of 22 videos were recorded for teaching, 10 assignments given to each student

Mid term and final assessment exams were taken as well as pre and post student surveys to compute self-efficacy

Amresh, A., Carberry, A. R., & Femiani, J. (2013, October). Evaluating the effectiveness of flipped classrooms for teaching CS1. In Frontiers in Education Conference, 2013 IEEE (pp. 733-735). IEEE.

FINDINGS: Summative assessments suggest that the flipped model produced higher

average scores compared to traditional model in all sections

Computing self-efficacy from flipped classes revealed an increase from pre (M = 53.3) and postscores (M = 71.8). A paired-samples t-test of the 39 students confirmed this difference to be significant [t (38) = -3.459, p ≤ 0.001]

A correlation analysis between computing self-efficacy and students' perceptions of value toward the flipped classroom model was shown to be not significant.

Critical student feedback: Adapting to a flipped classroom approach is overwhelming; viewing long static videos can be boring; a time-constrained setting to complete assignments can be intimidating in the early stages of using this approach.

AVERAGE ASSIGNMENT, MIDTERM, AND FINAL SCORES

Peer Instruction

Peer instruction is about students teaching each other (their peers), where first a multiple choice question (concept test) is posed by the lecturer in class, students vote on an answer using clickers, they then discuss the question and answers with their neighbours in the lecture, then they vote again on the same question, and finally there is a class-wide discussion of the question

This process is often accompanied by quizzes of prior reading and mini-lectures during class.

PI provides student-centered learning environment by replacing some of lecture time’s traditional “sage on the stage” activity with “guide on the side” student-focused activity.

AIM: Describe results of applying PI model in introductory Java-based CS1 and CS1.5 courses with complete process description, types of questions asked of students with report on students performance and their opinions

SUBJECT: 94 Students of introductory CS1 in Winter 2009 and 69 of CS1.5 in Spring 2009 at University of California

EXPERIMENTAL PROCEDURE Textbook reading was assigned before each class, although no

reading quizzes or mini lectures were used PI vote-discuss-vote format on clicker questions was used Results of first vote were always hidden before discussion and

correct final answer was indicated after discussion of reasonable explanation for right as well as wrong answers

Students were also repeatedly presented with benefits of PI model for learning

Simon, B., Kohanfars, M., Lee, J., Tamayo, K., & Cutts, Q. (2010, March). Experience report: peer instruction in introductory computing. In Proceedings of the 41st ACM technical symposium on Computer science education (pp. 341-345). ACM.

Types of questions asked Concepts for which common usage errors occur Emphasis on concept application Eg. Code tracing, selecting the right line(s) of code, explaining in

English words what a code fragment does or describing conditions when a particular code structure or feature should be used

Peer Instruction Questions In Each Class

PI Question Counts by Initial Vote Correctness

FINDINGS: Students’ initial correctness in answering ranged from 15%-86% with

an average of 44-47%. Average correctness after discussion was 63-68% with a normalized

gain of 35-41%.

CS1 Correctness Before and After Discussion

Would you recommend that other instructors in computing courses use clickers with discussion?

Clickers with discussion is valuable for my learning.•9-17% of students rarely discussed and 30-33% only sometimes discussed during group discussion, whilst the remainder always did so.•Only a minority of the class (20-38%) read textbook most or all of the time. Of the people who didn’t always read before class, about half of them felt this had had a negative impact on their ability to learn in class.

Reference website: http://www.peerinstruction4cs.org/

Pair Programming

In pair programming, two students share a laptop, and one of them is the “driver” who types in the code. The partner – known as the “navigator” – does not handle the keyboard, but gives verbal feedback as they work on the problem together.

Advantages include: code quality improvement, increased number of students passing the course, increased student enjoyment, lower levels of frustration and reduced instances of cheating, develop communication skills and team work

Concerns : Active participation by all students is required, Freeloading behind team members

AIM: Assess students using peer evaluation and random pair assignment in collaborative programming assignments in CS1

EXPERIMENTAL PROCEDURE Random selection of teams to pair 2 students together for each

assignment with one of them being assigned as a team lead Face to face meetings not compulsory for collaboration Student survey asking two questions designed to evaluate their

teammate after each assignment

Survey questions asked after every programming assignment

Urness, T. (2009). Assessment using peer evaluations, random pair assignment, and collaborative programing in CS1. Journal of Computing Sciences in Colleges, 25(1), 87-93.

FINDINGS Average assignment quality over the course of seven programming

assignments greatly increased during pair programming The exam scores did decline slightly when pair programming was

used although comparable to the previous session (90% vs. 87.7%) Working in a team provides motivation by making a student

accountable to another student in the class Survey questions prompt the students to contact each other shortly

after the assignment is posted. Collaborating on code allows someone else to see possible mistakes

or overlooked points. Fewer students were found frustrated during office hours and very

few instances of pair incompatibility were seen

Average exam scores of two semesters of CS1

Average assignment scores of two semesters of CS1

Visualization based Programming In this strategy, a visual programming language is generally used

to teach the basic computing concepts in introductory CS to the students

Visual programming environments provide graphical or iconic elements which can be manipulated by users in an interactive way according to some specific spatial grammar for program construction

Benefits of this approach include sustained student interest and enjoyment in the course, low dropout rates and motivation to learn computing

Most common programming languages used in this approach include Scratch and Alice

Greenberg, I., Kumar, D., & Xu, D. (2012, February). Creative coding and visual portfolios for CS1. In Proceedings of the 43rd ACM technical symposium on Computer Science Education (pp. 247-252). ACM.

AIM: design and development of a new approach to teaching the college-level introductory computing course (CS1) using the context of art and creative coding and its comparison with other approaches

SUBJECTS: 23 students of Bryn Mawr College and 16 of Southern Methodist University (SMU) were taught CS1 in Fall 2010 using Processing programming language

EXPERIMENTAL PROCEDURE Major topics covered: creative computing, drawing primitives, interactivity,

simulation, control structures, arrays, functions, objects, text, data and visualization

Students were asked to create a visual portfolio of their aesthetic creative coding assignments that employ basic computing structures using Processing

A larger collaborative project (virtual fish tank) between the students of the two partner institutions Bryn Mawr College and SMU was given mid-semester for team learning

A final design project was also given where students chose, designed, and built a data visualization artifact of their own interest

FINDINGS 21 Bryn Mawr Processing CS1 students, 11 SMU Processing CS1 students and 39

SMU non-Processing Java-based CS1 students returned the surveys along with 22 and 24 surveys from Spring 2007 and Spring 2008 classes respectively of CS1 with robots taught at Bryn Mawr

Students in the Processing sections appear more positively inclined to take additional CS courses

Students in the Processing sections are more likely to spend extra time on a homework assignment for "fun“

Students in the Processing sections indicate strong tendency to talk to friends not in the class about the class

Students in the Processing sections at both institutions disagree that CS and programming are the same thing

SMU students exhibit stronger confidence in knowledge and technical knowhow (compared to peer in class) than Bryn Mawr students

SMU students also exhibit stronger confidence in math and science abilities, which is partly explained by the higher number of intended CS majors in the class.

Students at both institutions are quite positive about technology and trying new tools/products, with the SMU students indicating stronger tendencies.

% of students responding Agree or Strongly Agree

% of students responding Yes

% of students responding Agree or Strongly Agree

% of students responding Yes

Problem Posing

 Problem-posing education solves the student-teacher contradiction by recognizing that knowledge is not deposited from one (the teacher) to another (the student) but is instead formulated through dialogue between the two

Problem-posing contextualizes knowledge and is based on instructor and learner posed questions as catalysts for learning

Problem posing involves the asking of new questions around a given situation by a learner

The approach is useful in building computational, thinking skills and confidence among the students

AIM: Investigate how the PPE instructional strategy affects students’ learning and engagement in CS1 course and in what pattern does its affect varies for advanced learners and the novices

SUBJECT: 450 students of CS1 course (excluding CS majors) conducted in Spring 2013 for teaching programming concepts using Scratch and C++

Experimental Strategy: Students were asked in pairs to generate two challenging problems &

their solutions for topics learnt uptil 4 week lab classes for five days continuously

Student assessment tests taken for pre (30 marks quiz) and post (50 marks exam) PPE week

Anonymous student surveys were taken for measuring learning perception and engagement

Student Questions were evaluated based on difficulty, computational thinking and creativity levels

Mishra, S., & Iyer, S. (2013, December). Problem Posing Exercises (PPE): An instructional strategy for learning of complex material in introductory programming courses. In Technology for Education (T4E), 2013 IEEE Fifth International Conference on (pp. 151-158). IEEE.

Findings of student surveys and test scores

Quality(Difficulty) ofGenerated problem

Level 1 (Low), N=32

Level 2 (Medium), N=83

Level 3 (High), N=20

Mean of [PostPre] Scores (out of 100)

1.04 7.59 4.83

Table showing difference of scores [posttest – pretest] for different groups of students, generating low level, medium level, and high level of questions

42% of students agreed to the positive effect of PPE on their learning50% of students felt that PPE made CS1 interestingMajority of students, irrespective of being advanced or novice learner, generated problems of medium level difficulty and PPE was found to be more effective for novice learners than advanced learners

Three – Layer Strata Transition Diagram for Advanced Learners (No. of Samples=62)

Three – Layer Strata Transition Diagram for Novice Learners (No. of Samples=60)

THANK YOU!

QUESTIONS?

REFERENCES Mason, R., Cooper, G., & de Raadt, M. (2012, January). Trends in introductory programming courses

in Australian universities: languages, environments and pedagogy. In Proceedings of the Fourteenth Australasian Computing Education Conference-Volume 123 (pp. 33-42). Australian Computer Society, Inc.

Davies, S., Polack-Wahl, J. A., & Anewalt, K. (2011, March). A snapshot of current practices in teaching the introductory programming sequence. InProceedings of the 42nd ACM technical symposium on Computer science education (pp. 625-630). ACM

Siegfried, R. M., Greco, D., Miceli, N., & Siegfried, J. (2012). Whatever Happened to Richard Reid’s List of First Programming Languages?. Information Systems Education Journal, 10(4), 24.

Settle, A. (2012, October). Turning the tables: learning from students about teaching CS1. In Proceedings of the 13th annual conference on Information technology education (pp. 133-138). ACM.

Amresh, A., Carberry, A. R., & Femiani, J. (2013, October). Evaluating the effectiveness of flipped classrooms for teaching CS1. In Frontiers in Education Conference, 2013 IEEE (pp. 733-735). IEEE.

Mok, H. N. (2014). Teaching tip: The flipped classroom. Journal of Information Systems Education, 25(1), 7.

Simon, B., Kohanfars, M., Lee, J., Tamayo, K., & Cutts, Q. (2010, March). Experience report: peer instruction in introductory computing. In Proceedings of the 41st ACM technical symposium on Computer science education (pp. 341-345). ACM.

Urness, T. (2009). Assessment using peer evaluations, random pair assignment, and collaborative programing in CS1. Journal of Computing Sciences in Colleges, 25(1), 87-93.

Khan, S., Ray, L., Smith, A., & Kongmunvattana, A. (2010, December). A Pair Programming Trial in the CS1 Lab. In Proc. Annual International Conference on Computer Science Education: Innovation and Technology (CSEIT) (pp. 6-7).

Greenberg, I., Kumar, D., & Xu, D. (2012, February). Creative coding and visual portfolios for CS1. In Proceedings of the 43rd ACM technical symposium on Computer Science Education (pp. 247-252). ACM.

Mishra, S., & Iyer, S. (2013, December). Problem Posing Exercises (PPE): An instructional strategy for learning of complex material in introductory programming courses. In Technology for Education (T4E), 2013 IEEE Fifth International Conference on (pp. 151-158). IEEE.


Recommended