thetis: an ansi c programming environment designed for introductory

advertisement
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.
Download