Interactive Programming In Java

Similar documents
Syllabus & Curriculum for Certificate Course in Java. CALL: , for Queries

A Quick Tour p. 1 Getting Started p. 1 Variables p. 3 Comments in Code p. 6 Named Constants p. 6 Unicode Characters p. 8 Flow of Control p.

SELF-STUDY. Glossary

1 OBJECT-ORIENTED PROGRAMMING 1

Review sheet for Final Exam (List of objectives for this course)

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

Animate Objects. Chapter Overview. Objectives of this Chapter. Animate Objects. Interactive Programming In Java Page 1

Java for Programmers Course (equivalent to SL 275) 36 Contact Hours

15CS45 : OBJECT ORIENTED CONCEPTS

Software Development & Education Center. Java Platform, Standard Edition 7 (JSE 7)

Certification In Java Language Course Course Content

ощ 'ршорвшэш! цвн-эориэу ощ 'sajbpossv # PIPG DUJ 'ssjmoossv ^ PIPG pipa w н OX ЛЮН VAV

Foundations of object orientation

Chapter 4. Specifying Behavior: Interfaces

Contents. iii Copyright 1998 Sun Microsystems, Inc. All Rights Reserved. Enterprise Services August 1998, Revision B

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

Object Oriented Programming with Java. Unit-1

Supporting Materials

Java Fundamentals p. 1 The Origins of Java p. 2 How Java Relates to C and C++ p. 3 How Java Relates to C# p. 4 Java's Contribution to the Internet p.

Introduction to Programming Using Java (98-388)

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Casting -Allows a narrowing assignment by asking the Java compiler to "trust us"

Objects First with Java

COP 3330 Final Exam Review

Mobile MOUSe JAVA2 FOR PROGRAMMERS ONLINE COURSE OUTLINE

Page 1

F1 A Java program. Ch 1 in PPIJ. Introduction to the course. The computer and its workings The algorithm concept

PESIT Bangalore South Campus

5/23/2015. Core Java Syllabus. VikRam ShaRma

104. Intermediate Java Programming

DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR (ODD SEM)

SYLLABUS JAVA COURSE DETAILS. DURATION: 60 Hours. With Live Hands-on Sessions J P I N F O T E C H

Merge Sort Quicksort 9 Abstract Windowing Toolkit & Swing Abstract Windowing Toolkit (AWT) vs. Swing AWT GUI Components Layout Managers Swing GUI

Standard. Number of Correlations

Java 8 Programming for OO Experienced Developers

Programming II (CS300)

CS Internet programming Unit- I Part - A 1 Define Java. 2. What is a Class? 3. What is an Object? 4. What is an Instance?

DOWNLOAD PDF CORE JAVA APTITUDE QUESTIONS AND ANSWERS

CONTENTS. Chapter 1 Getting Started with Java SE 6 1. Chapter 2 Exploring Variables, Data Types, Operators and Arrays 13

WA1278 Introduction to Java Using Eclipse

Interlude: Expressions and Statements

Core Java SYLLABUS COVERAGE SYLLABUS IN DETAILS

Client-server interaction patterns

JAVA CONCEPTS Early Objects

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

Java Programming Course Overview. Duration: 35 hours. Price: $900

E Oracle 10g Java Bootcamp I v1

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

Reviewing for the Midterm Covers chapters 1 to 5, 7 to 9. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Pace University. Fundamental Concepts of CS121 1

Contents. Figures. Tables. Examples. Foreword. Preface. 1 Basics of Java Programming 1. xix. xxi. xxiii. xxvii. xxix

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Murach s Beginning Java with Eclipse

Table of Contents. Preface... xxi

Fast Track to Core Java 8 Programming for OO Developers (TT2101-J8) Day(s): 3. Course Code: GK1965. Overview

Java Training JAVA. Introduction of Java

The Sun s Java Certification and its Possible Role in the Joint Teaching Material

GUJARAT TECHNOLOGICAL UNIVERSITY

Oracle 10g: Java Programming


Java Programming. Price $ (inc GST)

"Charting the Course... Java Programming Language. Course Summary

Big Java Late Objects

Programming II (CS300)

Internet Application Developer

College Board. AP CS A Labs Magpie, Elevens, and Picture Lab. New York: College Entrance Examination Board, 2013.


IT6503 WEB PROGRAMMING. Unit-I

Application Development in JAVA. Data Types, Variable, Comments & Operators. Part I: Core Java (J2SE) Getting Started

CS 11 java track: lecture 3

1 Shyam sir JAVA Notes

VALLIAMMAI ENGINEERING COLLEGE

[CHAPTER] 1 INTRODUCTION 1

Java for Non Majors. Final Study Guide. April 26, You will have an opportunity to earn 20 extra credit points.

Interlude: A Community of Interacting Entities

CHAPTER 1: A GENERAL INTRODUCTION TO PROGRAMMING 1

CSE 501N Final Fall Points Possible

Govt. of Karnataka, Department of Technical Education Diploma in Information Science & Engineering. Fifth Semester

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

Objective Questions. BCA Part III Paper XIX (Java Programming) page 1 of 5

Al al-bayt University Prince Hussein Bin Abdullah College for Information Technology Computer Science Department

C ONTENTS PART I FUNDAMENTALS OF PROGRAMMING 1. and Java 3. Chapter 1 Introduction to Computers, Programs,

Java SE7 Fundamentals

About Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python

Graphical Interface and Application (I3305) Semester: 1 Academic Year: 2017/2018 Dr Antoun Yaacoub

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

Object-Oriented Programming and Data Structures

CS 6456 OBJCET ORIENTED PROGRAMMING IV SEMESTER/EEE

Intro: Your brain on Java Who is this book for? What your brain is thinking. Bend your brain into submission What you need for this book

Peter Sestoft. Java Precisely. Third Edition. The MIT Press Cambridge, Massachusetts London, England

Core Java Syllabus. Pre-requisite / Target Audience: C language skills (Good to Have)

Index. Animation. factors, 186. Abstract Window Toolkit (AWT), 111. frame rate, 185. Access modifiers. multiple objects. package-private, 27

JVA-103. Java Programming

Microsoft Visual C# Step by Step. John Sharp

Index. Index. More information. block statements 66 y 107 Boolean 107 break 55, 68 built-in types 107

Introduction... xv SECTION 1: DEVELOPING DESKTOP APPLICATIONS USING JAVA Chapter 1: Getting Started with Java... 1

Java for Non Majors Spring 2018

CS Exam 1 Review Suggestions

Table of Contents. Chapter 1 Getting Started with Java SE 7 1. Chapter 2 Exploring Class Members in Java 15. iii. Introduction of Java SE 7...

Get Unique study materials from

Transcription:

IPIJ: Chapter Outlines Page 1 Front Matter I. Table of Contents 2. Preface Introduction to Interactive Programming by Lynn Andrea Stein A Rethinking CS101 Project Interactive Programming In Java Chapter Outlines Lynn Andrea Stein Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Cambridge, MA 02139 USA ipij@ai.mit.edu http://www.ai.mit.edu/projects/cs101/ 1. Why Interactive Programming? 2. Ramifications for Later Curriculum 3. A Short History of the Rethinking CS101 Project 1. Research Roots 2. Classroom Experience 4. How to Use This Book 1. Part By Part 2. Pedagogical Elements and Supplementary Materials 5. About the Author 6. Acknowledgements 3. List of Figures 4. List of Tables 5. List of Sidebars 1. Java Sidebars 2. Style Sidebars Part 1: Introduction To Interactive Program Design Chapter 1: Introduction to Program Design

IPIJ: Chapter Outlines Page 2 1. Computers and Programs 2. Thinking Like a Programmer 3. Programming Primitives, Briefly 4. Ongoing Computational Activity 5. Coordinating a Computational Community 1. What is the Desired Behavior of the Program? 2. Who are the Members of the Community? 3. What Goes Inside Each One? 4. How Do They Interact? 6. The Development Cycle 7. The Interactive Control Loop Chapter 2: The Programming Process 1. The Problem 1. Problem Requirements 1. Assumptions 2. Promises/Guarantees 2. The Community Around You 1. Program Libraries 2. Users 3. Physical Environment 4. Understand their interfaces (and assumptions) 3. Requirements are a Moving Target 1. Software Lifecycle 2. Documenting your Design 2. Designing a solution 1. Who are the members? 2. How do they Interact

IPIJ: Chapter Outlines Page 3 1. What Promises? 2. What Assumptions? 3. Who does what? 3. What goes inside? 4. Nouns and Verbs 5. Acting it out 3. The process 1. Keep it simple 2. Keep it working 3. You'll still have to debug (debugging is normal) 1. When it's not working 2. make state manifest 3. Explain it to someone 4. Act it out 4. Documentation Interlude: A Community of Interacting Entities Overview Objectives of this Interlude 1. Introduction: Word Games 2. Designing a Community 1. A Uniform Community of Transformers 2. The User and the System 3. What Goes Inside 3. Building a Transformer 1. Transformer Examples 2. Strings 1. String Concatenation 2. String Methods 3. Rules and Methods 4. Classes and Instances 5. Fields and Customized Parts 6. Generality of the Approach

IPIJ: Chapter Outlines Page 4 4. Summary Suggested Sidebar: Selected String Methods Part 2: Entities and Interactions Chapter 3: Things, Types, and Names 1. Things 1. Primitive Things and Literals 1. Numbers 2. Characters and Strings 3. Booleans 2. Objects 2. Naming Things 1. Referring to Things 2. Assignment 3. Types 1. Declarations and The type-of-thing name-of-thing Rule 2. Definition = Declaration + Assignment 3. Primitive Types 4. Object Types 4. Types of Names 1. Shoebox Names 2. Label Names Sidebar: Java Naming Syntax and Conventions Sidebar: Java Primitive Types Chapter 4: Specifying Behavior: Interfaces

IPIJ: Chapter Outlines Page 5 1. Interfaces are Contracts 1. Generalized Interfaces and Java Interfaces 2. A Java Interface Example 2. Method Signatures 1. Name 2. Parameters and Parameter Types 3. Return Type 4. Putting It All Together: Abstract Method Declaration Syntax 5. What a Signature Doesn't Say 3. Interface Declaration 1. Syntax 2. Method Footprints and Unique Names 3. Interfaces are Types: Behavior Promises 4. Interfaces are Not Implementations Style Sidebar: Method Documentation Style Sidebar: Interface Documentation See also Java Chart on Interfaces. Chapter 5: Expressions: Doing Things With Things 1. Simple Expressions 1. Literals 2. Names 2. Method Invocation 3. Combining Expressions 4. Assignments and Side-Effecting Expressions 5. Other Expressions that Use Objects 1. Field Access 2. Instance Creation 3. Type Membership

IPIJ: Chapter Outlines Page 6 6. Complex Expressions on Primitive Types: Operations 1. Arithmetic Operator Expressions 2. Explicit Cast Expressions 3. Comparator Expressions 4. Logical Operator Expressions 7. Parenthetical Expressions and Precedence Style Sidebar: Don't Embed Side-Effecting Expressions Sidebar: Java Operators Sidebar: Arithmetic Expressions Sidebar: Coercion and Casting Sidebar: Java Operator Precedence Sidebar: Other Assignment Operators See also Java Chart on Expressions Chapter 6: Statements and Rules 1. Statements and Instruction-Followers 2. Simple Statements 3. Declarations and Definitions 4. Sequence Statements 5. Flow of Control 1. Simple Conditionals 2. Simple Loops 6. Statements and Rules 1. Method Invocation Execution Sequence 2. Return Style Sidebar: Formatting Declaration Statements

IPIJ: Chapter Outlines Page 7 Style Sidebar: Formatting Blocks Style Sidebar: Using Booleans Style Sidebar: Documentation See also Java Chart on Statements Interlude: Entities and Aggregates/Rules and Roles Overview Objectives of this Interlude 1. The Problem 2. Representation 3. Interacting with the Rules 4. Paying Attention to the World 5. Fancy Dot Tricks 6. Remembering State 1. Fields 2. Fields vs. Variables 7. Summary Suggested Chapter 7: Building New Things: Classes and Objects 1. Classes are Object Factories 1. Classes and Instances 2. Recipes Don't Taste Good 3. Classes are Types 2. Class Declaration 1. Classes and Interfaces 1. implements and type inclusion 2. contract vs. implementation 3. Data Members, or Fields 1. Fields are not Variables 1. Hotel Rooms and Storage Rental 2. Whose Data Member is it?

IPIJ: Chapter Outlines Page 8 3. Scoping of Fields 4. Comparison of Kinds of Names 2. Static Members 4. Methods 1. Method Declaration 2. Method Body and Behavior 3. A Method ALWAYS Belongs to an Object 1. this. 2. Static Methods 4. Method Overloading 5. Constructors 1. Constructors are Not Methods 2. Syntax 3. Execution Sequence 4. Multiple Constructors and the Implicit No-Arg Constructor 5. Constructor Functions Style Sidebar: Class Declaration Sidebar: Java Types and Default Initialization Table: Comparison of Kinds of Names Style Sidebar: Field Documentation Style Sidebar: Method Implementation Documentation Sidebar: Method Invocation and Execution Style Sidebar: Constructor Documentation Style Sidebar: Capitalization Conventions See also Java Charts on Classes, Methods, and Fields. Part 3: Refining Designs Chapter 8: Designing with Objects 1. Object-Oriented Design

IPIJ: Chapter Outlines Page 9 1. Objects are Nouns 2. Methods are Verbs 3. Interfaces are Adjectives 4. Classes are Object Factories 5. Some Counter Code (An Example) 6. Public and Private 2. Kinds of Objects 1. Data Repostories 2. Resource Libraries 3. Traditional Objects 3. Types and Objects 1. Declared Types and Actual Types 2. Use Interface Types 3. Use Contained Objects to Implement Behavior 4. The Power of Interfaces Style Sidebar: Class and Member Documentation Sidebar: Final Sidebar: class Math Collections: An Extended Example Overview Objectives 1. Chapter 9: Animate Objects 1. Animate Objects 2. Animacies are Execution Sequences 3. Being Animate-able 1. Implementing Animate

IPIJ: Chapter Outlines Page 10 2. AnimatorThread 3. Creating the AnimatorThread in the Constructor 4. A Generic AnimateObject 4. More Details 1. AnimatorThread Details 2. Delayed Start and the init() Trick 3. Threads and Runnables 5. Where do Threads come from? 1. Starting a Program 2. Why Constructors Need to Return Sidebar: class AnimatorThread Sidebar: Thread Methods Sidebar: class Main Style Sidebar: Using main() Chapter 10: Reusing Implementation: Inheritance 1. Derived Factories 1. Simple Inheritance 2. java.lang.object 3. Superclass Membership 2. Overriding 1. super. 2. The Outside-In Rule 3. Problems with Private 3. Constructors are Recipes 1. this() 2. super() 3. Implicit super() 4. Interface Inheritance 5. Relationships Between Types

IPIJ: Chapter Outlines Page 11 The class Object Style Sidebar: Explicit Use of this. and super() Sidebar: Abstract Classes 1. Interlude: A System of Animate Objects Objectives Overview Suggested Chapter 11: When Things Go Wrong: Exceptions 1. Exceptional Events 1. When Things Go Wrong 2. Expecting the Unexpected 3. What's Important to Record 2. Throwing an Exception 3. Catching an Exception 4. Throw vs. Return 5. Designing Good Test Cases Sidebar: Throw Statements and Throws Clauses Sidebar: Try Statement Syntax Sidebar: Exceptions, Errors, and RuntimeExceptions 1. Part 4: Refining Interactions Chapter 12: Dealing with Difference: Dispatch

IPIJ: Chapter Outlines Page 12 1. Conditional Behavior 2. If and else 1. Basic Form 2. Else 3. Cascaded Ifs 4. Many Alternatives 3. Limited Options: Switch 1. Constant Values 1. Symbolic Constants 2. Using Constants 2. Syntax 1. Basic Form 2. The Default Case 3. Variations 4. Switch Statement Pros and Cons 4. Arrays 1. What is an Array? 1. Array Declaration 2. Array Construction 3. Array Elements 2. Manipulating Arrays 1. Stepping Through an Array Using a For Statement 2. Using Arrays for Dispatch 5. When to Use Which Construct Sidebar: if Statement Syntax Sidebar: final Style Sidebar: Use Named Constants Sidebar: break and continue statements Sidebar: switch Statement Syntax Sidebar: Array Syntax Sidebar: for Statement Syntax 1. Chapter 13: Encapsulation

IPIJ: Chapter Outlines Page 13 1. Design, Abstraction, and Encapsulation 2. Procedural Abstraction 1. The Description Rule of Thumb 2. The Length Rule of Thumb 3. The Repetition Rule of Thumb 4. An Example 5. The Benefits of Abstraction 3. Protecting Internal Structure 1. private 2. Packages 1. Packages and Names 2. Packages and Visibility 3. Inheritance 4. Clever Use of Interfaces 4. Inner Classes 1. Static Classes 2. Member Classes 3. Local Classes and Anonymous Classes 5. Style Sidebar: Procedural Abstraction Sidebar: Package Naming Summary Sidebar: Package Visibility Summary Sidebar: Inner Classes 1. Chapter 14: Intelligent Objects and Implicit Dispatch 1. Procedural Encapsulation and Object Encapsulation 2. From Dispatch to Objects 1. A Straightforward Dispatch

IPIJ: Chapter Outlines Page 14 2. Procedural Encapsulation 3. Variations 4. Pushing Methods Into Objects 5. What Happens to the Central Loop? 3. The Use of Interfaces 4. Runnables as First Class Procedures 5. Callbacks 6. Recursion 1. Structural Recursion 1. A Recursive Class Definition 2. Methods and Recursive Structure 3. The Power of Recursive Structure 2. Functional Recursion Chapter 15: Event-Driven Programming 1. Control Loops and Handler Methods 1. Dispatch Revisited 2. Simple Event Handling 1. A Handler Interface 2. An Unrealistic Dispatcher 3. Sharing the Interface 3. Real Event-Driven Programming 1. Previous Examples 2. The Idea of an Event Queue 3. Properties of Event Queues 4. Graphical User Interfaces: An Extended Example 1. java.awt 2. Components 3. Graphics 4. The Story of paint 5. Events and Polymorphism

IPIJ: Chapter Outlines Page 15 See also the AWT Quick Reference. Interlude: Achieving Customized Behavior Objectives Overview Suggested Chapter 16: Event Delegation (and AWT) 1. Model/View: Separating GUI Behavior from Application Behavior 1. The Event Queue, Revisited 2. Reading What the User Types: An Example 1. Setting up a User Interaction 2. Listening for the Event 3. Registering Listeners 4. Recap 3. Specialized Event Objects 4. Listeners and Adapters: A Pragmatic Detail 5. Inner Class Niceties Sidebar: cs101.awt.defaultframe 1. See also the AWT Quick Reference. Interlude: An AWT Application Objectives Overview

IPIJ: Chapter Outlines Page 16 Suggested Part 5: Systems of Objects Chapter 17: Models of Communities 1. State Machines 2. State Spaces 3. Organizational Behavior 4. Network Models 5. Patterns 6. UML 7. Metrics 1. Static Complexity 2. Throughput and Latency Sidebar: FSM Rules 1. Chapter 18: Interfaces and Protocols: Gluing Things Together 1. Pacing 2. Procedure Calls 3. Callbacks 4. Explicit Communication Channel Objects 5. Protocols Chapter 19: Communication Patterns

IPIJ: Chapter Outlines Page 17 1. What is a Client-Server Interaction? 2. Implementing Client-Server Interactions 1. Client Pull 2. Server Push 3. The Nature of Duals 4. Pushing and Pulling Together 1. Passive Repository 2. Active Constraint Interlude: Combining Events and Interactive Control Loops Objectives Overview Suggested Chapter 20: Synchronization 1. Reads and Writes 2. An Example of Conflict 3. Synchronization 4. Java synchronized 1. methods 2. (blocks) 5. What synchronization buys you 6. Safety rules 7. Deadlock 8. Obscure Details

IPIJ: Chapter Outlines Page 18 Chapter 21: Network Programming 1. A Readable Writeable Channel 1. Tin Can Telephones 2. Streams 2. Using A Channel 1. For Writing 1. Flushing Out the Stream 2. A Scribe Example 2. For Reading 1. Reading and Blocking 2. A Lector Example 3. Encapsulating Communications 3. Real Streams 1. Abstract Stream Classes 2. Decorator Streams 3. Stream Sources 4. Decoration in Action 4. Network Streams: An Example 1. Starting from Streams 2. Decorating Streams 3. Sockets and Ports 4. Using A Socket 5. Opening a Client-Side Socket 6. Opening a Single Server-Side Socket 7. A Multi-Connection Server 8. Server Bottlenecks Interlude: Client/Server Chat Objectives

IPIJ: Chapter Outlines Page 19 Overview Suggested Chapter 22: Conventional Architectures 1. Server Architechtures 1. Dumb broadcast server 2. Routing server 3. DNS 2. RPC 3. Peer Architectures 1. Ring 2. Round Robin 3. Cubes 4. Arbitration 5. Blackboard 6. Tuple-space Appendices 1. Applets 2. AWT Quick Reference 1. AWT Components 2. Component 3. Canvas 4. Widgets and their Event Types 5. Basic Widgets 6. ItemSelectable Widgets 7. Text Widgets 8. Container 9. Panel and Frame 10. Dimension, Point, and Rectangle

IPIJ: Chapter Outlines Page 20 11. Graphics 12. AWT Events 13. ActionEvent and ActionListener 14. AWT Listeners and Adapters 3. IO Quick Reference 1. InputStream and Reader 2. OutputStream and Writer 3. Sources of Streams 4. InputStreamReader and OutputStreamWriter 5. Files 6. Pipes 7. Streams that Add Features 8. Buffering 9. Primitive Data 10. Object Streams and Serialization 11. Other Useful Streams 12. IOExceptions 4. Java Charts 1. About Java Charts 2. Program File 3. Class Declaration 4. Field Declaration 5. Method Declaration 6. Expression 7. Statement 8. Disclaimers, Notes, Amendments, etc. 5. Glossary 6. Indices 1. Syntax Sidebars 2. Style Sidebars 3. Interludes 4. Case Studies 5. Terms 2003 Lynn Andrea Stein This chapter is excerpted from a draft of Introduction to Interactive Programming In Java, a forthcoming textbook. It is a part of the course materials developed as a part of Lynn Andrea Stein's Rethinking CS101 Project at the Computers and Cognition Laboratory of the Franklin W. Olin College of Engineering and

IPIJ: Chapter Outlines Page 21 formerly at the MIT AI Lab and the Department of Electrical Engineering and Computer Science at the Massachusetts Institute of Technology. Questions or comments: <webmaster@cs101.org>