Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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