Transcript Slides

Bridging the Gap between the
Undergraduate and Graduate Experience
in Computer Systems Studies
Lori Carter and Scott Rae
Point Loma Nazarene University
June 8, 2003
A Special Topics Class
Designed to:
•Introduce students to the “grad school”
experience
•Not just more of the same
•Producers, not consumers
•Better equip students for success in industry
and academia
•Introduce technical communication skills
•Introduce students to research
•Teach students how to learn
Class Organization
Final Project :
•Java Applet Simulation of some feature of
Architecture or Operating Systems
•Used to instruct lower division students
Providing a target for:
•learning
•reading
•writing
•presenting
•research
Class Organization
Phase 1 (individual):
Java, DOS labs
30%
Technical Paper Summaries 15%
Paper/Java/DOS Quizzes 15%
Project Proposal
40%
Phase 2 (group if desired):
Powerpoint presentation 20%
Progress Meetings
30%
Final project (paper, demo) 50%
Class Organization
Phase 1 (individual):
Java, DOS labs
30%
Technical Paper Summaries 15%
Paper/Java/DOS Quizzes 15%
Project Proposal
40%
Phase 2 (group if desired):
Powerpoint presentation 20%
Progress Meetings
30%
Final project (paper, demo) 50%
Outline
•
•
•
•
•
•
•
•
Introduction
Motivation
Class Organization
“Learning to Learn” Using Java Applets
Technical Reading, Writing and Presenting
Weekly Progress Meetings
Some Examples
Conclusions
Learning to Learn
A practical guide for programmers
with hundreds of complete, working examples and dozens of trails-groups of lessons on a particular subject.
Last update: May 19, 2003
Trail types: Basics | GUIs | Specialized | Online only
Trails Covering the Basics:
Your First Cup of Java: Detailed instructions to help you run your
first program: UNIX, Microsoft Windows, Mac
Getting Started
Learning the Java Language
Essential Java Classes
User Interfaces that Swing: A Quick Start Guide
Writing Applets
Sample Tutorial
Create a Source File.
To create a source file, you have two options:
•You can save the file HelloWorldApp.java on your computer and avoid
a lot of typing. Then, you can go straight to step b.
•Or, you can follow these longer instructions:
1. Start NotePad. In a new document, type in the following code:
/ **
* The HelloWorldApp class implements an application that
* displays "Hello World!" to the standard output.
*/
public class HelloWorldApp {
public static void main(String[] args) {
// Display "Hello World!"
System.out.println("Hello World!");
}
}
Be Careful When You Type
Type all code, commands, and file names exactly as shown. The Java compiler
and interpreter are case-sensitive, so you must capitalize consistently.
HelloWorldApp helloworldapp
Sample Tutorial
What Is a Thread?
A thread--sometimes called an execution context or a lightweight process--is a single
sequential flow of control within a program. You use threads to isolate tasks. When
you run one of these sorting applets, it creates a thread that performs the sort
operation. Each thread is a sequential flow of control within the same program (the
browser). Each sort operation runs independently from the others, but at the same
time.
Using the Timer and TimerTask Classes
Thread programming can be tricky. Whenever possible, you should use high-level thread
API such as the java.util.Timer class introduced in version 1.3 of the Java platform.
Timer and its companion class, TimerTask, are useful when your program must
perform a task repeatedly or after a delay.
Customizing a Thread's run Method
Basic support for threads in all versions of the Java platform is in the java.lang.Thread
class. It provides a thread API and all the generic behavior for threads. These
behaviors include starting, sleeping, running, yielding, and having a priority. To
implement a thread using the Thread class, you need to provide it with a run
method that performs the thread’s task.
Applet Modification Lab
Find the code for the DateTime applet at:
http://www.kevinboone.com/java_small_progsindex.html
Run the applet ( you will have to create your own html
file )
Modify the applet so it displays seconds in addition to
hours and minutes, and updates the time when you
click on the applet. You will need to use what you
learned about interfaces in the ClickMe lab.
_________ Dr. Carter saw my modified applet run.
Turing Machine Applet
Technical Reading,
Writing and
Presenting
Technical Papers
Technical Paper Analysis (Group Work)
Most technical papers (including the 3 you were given) have at least the
following sections (not necessarily using these names):
Abstract
Introduction
Background
Methodology
Results
For each of the 3 papers, provide the actual names for these sections:
WSClock
Victim Buffers
First-Fit
Abstract
Introduction
Background
Methodology
Results
•What additional sections do you find in the various papers?
•For the major sections mentioned previously, what does the purpose appear
to be for each section:
More…
In addition, good technical papers make use of figures.
•What is the purpose of the figures in each of the papers?
•How helpful are the captions? (this varies from paper to paper)
•How are the figures referred to in the text?
How would you describe the titles for each of the papers…clever…or
descriptive…or?
Examine the text.
•What tense is used?
•What person is used?
•What kinds of words are used?
•How are italics and bold used?
•How is the documentation (bibliographical entries) done? Are there actual
quotes used?
•How are the results presented? Text? Tables? Graphs? What do you
think is the best presentation?
How to Read a Technical Paper
Student Experience
•Summarize paper
•purpose
•main points
•conclusions
•Do conclusions follow
from background and
data?
•Strengths/ Weaknesses
•Quiz
•Ability to take notes
Project Proposal
Abstract
•As per examples in technical papers reviewed (approx ¼ page)
Introduction
•Introduce the feature you intend to simulate. (¾ - 1 ¼ pages)
Background
•Provide information on why the computer science community is interested in
researching this feature. (¾ - 1 ¼ pages)
Methodology
•Talk about the platform (Java) you will use to create your simulation.
•Talk about the input/output of your simulation.
•Figures with captions detailing interface
• Discuss any measurements you will make, and how they will be calculated
Bibliography
•Provide a bibliography as you have seen in the sample papers.
•References to this bibliography should be made throughout the paper.
•Your bibliography should include at least 1 text and 2 technical papers.
Presentation
Student Checklist
frequent eye contact
spoke for expected
time length
Appropriate visual aids
readable text
grammar and spelling
Well-formatted slides
face audience and
speak slowly
Presentation
Weekly Progress
Meetings
Weekly Progress Meetings
Agenda
•Milestones
•Demonstrate completed items
•Discuss problems, make suggestions
Rationale
•Encourages preparation
•Encourages sustained work
•Promotes integrity
Weekly Progress Meetings
Agenda
•Milestones
•Demonstrate completed items
•Discuss problems, make suggestions
Rationale
•Encourages preparation
•Encourages sustained work
•Promotes integrity
40% of Project Grade
Final Project
Examples
Demo and Final Paper
CPU scheduling
•How each algorithm works
•optimal for turnaround and waiting
•optimal quantum size
Cache Associativity
•valid bit, tag
•spatial locality
•cacheline placement
•seek time, hit rate
Power Dissipation
•gate
behavior
•power
dissipation
•circuit
layout
Conclusions
Conclusions
Student response
•Increased confidence
in ability to learn
independently
4.5
average component ranking
•Initial Frustration –
Ultimate Satisfaction
5
4
3.5
3
2.5
2
1.5
1
0.5
0
•Improved writing skills
Java Tutorials
Applet projects
DOS/Java
Presentations
Tech Paper
Activities
Student
Presentations
•50% of students expressed increased desire to explore
the possibility of graduate school
Other Considerations:
Work for professor
Scaling to larger classes
Paper writing