Send a picture of yourself (face shot if possible)
to pubs@cs if youre a cs major (ugrad
or grad)
otherwise to vernon@cs.wisc.edu
Goal: friendly, cooperative class
Introduce
yourself to someone else in the class,
learn something interesting, then introduce to everyone
else
Course
Web Pages lots of info
contact info ; check test email from class list;
set up forwarding; Unix
tutorials (notices near elevators)
texts useful, but not required, use as a reference
tutorials, JDB Tutorial,
Java links
schedule of topics & notes
notes may be
updated ; CHECK DATES
print & read for Thursday: Intro, Lists
assignments p1 due Feb 1,
pair programming advantages
exams, criteria for grading programming assignments
(testing)
course grades:
programs, homeworks, exams
extra
credit: borderline cases, letters of
recommendation, fun
mechanics course accounts, academic conduct
What will you learn?
Goal: write good programs quickly
1) new programming skills
e.g., thorough testing, new
classes, exceptions, iterators, recursion
2) repertoire of data structures
know what smart people have developed previously
e.g., list, stack, queue,
heap, tree, graph,
3) repertoire of algorithms
- common
operations on data structures (insert into heap)
- searching,
sorting
e.g., in the future, if you need to
write a complex program, you
can
decide whether you need a stack, queue, heap,
What
makes a program good?
groups of
3-4, come up with list of good & bad characteristics
discuss, make
sure everyone contributes
it works (i.e., it satisfies the specification &
it doesnt have bugs)
· satisfying the specification is crucial in cs367
it is easy to
understand, debug, modify & extend, reuse
· compact modular code, concise top-level descriptions
· documentation, good comments (develop comments w code)
it is efficient
efficient use of memory, efficient running time
efficient to
create program reuse previously developed code
user interface
clear prompts & messages,
catches all errors & handles them gracefully
Efficiency
especially analysis of how efficient an algorithm is
will be an important theme of CS 367
Example: searching
Sequential search of unsorted list,
List of 7 names,
14 names, N names
Avg running time:
Max running time:
sequential search of sorted list
Binary search
In
this course: consider
best case running
time,
average running
time,
worst case
running time,
how does the
running time change when the size of the data is doubled