thetis: an ansi c programming environment designed for ... - CiteSeer

2 downloads 54 Views 619KB Size Report
AN ANSI C PROGRAMMING. ENVIRONMENT. DESIGNED. FOR INTRODUCTORY. USE. Stephen N. Freund and Eric S. Roberts. Department of Computer ...
THETIS:

AN ANSI C PROGRAMMING ENVIRONMENT DESIGNED FOR INTRODUCTORY USE Stephen N. Freund and Eric S. Roberts Department of Computer Science Stanford University

ABSTRACT

As we have reported

Commercially available compilers, particularly those used for languages like ANSI C that have extensive commercial applicability, are not well-suited to students in introductory

the change

computer

note that the concerns

science

sophistication alleviate

that

this

Thetis

courses beginning

problem

use.

system

associated

user interface

and easily

understood

capabilities.

fulfills

provides

a significantly

students

1.

of students

we

undergraduate

with

time

learning

On further

and

discovery:

for

language Pascal

in CS l/CS2.

than

INTRODUCTION

When

the Stanford

its CS l/CS2 strongly

the C-based department,

as more

members,

Ironically, reservations

about

of the lecturers introductory

only

who

would

that

Pascal

students

to adopt

needed

C were

be responsible

There

was little

saw

both

for

there C and

the and

use.

extensive

for students solving

and algorithmic

expressed

more

to master it,

of

their

was

that

time

the more design. “students

debugging

important

from

environment

of

the

provided

of the The

easier

revised

clearer

to use course,

The

Pascal

diagnostics,

that was much

better

a change

in

language—that

of

course

project

tools

specifically Thetis

mythology—was quarter

we decided

computer

christened

introductory Thetis

that the best

was to develop

designed

science after

to address

students.

the sea (C)

That nymph

used on an experimental

1995

and then

adopted

for

basis

the entire

in the spring.

This

paper

and our experiences

using

it at Stanford.

describes

the

in the 2.

it harder

SHORTCOMINGS

OF

their

the learning

EXISTING

earlier problem

time

for

learning.” Permission to copy without fee all or part of this material is granted provided that the copies an? not made or disbibuted for direct commercial advantage, the ACM copyright notice and the tiUe of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise or to republish, requires a fee and/or speeific permission. SIGCSE ’96 2f96 Philadelphia, PA USA Q1996 ACM 0-69791 -757-X/96/0002 ....50.5O

papers

process

[Ruckert93,

is that

languages

most like

C that designed

As a result,

of these

most

for

cater

environment

beginning

have

students

is

been recognized

Schorsch95].

commercial

programmers—are student

COMPILERS

in the programming

not a new one; such shortcomings

issues of problem

less

for

debugger

of introductory

Greek

in winter

The fear, as one lecturer would end up spending and

was much

of inadequate

complicate

make

higher

a function

programmers.

consideration,

to the problem

by using

would

in their

environment.

of the programming

The idea that weaknesses

course

on

of their

errors

It was these factors—not

curriculum than they had in the past. The concerns were focused instead on whether the added complexity imposed C in the introductory

fraction was often

less

adopted

an interactive

project—since

in anyone’s

earlier

seminar

we made an important

was

errors,

and structure

After solution

one or two

that

we

more

to student

the needs

obsolete

C++

to

When

made the difference.

significant

was no doubt

however,

beginning

detected

the syntax

students

for teaching

question

increasingly

Likewise,

to learn

any

level

we had abandoned

a programming

to express

was becoming

to be replaced.

prepare

of

we determined

obscure

frustration

frustration

the C compiler

suited

attitude shared by and outside the

would

a

a larger

of the programming

compiler

and included

work.

people

the decision

courses.

for

students

in year,

relatively

most

it is important foundation.

its initial

spending

down

examination,

than

compiler

constituencies

In particular,

relevant—an both inside

for advanced the

decided

of instruction

of the affected

who felt that the change

more effectively

needed

most

the change.

material

faculty

Science

C as the language

sequence,

supported

many

mind

ANSI

of Computer

so,

course

after

indeed

student

particularly

Department

in 1991 to adopt

were to track

in fact achieved

not without

C-based

Roberts95a],

on the computer

as a result.

indicate

environment

the

teaching

trying

effect

Even

were

code and that the student

simple

and visualization

and instructors

anticipated.

evaluated

that students

for

we set out to accomplish

better

To

and

[Roberts93,

and that we have

we

the

specifically

students

program

the benefits

of

developed

of a C interpreter

debugging,

the goals

a level

do not possess.

designed

consists

editing,

assume

we have

that provides

Reactions

that Thetis

students

environment

The

they

at Stanford,

programming

student

because

science

elsewhere

to C has had a positive

The

in

underlying

compilers—particularly to

for experts compilers

a large rather

audience

of

than novices.

are poorly

suited

to

use.

In our experience, commercial compilers suffer from the following problems when used in an introductory course:

compilers “ The error messages generated by commercial are often uninformative and sometimes misleadittg. New

300

programmers

tend to make

others.

example,

For

certain

omitting

mistakes a required

more

often

than

semicolon

or

right

curly

brace

Unfortunately, by reporting below

is a very

compilers a seemingly

the actual

does

not detect

file.

Expert

where

error

unrelated

mistake.

syntax

the problem

until

understand

novices

error

Although

error several

lines

to address

point

the parser

section,

in the source

practical

the problem

are completely

and know

baffled.

little or no run-time identify bugs that are

error

confusion,

the greatest

logic

that

frustration

are a source

for

system

students

never

pernicious common outside

comes

from

In

the

detects.

because

Even

helpful

to novices,

rarely

errors

the bounds

pointer.

C,

compilers

run-time

such

such

experts

errors

problem

is especially

generate

code to detect

are unwilling

avenues

are available.

would

its goals

decided ●

to pay the cost.

tt’as

pedagogical

that

offer

fact

of

not

run

at

primarily

if

making

debuggers

sophistication.

The

Stanford,

for example,

character

pointer—a

you understand

usually

require

commercial

C compiler

displays

string

representation

how

a high we

use

string

data internally.

goals

many the

“ (k-pedagogical

In

until

depends

pedagogical

end.

While

the

failure

sense,

present

string

data

restricts

the utility

in

an

this

strategy

makes

of the debugging

understandable

good

tools

way

that

are

C’s

of the debugger.

effective ..

w’hetl

environment.

to a large

extent

products

must

all the resources

developed

locally,

available

on

programming

to support

such integration.

environments

advanced

the

machine,

typically

overwhelm and

offer

flexibility.

To

inadvertently

main

language By that

problem

are later

run-time

run

information

of

from

and debugger during

have

limited

compilation.

Interpreters

itself

into

incur

the

access

a single the

no need to achieve

would simplicity

gladly

sacrifice

and reduced

maximum some

run-time

execution

debugging

for

the

to

ensure

that

models,

it

interpreter

was

be unlikely

new ideas in the design et?vironment.

and dynamic

we identified

in the future,

visualization.

Exploring a research

Although

much

the prospect

a strong

For

the relationship

that we develop

and modify.

of a

In the

as experiments.

in exploring

is

to take cslib

would

design,

of

prepared

Because

useful

C

libraries

mask much To

products

interested

We had a team of students the

incentive

interpreter imaginations

tool

of this

of undertaking to implement

and

importantly, extremely

time.

design

3(

fully

the

[Roberts95b].

The

and enthusiasm

there

iri taking

integrated

program

than

idea

for use in the introductory

competent

interested

students-–even

more

teaching

idea in recent memory. the project and sought

greater

Mvho were

Stanford,

level—are science

institutions

penalty

At

project.

computer

an

phase in

efficiency

speed

the

a preliminary

provided

w’itllin

better

conflicting of

seemed

extend

remains

are

by

several

space required

undergraduate

to the

in execution efficiency that makes them inappropriate for writing production code. Introductory students, however, have

debugging



program

a significant

between

on

phase. the

By contrast,

simulates

therefore

Because

year,

interpreter.

instructions

process.

per

in teaching

temporarily

programming

that

we were

such research

inte,erated ., success

definitions.

developing features

research

it hard

is CS

of platform.

Our

commercial

to explore

that we could

users need.

the execution

these operations

interpreter

makes

cslib

based

design

a change

well

components

example, this

commercial

machine

as an independent

combines

the

execution.

generates

if

confused

all the

We wanted

process-of

or incompatible

producers

of

several

severe

not

pedagogically

of the program.

technology

generated

interpreter which

incorrect

that beginning

phase is separate system



features

more

of feedback

a compiler

compilation

that

understanding

becomes

execution

facing

special

limits

is that compiler

the kind

definition,

these

chooses

successful

systems

to provide

user interfaces

that

The problem

that prohibit

The

student,

complexity

and self-confidence. options

complex

account

who has no use for the added power the

additional

the student

commercial

have

the beginner

represent

programmers

do

which

introductory

representation.

students

for

systems

1200 students

students

cotnpilers offer a bewildering set of options “ Commercial and special features that are useless to the novice and Because their occasionally cause consistency problems.

are

The

which

until

the underlying

important

those

on campus,

on the use of the cslib

Roberts95a],

complexity

understand

[CenterLine95],

we seek,

over

out’ Even

approach depends on the use of libraries

most

[Roberts93,

to

severely

both

C interpreters,

product

to contemplate

both to

reasons:

satisfied

commercial

available

enroll

computer

project,

requirements.

Macintosh.

at Stanford

programming

to the

Apple

it infeasible

our course, we introduce strings as an abstract type very the underlying representation early in the course, deferring close

hardware

CS298

In the end, we

that

CodeCenter

of the features

on the

other of the

of Stanford’s

hardware

to buy

that

if

for the following

system

and our

project

the dimensions

interpreter

a

software

undergraduate

the project

it is possible

courses

sense only

any

and to assess its feasibility.

such as CenterLine’s

data as a hexadecimal

that makes

C represents

level

though

teaching

no existing

represents

particularly

quarter

the proposed

to undertake

There

● Interactive debuggers typically require students to understand advanced cotl cepts before they are ready to is further complicated by the assimilate them. Debugging

that existing

on

so made are, the

scratch

is a major

lightly,

an entire

evaluating

preceding

doing

Building

sure that we understood

“Seminar

science,”

be

from

strategy.

undertaken

we spent

course,

an invalid

checking

be

that

as the shortcomings

of this scale and complexity not

a C interpreter

in lhe

clear

serious

solution

should

refine

identified

Immediately

As

ambitious

problem,

an element

or dereferencing

run-time

not

A C INTERPRETER to design

a new C interpreter

To make

the

BUILD possible

shortcomings

sense.

system

misleading

as selecting

of an array

though

Although

of early

the

it was

rather

TO

it was certainly

idea of writing

C compilers offer “ Commercial checking that would help students otherwise extremely hard to find. messages

DECISION

to this

because

that

3. THE

in C programs.

respond

presumably

programmers

to look;

common sometimes

more

of

a core

students

and implementation.

who

of

many a C

captured

any other

highly wanted

The existence

the

at

Many students contributed to become more involved.

was

the

building

classes than

at into

their project

ideas to More

motivated, to drive

of that group

the of

students

meant

how

usable

else,

the

AN

enhance

from their

OVERVIEW

“succeed”

turned

would

of experience

significantly

would

system

implementers

amount

4.

that the project

the final

out

have

doing

Strengthened

no matter

One

to be; if nothing

gotten

in an introductory

an enormous

the project

that

legal

would

. . . Thetis was a faithful mother to [Achilles], aiding him in all difficulties and watching over his interests from the first to the last.

Thetis

is a complete,

Hamilton,

integrated

that “aids

students

interests”

by providing

in their

development

difficulties

and watches

a conceptually

simple,

environment in which to learn programming. respects, Thetis presents a conventional user student what

creates files

source

make

in a project program

files

in editor

up the application

window, through

by listing

a menu-driven

contrast,

Thetis

because

its effect

intended. strings

flags

Other

using

and failing

enabled—as

it is for

to that

make

line

common of the line:

fewer

of

by

constructs

is

i

In

default,

the student likely

operators

to

be

to compare

prototypes.

syntactic

checking

in Thetis

for the syntactic

restrictions

of

When

checking

is

[Ruckert93].

errors

variable as FALSE.

not what

function

the

The

as an error

relational

to those outlined

programming

legal.

for enhanced

C

differences

most

by the following

certainly

to include

The arguments Educational

similar

this

examples

include

the contents

The major

as

always

= in place

is interpreted

is almost

are similar

of the

operator

is perfectly O, which

indicates

the execution

interface

application.

statement the value

erroneous

In many interface: a

windows,

and then controls

used by any Macintosh

over their

yet powerful,

regard

are almost The

students.

as illustrated

=,

C or C++

O)...

assigned

environment

by

using

languages

that

the assignment

operator

In C, this

Mythology

is that these

constructs

written

if(i=

by instructors

course

is using

relational

restrictions

faced

syntactic

when

example

THETIS

—Edith

certain

errors

own education.

OF

syntactic

of the problems

such

introductory

classes—students

and can concentrate

on developing

better

skills.

are that Thetis ●

Automatically

incorporates

so that students ●

Offers



Provides

the cslib

need not be concerned

significantly

enhanced

a convenient

Thetis

with

Run-time

libraries,

For

them

error

that operates

at

syntactic

errors

little

In

his

error

discussion

reporting

of

errors

Schorsch

notes

the syntactic His

in

error

commercial

messages

much

generated

reported

by many

are similar

own

environments

feedback

with

simply

are designed

than

the

For example,

usual

c

often

=



Using



Dereferencing



Accessing



Assigning

like

“type

mismatch”

gives no helpful information regarding problem, and the second phrases the error

may not comprehend. message value this

for

of type example

messages makes from

string may

in a similar

it much their

or “assignment

easier

message The first

programmer:

to a variable appear

trivial,

fashion, for

“cannot

of type

enhancing

as we have

novices

done

to understand

all

find

this

burden,

run-time

are

arise, offering bugs the

in

Thetis

errors:

variable an invalid value

function

Calling

a bad function



Passing

invalid

pointer to an enumerated

without

returning

type a value

pointer

arguments

and

to a function

visualization

experience

has shown

needed

program

to present

to novices

to present

tools that debuggers a clear

information

in a way

that

programmer’s

level of understanding. the learning Thetis

about

a

While error

in Thetis, and learn

mistakes.

302

for

so that it builds

which students are already familiar. diagram, for example, shows a Thetis

view

By contrast,

is consistent curve

do not have

conceptual

[Birch95].

of a program

we have designed

error

assign

char. ”

all

C environments

programmers

an out-of-range

To minimize

the cause of the in terms a student

Thetis provides a more suitable

a beginning

of

after

an array out of its bounds

is designed errors

phase

persist

such errors

reduce

or freeing

a non-void

Previous

the lines

from pointer without cast.” Neither useful to the introductory student.

when

for the following

an uninitialized

Debugging

terse

;

generate

that

by zero



running

makes integer is particularly

frustrating

corrected.

help To

most errors

to

c; Ha,,

to

checks

Dividing

the features char

been

code.



“ Exiting

by novices.

by Thetis

by compilers.

and Tom

compilers.

to our

understandable

reported better

analyzing

have comprehending

commercial

messages

for

[Schorch95],

students

error messages

user

utility

programs

Pascal

C compilers:

error

the

CAP

messages with

do not provide The

the Pascal

the difficulty

experiences

give

reporting

have

feedback

interpreter

Improved

the

the logic

not very useful

misbehaving

provides.

students,

is finding

traditionally

to the students’ understanding expand on the most important

detection

introductory

debugging

error detection

debugger/visualizer

a conceptual level appropriate The sections that follow new features

and ANSI

the execution with new

of a

Thetis state

the novice

programmers,

on paradigms

The following editor window:

with screen

The

window’s

user

left

has placed

mouse.

The

margin.

Each

because array

line

contains

about

has an arrow

is not confronted options

that students

are much

the

In this

example,

of the

several

different

in the

Moreover, with

also includes

special

advanced

also

willing

to use the

allowing

visualizer

modeled

more

for

Finder

students.

The

interface,

following

of the visualizer

diagram

is familiar

to

illustrates

the

test

students correctly

The

Thetis

two

Data

developed

II

V 4 prbc4+ssLine

❑ ❑ ❑ ❑

I

word

“verb

inl%.etmklw

TRUE

teaching

start

4 uninitialized

~ 3 PrmessMadlibsFile

In

I

II

using

winter

students the

material

of

basis

with

in

can be turned

window

with

extends

left of variable

to view variables

names

next

This

The

to

in that

opens

in it.

as well.

represent

arrow

the variables

a function

and structures

and

Our

for strings,

experience

develop

indicates

a new

any

icons

to the

The

concept

conceptual

scope

of a call

understandable

model

of variables, stack

that students

of how

find

helps

their

parameter

are all

programs

usage,

presented

the them

and the

in an accessible,

way.

debugging

Listener,

which

allows

the program the

to create

available students

runs.

variables

from

illustrated

in the following

to the programmer to evaluate

These

program,

and

diagram:

expressions even

prototype

were

integrated

the initial

version

was dedicated in the

of

to testing seminar

course

considerable

their

is the

any expression can

function

include calls,

as

used

of

CS 106A

on

as the user

Thetis

on an

approximately

course,

30

which

CS 1 curriculum

went

we found

covers

[Austing78].

opportunity

to

damaging

extremely

refine

bugs

the

before

it

course we

in

use either

was the

success for

the following

students

of CS2—to

the

using

which

to use Thetis

students)

allowed

advantage

Given

an

enjoyed

and pointers,

time.

we decided (300

Through

students

important

on arrays

debugging

well.

that most

that the most

experiment,

CS 106A

we

saved of the

the entire

quarter.

In

CS 10613-Stanford’s

Thetis

or ‘THINK

C for

assignments.

To measure survey

of

quarter

of

relatively

student

students 1995, small.

reaction

enrolled when,

to the tools, in

unfortunately,

The results

in

the

enrollments

Yes

were

No

I

0.070

100.0%

Thetis easy

I

Were YOUever confused about how to do “something in Thetis?

I 66.770

33.3qo I

I

Do you feel that Thetis has helped you understand pro~ramming ?

71.8%

28.2qo

Do the error messages reported by Thetis help yx4 find mistakes in your programs easily?

82.0%

18.070

From Thetis

the reactions, is positive.

students

enrolled

introductory and CS2 THINK revealed

in

course into

C.

a single

With

it is clear

This

same

combines

quarter—who

this audience,

the following:

that

student

survey

was

response also

CS 106X—Stanford’s

that

a

summer

are as follows: I

do you find

we conducted

CS 106A

N=39

tool

a

components

us an

error checking

III general, to use?

Listener

Another

of 1993-94:

and

potentially

quarter

and felt

run-time

addition,

the types of the variables:

easy to use, but also that its structure a solid

work.

components

use.

survey,

Thetis

initial

metaphor

and so on. not only

over the past

and winter

a group

ACM

gave

fix

first

equivalent integers,!@

visualizer

while

has a folding

on

that function’s

to arrays

❑ for

The

down

Double-clicking

of

Andy

of two

1994–95,

large

the

experiment

That

function.

Arnold)

consisted the fall

group

Freund,

the participants

in Stanford’s

informal

it which

a small

of the introductory

quarter

faced widespread

stack

PROJECT

by

and Perry

and summer

and the staff

system

on the call

THETIS

The fall of 1994–95

experimental

This

function

code,

written

by

community.

El

Each

additional

These

and refinement,

i

to write

debuggerlvisualizer. the interpreter.

* 1“

function

parser/evaluator

the spring

refinement

(Stephen

during

the Listener

written

preliminary

during

Providing

a newly

phase

in parallel

or writing

that

was

Becker,

source of

[he

the program

continuing

initial

on

Listener,

stepwise

OF THE

Brian

the

of

undergraduates The

is tested

using

determine

test cases.

interpreter

years.

a

and

to verify

EVALUATION

5.

By

restarting

notion

before

Montgomery,

Program

functions

repeatedly the

function

values.

code for running

Stanford

in Thet~:

input

reinforces

works

which

can

the IsPalindrome

without

a baffling

intended

a program

students errors

than they have been in the past.

the Macintosh

operation

where

click

is self-explanatory.

complicated

The debugger Stanford

sign

a simple

to be executed

the programmer

debugger

a stop

with

of these icons

of more

use, we find

after

margin

a breakpoint

to

accelerated

the material were

to

given from

CS 1

programming

the corresponding

questions

in

I

N=26 In general,

do yoLl jind

THINK

easv to use? Were you ever confused aboat how to do something

in THINK

Do you feel that THINK helped

you

Yes

I

collective

impression

lectures

are augmented

I 69.2%

C?

No 26.9%

I

73.170

C

that Thetis

~6,970

73.1%

C has

for students

ing ?

Do the error messages reported by THINK C help you find mistakes in your programs Despite

that

stronger

counterparts

in

those

contrast

Over helped

them

find

When

CS 106B

environments,

manv

users

mistakes,

students

said

while

fewer

than

execution

20

despite

students

who

switch

‘its

the choice

between

OUted to use Thetis

for their

slower

started

to THINK

&xecution

an assignment

C to take

speed. with

advantage

with

engineering.

portability

in mind

the immediate

indication and

programming the helper using

fewer

concentrate

Sahami,

students

spent

When

on it.

quarter

of 1995,

programs

were

significantly,

teaching less

assignments

students how

Thetis

than

during

Release

value allows

easily.

Gerald

section office

hours

Michael

Guide,

class

R.

the class they

Cambridge,

during

class,

checking

demonstrations

program

of the ACM,

D.

editing

education:

The results

al.,

in

March

“DYNALAB:

infrastructure

Bu[[etin,

A

featuring

March,

Corporation,

MA,

structure

[Roberts95a]

people allowed and bugs more

is also auDarent.

1995,

CodeCenter

User’s

1995. R.

on

Goldenstein,

“The

introductory

impact

computer

of

science

SIGCSE Bulletin,

so far,”

p~~grams

September

Mythology,Boston:

Eric

“Using

T/ze Art

S.

Roberts,

experience,” Martin C,”

MA:

courses: Ba[[etitl,

Ruckert Bulletin,

and

1993. of C: A

Addison-Wesley, Lilly,

as teaching

SIGCSE

S[GCSE

March

and Science

John

undergraduates

Little,

C in CS 1: Evaluating Bulletin,

Reading,

programming

“Educational

“Using

SIGCSE

S. Roberts,

[Roberts95b]

[Ruckert93]

Lecturers

Eric

Ai]proach,

Stanford

new

S. Roberts,

Librarv-Based 199.5.

introductory

supplementing

lecture notes with real programming examples. we have no direct evidence to support the

in-class

et

[Hamilton42] Edith Hamilton, Brown and Co., 1942.

the

but the better

sections.

of

1989.

on the average.

for presenting

and run-tilme

laboratory

SIGCSE

[Goldenstein89]

poll.”

the summer

and grade

formatting

the undergraduate

CenterLine

experience,”

tool

to

use

Birch,

science

Eric

to debug

enhancements

[Goldenstein89]

Cot]ltlllftzicatio?ls

[Roberts93]

or discussion

for demonstrations

for

science,”

the Stanford

staff

of

slower

Austing, Bruce Barnes, Della and Gordon Stokes, “Curriculum

Recommendations

each

to the course leaders

Richard Engel,

more

usual,

its

REFERENCES

to finish

than

by

platforms

Perhaps

hours

these

advantage

help system

for general

usual.

It is also an excellent

during

use Thetis

of Thetis

to other

the system

Rollins,

The

topics

Port Thetis



animation,”

quickly,

more



on-line

required

support from the programming environment to move beyond simple misunderstandings

Thetis

to support

[CenterLine95]

thought

by the

believe

1979.

to program

generally

at

times

needed

automat]c

the visualizer

[Birch95]

and

time

to

released five

We

editors

Enhance

program

much

to provide



to step over

he asks

and how

of time

no easier

the following

stylistic,

hurdles

a “pain

by one or two

were

to make

an effective

computer

evaluates

that people

painful

frustrated

in structure-based

dynamic

at Stanford,

with

becoming

more syntactic,

’78:

common

by conducting

be

to take full

Develop

computer

or accessing

and painful

it was

he noted

dropped

allows

at

Students

find

students

the text editor

Bonnette,

own and therefore

in an assignment,

painful

the amount

assignment The

a lecturer

hand

how

their

goal of learning

on assignments

collectively

to

paper.

been

utilization.

over the next two years:

[Austing79]

introductory

a variable

confusing

on the main

performance When

Thetis

often

reduced

cluster.

will

the memory

in this

allow

memory

which

less than half

will

important

have

runs approximately

Provide

to fit

asked by students

able

initializing

array element-on

yet

taking

computing

generally

as not questions.

Mehran

tools

Thetis,

of 1995,



to program

has successfully

are the questions

were

an out-of-bounds small,

how

development

in several

challenges



run

of their lesson in

to choose

of students

in the main

of

without

Extend

7.

that Thetis

classes cubicle

Thetis

these

and also how

frustration

mistakes—such asked

learned

Thetis

our

and reduce

discussed

the sort found

task at hand.

Another the stress

Students

version

and requires

Thetis

would

faster

and

environment

performance.

Often,

Thetis

of the

times when they were doing the final fine-tuning programs. This practice constituted a valuable software

efficiency

We also intend

given

we believe

learning

the system

technical

in the fall

Thetis



programs

next

improvements

the error

better

continuing

primary

implementation

of error

PLANS

in the last year,

we set out to accomplish

to improve

increase

faster

The

however,

Our

Stanford

when

in CS 1/CS2.

are,

and expect

The

trouble

the goals

in better

in Thetis.

FUTURE

a significantly

ways.

C.

were

students

more

a

their

in CSI 06A.

the usefulness

of Thetis

said the same of THINK

y have than

having

Thetis

concerns

80 percent

typical]

computing

using

significant

messages

in CS 106X

they reported

most

percent

students

background C than

THINK

messages.

work

in CS 106A,

using

We

80.8%

19.2%

easilv ?

the fact

much

fulfills

that it provides

understand

]rogramm

AND

On the basis of our experien~e

I

1

ideas sink

by demonstrations

CONCLUSIONS

6.

30.8%

is that new

An

and

update

March

on

Halpern,

1993.

[Schorsch95] Tom Schorsch, “CAP: An automated assessment tool to check Pascal programs for syntax,

Although claim, our

and style

304

errors,”

SIGCSE

Bulletinj

March

in the

1995.

Richard

March

Bryan

assistants

1995.

selflogic.