dbosk / introcs

An Introductory course on Computer Science and Computer Engineering
Other
0 stars 0 forks source link

Decreasing fails and dropouts in intro #5

Open dbosk opened 4 years ago

dbosk commented 4 years ago

----- Forwarded message from "Popyack,Jeffrey" popyack@DREXEL.EDU -----

Date: Mon, 11 Nov 2019 22:39:12 +0000 From: "Popyack,Jeffrey" popyack@DREXEL.EDU To: SIGCSE-members@LISTSERV.ACM.ORG Subject: Re: [SIGCSE-members] Parachuting CS 1

 We’ve done this, with some success. We had a 2-term programming sequence for majors that was also run in a course for non-majors at 2/3 speed, and with lesser technical demands. (We’re on the quarter system.). So, if someone was having difficulty keeping up with the course for majors, there was certainly the possibility that they could transfer back to the slower-paced course and not have missed any material. We did have students who were successful in completing the course, and changed majors to a program that required the non-majors course.

Of course, if they were having difficulties in the majors course, there was no guarantee they wouldn’t have similar difficulties in the non-majors course, which also proved to be the case for some students. I felt the benefit to students far outweighed the drawbacks, though, and it was worth a try. It was an additional burden for the instructor who had to accept a new student mid-stream. The university, however, was less interested in creative solutions that disagreed with the published drop/add schedule, and we had to go through a lot of extra paperwork and procedures administratively to accomplish the transfers.

I had a strong interest in putting all our students in the same course at the beginning of the term, and giving them credit for whatever they actually finished at the end, perhaps even restructuring the notion of a programming course into something like a dozen units at .25 credits each. And even having different “levels” of the units, so that the majors would need to do all levels, and would get credits for the “major” course, and other course variants would require lesser combinations. It would also allow students to go through the material at different paces. You can bet nobody knew how we could make that fly here, but I still like the idea.

… jp

-- Jeffrey L. Popyack, Ph.D. Professor of Computer Science The College of Computing & Informatics Drexel University 3675 Market Street, Room 1060 Philadelphia, PA 19104 Tel: 215-895-1846 | CS: 215-895-2669 www.cs.drexel.edu/~jpopyackhttp://www.cs.drexel.edu/%7Ejpopyack

----- End forwarded message ----- ----- Forwarded message from William Kerney william.kerney@CLOVISCOLLEGE.EDU -----

Date: Fri, 8 Nov 2019 23:29:12 +0000 From: William Kerney william.kerney@CLOVISCOLLEGE.EDU To: SIGCSE-members@LISTSERV.ACM.ORG Subject: Re: [SIGCSE-members] Parachuting CS 1

Hi Chris,

I haven't seen any literature specifically for computer science, but after attending a talk on what you call parachuting for math, I set up something like that for our computer science program here.

Basically, I have two sections of CS1, and students that aren't doing well by Week 3 (it's usually clear by then who is going to drop or fail) I recommend drop before they get a W and enroll in a computer science principles + critical thinking class that starts on Week 4, with the idea being that students get a much more gentle introduction to the fundamental concepts of computer science so they can be better prepared for CS1. It goes about twice as slow through the topics, and uses block coding instead of text editing.

It counts as their mandatory critical thinking class, so it doesn't "cost them a class", since they'd need a critical thinking class anyway. I based it in part on Berkeley's Beauty and Joy of Computing Class, and part on Fresno State's CSCI 1 class.

-Bill Kerney Clovis Community College

----- End forwarded message ----- ----- Forwarded message from Adam Gaweda agaweda@NCSU.EDU -----

Date: Sat, 9 Nov 2019 13:29:33 -0500 From: Adam Gaweda agaweda@NCSU.EDU To: SIGCSE-members@LISTSERV.ACM.ORG Subject: Re: [SIGCSE-members] Parachuting CS 1

While I do not have literature on parachuting success, I can provide literature supporting the idea behind this type of intervention.

Falling Behind Early and Staying Behind When Learning to Program - http://www.ppig.org/sites/ppig.org/files/2014-PPIG-25th-Ahadi-Lister_0.pdf

Another thought that I am using as the basis for my dissertation is the use of lower-level practice exercises. Many students struggle initially with syntax errors and so I offer worked examples as typing exercises. These provide more examples of how the concepts work while letting students practice syntax errors without the worrying of encountering logic errors. This is not the same as a parachuting course but could offer similar intervention benefits.

The poster I presented at SIGCSE 2019 on typing exercises can be found here

https://www.researchgate.net/publication/331301454_Giving_Students_Canned_Code_using_Typing_Exercises

We currently have a paper under review for ACE 2020 that showed students completing these exercises improved and the effect was stronger with initially low-performing students. I am also currently using these typing exercises as graded exercises this semester as well.

A link to our approach is located here - https://research.csc.ncsu.edu/arglab/projects/exercises.html

----- End forwarded message ----- ----- Forwarded message from Frank Vahid vahid@CS.UCR.EDU -----

Date: Mon, 11 Nov 2019 16:28:06 -0800 From: Frank Vahid vahid@CS.UCR.EDU To: SIGCSE-members@LISTSERV.ACM.ORG Subject: Re: [SIGCSE-members] Parachuting CS 1

Hi friends! I've enjoyed this discussion. Cool stuff Adam -- thanks for the pointers.

Hopefully not sidetracking the parachuting discussion, I thought I'd share that I considered parachuting among other improvements when undergrad advisor years ago. We instead focused on improving our CS1, mostly by giving a lot of online questions/homeworks/programming-assignments with immediate auto-grading, and partly around peer instruction during lectures, and eliminating non-essential course complexity (e.g., no software installs in the first 5 weeks, minimizing logins, every week the same deadlines, no dwelling on weird language features, etc.), plus hiring talented/motivating/patient/friendly teachers and creating a teaching culture of cooperation and continual improvement. We now have dramatically fewer students struggling, and far fewer DFWs (no inverted bell curve; in fact our curve is a ramp with F's the low side and A's the high side). I've since discovered several schools doing the same, with similarly positive results. FYI: Our CS1 is about 400 students/quarter, half non-majors, C++, most students financial aid / first gen / minorities. We didn't water down CS1, final exam mostly same as before; and students doing fine in CS2 and beyond.

We continue to focus on improving CS1, like more peer instruction, and more hints/help when stuck on a program (especially late at night). I'm experimenting with starting with Coral https://corallanguage.org/ -- executable pseudocode/flowchart language with an educational simulator that shows variable values and current statement (single-stepping possible), auto-derives a flowchart, etc. -- and then switching to C++ after the midterm; going even better than expected. Looking ahead, I'd like to introduce auto-graded auto-generated exams so students can practice and we can create second-chance policies (like Illinois does -- wow they are doing cool stuff there). In my travels in the past two years, I've also seen several schools that make great use of upperclassmen to mentor/tutor/provide-help in CS1, and would love to figure out how to do that as well (benefits the CS1 students and the upperclassmen).

Anyways, none of that invalidates parachuting, which can of course be helpful to those who struggle.

Frank

On Sun, Nov 10, 2019 at 2:21 PM Adam Gaweda agaweda@ncsu.edu wrote:

While I do not have literature on parachuting success, I can provide literature supporting the idea behind this type of intervention. ... A link to our approach is located here - https://research.csc.ncsu.edu/arglab/projects/exercises.html

----- End forwarded message -----