

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Cs 61b lab 1, which focuses on editing and running java programs using emacs and accessing online java documentation. Students will learn to compile and fix syntax errors, run the program, and use emacs help facilities to sort a list of names. They will also change their account password. The lab is a team assignment with two-person teams.
Typology: Lab Reports
1 / 2
This page cannot be seen from the preview
Don't miss anything!


CS 61B Lab 1September 5-6, 2006 Goal:^ This^ lab
will^ give you practice editing and running Java programs, using^ Emacs,^
and^ accessing online Java documentation. There^ are^ several
things you will need to have your TA check off so you can get credit^ for^ this
lab.^ You can have them checked off all at once when you are finished,^ but
donât^ wait until the last minute--another lab may start as soon as^ yours^ ends,
so^ ask^ to be checked off when there is still plenty of time. Checkoffs^ will
not^ be^ done outside of lab. PART^ I:^ Getting
started^ (1 point) ---------------------------------1.^ If^ you^ are
officially registered for a lab--not on the waiting list--you must^ attend^ that
lab.^ Otherwise, find a lab that has space.
2.^ Pick^ up^ an
account^ form from your Lab TA.
3.^ Login^ to^ a
computer^ using the temporary password on your account form. Answer^ the^ questions
the computer asks.
Use whatever the registrar uses for
your^ given^ name
and^ surname.
Your registered name is used for grading. If^ you^ mess^ up
and^ need^ to correct your answers, run "register" from the Unix prompt.4.^ Warning:^
do^ not,^ at^ this time or any point in the future, delete the .login,^ .cshrc,
and^ .emacs files in your directory.
If you would like to
customize^ your
account,^ do so by adding new commands to the end of these files, not^ replacing
the^ files.
5.^ The^ rest^ of
this^ lab^ is a TEAM assignment, with two-person teams.
Introduce
yourself^ to^ the
people^ to your left and right (there is one point associated with^ knowing^
the^ names^ of two other people in the class).
Choose a partner.
If^ youâre^ the
odd^ person out in the lab, go ahead and begin, but if someone new arrives,^ partner
up^ with them and help them catch up.
PART II: Compile-time errors
(1^ point) --------------------------------------After logging in, you and your
partner^ may^
find^ it^ easier
to^ work^ on^
one
computer for a while.
However,^ you
should^ each^
be^ separately
capable^ of
demonstrating your knowledge
of^ the^ lab^ to
the^ TA^ when
itâs^ time^ to
check^ off.
by^ typing: cp $master/lab/lab1/*
IMPORTANT:^ You must type the
space^ and^ the
period^ for^ this
to^ work!
(Note:^ master is a shell variable
that^ refers^
to^ the^ cs61b
home^ directory,
which is /home/ff/cs61b.
Typing^ $master
evaluates^ that
variable.^ If
the^ cp
command above doesnât work,
it^ probably
means^ that^ something
is^ messed^ up
in
your login scripts, so talk
to^ your^ TA^
or^ lab^ assistant.)
into^ Emacs^ using
C-x^ C-f.^ "C-x"
is^ read
"control x," and is typed by
holding^ down
the^ control
(Ctrl)^ key^ while
typing
"x".^ You may need to type the
full^ pathname
lab1/Names.java,
then^ hit^ Enter.
Names.java is a simple program
for^ performing
various^ string
operations^ on
a
name.^ It almost works, but
you^ need^ to
make^ some^ changes
so^ that^ it^
compiles
and runs correctly.5. Compile the program within
Emacs^ using: C-x C-eThis will build a command line
to^ run^ the^ Java
compiler:
javac -g"javac" is the name of the Java
compiler.^
"-g"^ is^ a^ switch
to^ tell^ the
compiler to generate the information
the^ debugger
will^ need.^
You^ need^ to
finish the command line by supplying
the^ name^ of
the^ file^ to^
be^ compiled:
javac -g Names.javaYou may instead type this command
in^ an^ xterm,
assuming^ youâre
in^ (your^ copy
of) the lab1 directory.6. You will find that javac
cannot^ compile
the^ program.
The^ code^ contains
two
syntax errors which you are
quite^ likely
to^ make^ when
you^ will^ write
programs. Use the control sequenceC-x âto jump directly to errors found
by^ javac.^
(Be^ sure^ to^ use
the^ single^ opening
quote, not the apostrophe.)
Figure^ out
whatâs^ wrong,
correct^ the^
errors,^ save
the file using "C-x C-s", and
compile^ the^
code.
PART^ III:^ Run-time
error (1 point) ----------------------------------1.^ Once^ javac
is^ able^ to compile the code, it will create a file called Names.class^ in
the^ same^ directory.
You can run this program using the Java interpreter.^
In^ a^ shell (an xterm or an Emacs buffer called shell), typejava Names Java^ automatically
appends the ".class" file extension on Names.class.
If you
accidentally^
type^ "java^ Names.class", Java will look for a file called "Names.class.class".The^ program^ has
an^ error.^ How can you tell there is something wrong?
This
type^ of^ error,
which^ occurs at run-time, tends to be significantly more difficult^ to^
correct^ than compile-time errors.
(Itâs still somewhat easier
than^ discovering
an^ error in which the program appears to finish without problems,^ but
is^ doing^ some computation incorrectly.)
The error message may be
hard^ to^ read^
at^ first,^ but it will allow you to answer certain questions:
What
is^ the^ method
(i.e.,^ procedure) that generated an error?
What is the line
number^ within
the^ file^ Names.java? The^ error^ is^
in^ one^ of^ the methods in the String class, which is a standard Java^ library.
Your^ textbooks contain some documentation of the Java library, but^ the^ best^
source^ is^ the online documentation.
To find this, start Firefox
by^ typingfirefox
Double-click^
on^ the^ URL^ window and type the URL for the class Web page.http://www.cs.berkeley.edu/Ëjrs/61b From^ there,^ you
can^ find a pointer to the "The Java 2 standard libraries API." There^ are^ two
libraries^ that you will be using early in the semester--the java.lang^ package
and^ the java.io package.
Documentation on String and other
standard^ data
types^ is^ found in java.lang, so go there and find the String class.^ There
is^ a^ lot^ of information, not all of which will make sense right now,^ but^ you^
should^ be^ able to find a description of the problematic String method.^ Be^ prepared
to^ show your TA or lab assistant how you found this information^ and
how^ you^ figured out from it what was wrong with the program. When^ you^ think
you^ have^ found the error, correct it, save the file, recompile it,^ and^ execute
it^ to^ see if the problem is solved. Aside:^ You^ may
think^ that the file produced by javac is named Names.class because^ the^ input
file^ is named Names.java.
Not so--the name of the .class
file^ is^ based
on^ the^ class name IN Names.java.
To experiment with this, change
the^ line^ "class
Names^ {" to "class NAMES {" and recompile using javac.
What
new^ file^ is^ created?
PART IV: Emacs help (1 point)-----------------------------1. Load the file "roster.txt"
in^ Emacs.^ You
will^ see^ an^
unsorted^ list
of
names, with each line in the
form^ <surname,
given^ names>.
You should use the help facilities
of^ Emacs^ (apropos
and^ info)^ to
find^ out^ how
to sort all these names by last
name.^ Then
sort^ the^ lines
of^ the^ file.
If^ you
are unfamiliar with the help
facilities^ type
"C-h^ ?",^ and
Emacs^ will^
guide^ you
through them.Save the result using "C-x C-s".If you have the course reader,
take^ a^ few^ minutes
to^ look^ through
it^ now^ so^ you
know exactly what information
you^ can^ look
up^ in^ it.^
Note^ that^ the
Emacs^ Quick
Reference Guide is in the very
front^ of^ the
reader.^ It^
will^ be^ handy
to^ keep
your reader by you whenever
youâre^ in^ the
lab.
PART V: Change your password
(no^ points) ----------------------------------------Change your accountâs password
using^ the^ "passwd"
command.^ Note
that^ it^ may
take a while for your password
change^ to^ be
stored^ in^ the
system^ files,
so^ you
may need to use your old password
if^ you^ login
in^ the^ interim.
Check-off---------When youâre done, show your
TA^ or^ lab^ assistant
your^ work,^
and^ explain^ how
you
accessed the Java String documentation
and^ found^ the
bug.
1 point:^ Show that your Names
program^ works. 1 point:^ Briefly explain how
you^ discovered
and^ fixed^ the
bugs,^ and^ show
how
you accessed the
Java^ String
documentation.
1 point:^ Show your sorted
roster.txt. 1 point:^ Tell the TA the names
of^ the^ students
next^ to^ you.
If you are inexperienced with
either^ Unix^
or^ Emacs,^ you
are^ strongly
encouraged
to attend one of the help sessions
on^ these^ topics
held^ by^ the^
Computer^ Science
Undergraduate Associaton (CSUA).