GUI-Based Software Development. The Model/View/Controller Pattern

Size: px
Start display at page:

Download "GUI-Based Software Development. The Model/View/Controller Pattern"

Transcription

1 GUI-Based Software Development The Model/View/Controller Pattern

2 Origins of Personal Computing The most important part of a computer system is the individual human user. - Alan Kay

3 Origins of Personal Computing Vannevar Bush (Memex, 1945) Ivan Sutherland (Sketchpad, 1963) Douglas Engelbart (NLS online System, ARPANET, late 1960s) Alan Kay (Smalltalk, Alto, 1972)

4 Xerox Parc (1970s) Bitmap graphics Graphical User Interfaces (GUIs) WYSIWYG editors Ethernet The first desktop computer the Alto

5 GUIs WIMP Interface Window, Icon, Mouse, Pull-down menu Early 1980s Steve Jobs takes a tour of Xerox PARC and gets some ideas that went into the Macintosh

6 Smalltalk Created by Alan Kay s research group at Xerox/ PARC in the early 1970s Intended as a development environment for GUIbased apps for desktop and mobile computers (the Dynabook) Origin of many features incorporated into later object-oriented languages

7 Smalltalk If you open up a computer, you find other little computers (objects), and so on The computer should integrate in a seamless way with ordinary user activity, using common metaphors (GUIs, etc.)

8 A System of Cooperating Objects Object Object An object can hide state that is modifiable. Objects communicate by sending messages (and parameters) to each other. Object Object

9 Fundamental Ideas of OOP Data encapsulation Inheritance Message passing Polymorphism

10 Smalltalk Syntax Odd at first, but very simple and regular Expressions can be entered and evaluated in an interpreter window Run-time type checking and completely dynamic memory management

11 Syntax: Unary Messages 'Hi there' size 8

12 Syntax: Unary Messages 'Hi there' size 8 6 odd false

13 Syntax: Unary Messages 'Hi there' size 8 6 odd false 5 abs 5

14 Syntax: Unary Messages 'Hi there' size 8 6 odd false 5 abs asinteger 6

15 Syntax: Unary Messages 'Hi there' size 8 6 odd false 5 abs asinteger 6 true not false

16 Syntax: Binary Messages 4 is the receiver object is the message 67 is the parameter object 71 is the object returned

17 Syntax: Binary Messages * 2 142

18 Syntax: Binary Messages * (67 * 2) 138

19 Syntax: Binary Messages * (67 * 2) 138 'Hi ', 'there' 'Hi there'

20 Syntax: Binary Messages * (67 * 2) 138 'Hi ', 'there' 'Hi there' 6 < 5 false

21 Syntax: Binary Messages * (67 * 2) 138 'Hi ', 'there' 'Hi there' 6 < 5 false 'Hi ' < 'there' true

22 Syntax: Keyword Messages 3 max: 4 4

23 Syntax: Keyword Messages 3 max: gcd: 16 8

24 Syntax: Keyword Messages 3 max: gcd: between: 1 and: 8 true

25 Repetition sum sum := 0. 1 to: 5 do: [:i sum := sum + i]. ^sum 15 i is a block variable that is bound to each number in the series from 1 to 5

26 Repetition sum sum := 0. 1 to: 5 do: [:i sum := sum + i]. ^sum 15 a a := Array new: 5. 1 to: 5 do: [:i a at: i put: i]. ^a #( )

27 Iterators do: collect: detect: select: reject: inject:into:

28 Mapping with collect: ^'Hi there' collect: [ :ch ch isvowel iftrue: [ch asupperase] iffalse: [ch aslowerase]] 'hi there'

29 Filtering with select: ^'Hi there' select: [:ch ch isvowel] asset size 2 ^'the cat sat on the mat' select: [:ch ch isvowel not]. 'th ct st n th mt'

30 Filtering with reject: ^'the cat sat on the mat' reject: [:ch ch isvowel]. 'th ct st n th mt' ^#( ) reject: [:grade grade < 60] #( )

31 Searching with detect: ^#( ) detect: [:grade (grade > 50) & (grade < 80)] 60

32 Reducing with inject:into: #( ) inject: 0 into: [:n1 :n2 n1 + n2] 10 #( ) inject: 1 into: [:n1 :n2 n1 * n2] 24

33 A Complete "Program " str i j ch freq freq := Array new: to: 26 do: [:i freq at: i put: 0]. str := Prompter prompt: 'Enter a string' default: ''. 1 to: str size do: [:i ch := (str at: i) asuppercase. ch isletter iftrue: [ j := ch asciivalue - $A asciivalue + 1. freq at: j put: (freq at: j) + 1]]. 1 to: 26 do: [:i Transcript nextputall: (freq at: i) printstring, ' ']. Transcript cr

34 A Better "Program " string characters characters := Bag new. string := Prompter prompt: 'Enter a string: ' default: ''. string do: [:ch ch isletter iftrue: [characters add: ch asuppercase]]. characters asset assortedcollection do: [:ch Transcript nextput: ch; nextputall: ' ', (characters occurrencesof: ch) printstring, ' ']. Transcript cr

35 Smalltalk Not just a programming language, but a set of tools and resources integrated in a common environment Was the first IDE (Integrated Development Environment)

36 Class Hierarchy Browser

37 Class Hierarchy Browser

38 The Model/View Pattern We can have different views of a data model Terminal I/O, uses keyboard and terminal window Graphical user interface (GUI), uses mouse, windows, dialogs, data fields, buttons and pull-down menus

39 Class Diagram EmployeeModel 1 EmployeeManagerView * Employee 1 EmployeeDialog Model 1 = contains just one 0..1 = contains zero or one * = contains zero or more View

40 A Banking System ManagerView SavingsAccount * ATMView Bank Model File storage

41 The Model/View/Controller Pattern The model manages the data The view presents the data to the human user The controller handles the interaction between the user, the view, and the model

42 Model/View/Controller (MVC) Requests for data View User events Actions to update the view Controller (listeners) Actions to update the model Model

43 A GUI-Based Application Set up the data model (instantiate it, or get it from a file) Set up the view Create window objects Add them to the window with a particular layout Set up the controller Define event handlers which take action when the user initiates events in the view (clicks the mouse, etc.) Create the main window, set its size, make it visible, and wait for user events to occur

44 Summary Classes in the data model manage the application s data Classes in the view present the data to users and provide input controls Classes (or methods) in the controller handle interactions among the user, the view, and the model

History. A (brief) history of interaction. Outline. Major paradigms of interaction. Visionaries who inspired advances

History. A (brief) history of interaction. Outline. Major paradigms of interaction. Visionaries who inspired advances History A (brief) history of interaction Outline Major paradigms of interaction - Batch interfaces - Conversational interfaces - Graphical interfaces Visionaries who inspired advances - Vannevar Bush -

More information

CS 403/503 Exam 4 Spring 2015 Solution

CS 403/503 Exam 4 Spring 2015 Solution CS 403/503 Exam 4 Spring 2015 Solution Each problem initially scored out of 10 points possible. CS 403 Best 5 answers doubled. (5*20 + 2*10 = 120 possible) CS 503 Best 4 answers doubled. (4*20 + 3*10 =

More information

Smalltalk. Topics. History of Smalltalk. OOP and GUI. Steve Jobs, PARC, Dec Smalltalk 1. The best way to predict the future is to invent it.

Smalltalk. Topics. History of Smalltalk. OOP and GUI. Steve Jobs, PARC, Dec Smalltalk 1. The best way to predict the future is to invent it. Smalltalk The best way to predict the future is to invent it. Alan Kay, 1971 Topics History and significance of Smalltalk Object-oriented programming The Smalltalk language Smalltalk today Additional Examples

More information

History of Ubicomp. Page 1. Agenda. Why study history? Paradigms. Shwetak Patel. Review history of Ubicomp

History of Ubicomp. Page 1. Agenda. Why study history? Paradigms. Shwetak Patel. Review history of Ubicomp CSE 599U Advanced Topics in Ubicomp History of Ubicomp Shwetak Patel Computer Science & Engineering Electrical Engineering Agenda Review history of Ubicomp Review the history of Human-Computer Interaction

More information

Design of Graphical User Interfaces

Design of Graphical User Interfaces Design of Graphical User Interfaces Graduate School Course IT 2 Prof. Astrid Beck 1 1 Contact information Mail: WWW: Astrid.Beck@fht-esslingen.de http://www.it.fht-esslingen.de/~asbeck Office: F1.353 Level

More information

The command line interface

The command line interface History 329/SI 311/RCSSCI 360 Computers and the Internet: A global history Apple and the Graphical User Interface (GUI) The command line interface is still there in today s PCs The Graphical User Interface

More information

Dynamic Object-Oriented Programming with Smalltalk 1. Introduction

Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Dynamic Object-Oriented Programming with Smalltalk 1. Introduction Prof. O. Nierstrasz Autumn Semester 2009 LECTURE TITLE What is surprising about Smalltalk > Everything is an object > Everything happens

More information

SENG 310: Human Computer Interaction. Lecture 2. The history of Human Computer Interaction

SENG 310: Human Computer Interaction. Lecture 2. The history of Human Computer Interaction SENG 310: Human Computer Interaction Lecture 2. The history of Human Computer Interaction Highlights from the last course Human Computer Interaction is a usability engineering process Design, implementation,

More information

Programming Methods. Simple things should be simple, complex things should be possible.

Programming Methods. Simple things should be simple, complex things should be possible. S m a l l t a l k Object-oriented programming is a fifth-generation style which emphasizes simulation of the behavior of objects. Smalltalk was the first pure object-oriented (oo) language; Java is the

More information

4 Overview on Approaches to Multimedia Programming

4 Overview on Approaches to Multimedia Programming 4 Overview on Approaches to Multimedia Programming 4.1 Historical Roots of Multimedia Programming 4.2 Squeak and Smalltalk: An Alternative Vision 4.3 Frameworks for Multimedia Programming 4.4 Further Approaches

More information

History of GUI. John Kelleher. PDF created with FinePrint pdffactory Pro trial version

History of GUI. John Kelleher. PDF created with FinePrint pdffactory Pro trial version History of GUI John Kelleher Context Computing in 1945 Harvard Mark I 55 feet long, 8 feet high, 5 tons Ballistics calculations Physical switches (bef. microprocessor) Paper tape Simple arithmetic and

More information

Fluency with Information Technology, 6e (Snyder) Chapter 2 Exploring the Human-Computer Interface: Face It, It's a Computer

Fluency with Information Technology, 6e (Snyder) Chapter 2 Exploring the Human-Computer Interface: Face It, It's a Computer Fluency with Information Technology, 6e (Snyder) Chapter 2 Exploring the Human-Computer Interface: Face It, It's a Computer 2.1 True/False Questions 1) Feedback is an indication that either the computer

More information

History of HCI. Key people, events and ideas in HCI. Course Project introduction

History of HCI. Key people, events and ideas in HCI. Course Project introduction History of HCI Key people, events and ideas in HCI Course Project introduction Agenda ØReview HCI s history v Key people and events History of HCI ØDigital computer grounded in ideas from 1700 s & 1800

More information

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language

Chapter 11. Categories of languages that support OOP: 1. OOP support is added to an existing language Categories of languages that support OOP: 1. OOP support is added to an existing language - C++ (also supports procedural and dataoriented programming) - Ada 95 (also supports procedural and dataoriented

More information

An Introduction to Smalltalk for Objective-C Programmers

An Introduction to Smalltalk for Objective-C Programmers An Introduction to Smalltalk for Objective-C Programmers O Reilly Mac OS X Conference October 25 28, 2004 Philippe Mougin - pmougin@acm.org http://www.fscript.org IT Management & Consulting What you will

More information

History of Human Computer Interaction. History of HCI: Input/output devices

History of Human Computer Interaction. History of HCI: Input/output devices History of Human Computer Interaction Where did HCI innovations and philosophy come from? Who were the major personalities? What were the important systems? How did ideas move from the laboratory to the

More information

Fundamentals of Python: First Programs. Chapter 1: Introduction Modifications by Mr. Dave Clausen

Fundamentals of Python: First Programs. Chapter 1: Introduction Modifications by Mr. Dave Clausen Fundamentals of Python: First Programs Chapter 1: Introduction Modifications by Mr. Dave Clausen Objectives After completing this chapter, you will be able to: Describe the basic features of an algorithm

More information

2. Smalltalk a reflective language. Oscar Nierstrasz

2. Smalltalk a reflective language. Oscar Nierstrasz 2. Smalltalk a reflective language Oscar Nierstrasz Birds-eye view Smalltalk is still today one of the few fully reflective, fully dynamic, objectoriented development environments. We will see how a simple,

More information

UI Research. Vision Videos HCI and UI Research Topics. UI Research 1

UI Research. Vision Videos HCI and UI Research Topics. UI Research 1 UI Research Vision Videos HCI and UI Research Topics UI Research 1 Envisioning the Future of Interaction Many examples of videos that provide visions of the future - https://visionsofcomputing.wiki.cs.st-andrews.ac.uk/index.php/vision_videos

More information

CSE 510: Advanced Topics in HCI

CSE 510: Advanced Topics in HCI CSE 510: Advanced Topics in HCI Course Overview HCI History James Fogarty Daniel Epstein Tuesday/Thursday 10:30 to 12:00 CSE 403 Today Introductions HCI in Computer Science Course Structure Overview HCI

More information

Squeak Object Model. Technion - Israel Institute of Technology. Updated: Spring Object-Oriented Programming 1

Squeak Object Model. Technion - Israel Institute of Technology. Updated: Spring Object-Oriented Programming 1 Squeak Object Model Technion - Israel Institute of Technology Updated: Spring 2015 236703 - Object-Oriented Programming 1 Agenda Class exploring Class object, default / common behaviors Objects equality

More information

Original GUIs. IntroGUI 1

Original GUIs. IntroGUI 1 Original GUIs IntroGUI 1 current GUIs IntroGUI 2 Why GUIs? IntroGUI 3 Computer Graphics technology enabled GUIs and computer gaming. GUI's were 1985 breakout computer technology. Without a GUI there would

More information

ST Introduction. Birds-eye view

ST Introduction. Birds-eye view 3. Standard Classes ST Introduction Birds-eye view Reify everything by reifying its entire implementation model, Smalltalk succeeds in being open, and extensible. New features can be added without changing

More information

This chapter describes some of the more common errors that Smalltalk programmers make and gives suggestions on how to prevent the errors.

This chapter describes some of the more common errors that Smalltalk programmers make and gives suggestions on how to prevent the errors. Chapter 22 Common Errors This chapter describes some of the more common errors that Smalltalk programmers make and gives suggestions on how to prevent the errors. Notifier window messages As you test your

More information

User Interface Design

User Interface Design User Interface Design & Development Lecture 07 Direct Manipulation João Pedro Sousa SWE 632 George Mason University today direct manipulation window UIs support for operations mouse, pen, eye tracking,

More information

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction

Lecture 13: Object orientation. Object oriented programming. Introduction. Object oriented programming. OO and ADT:s. Introduction Lecture 13: Object orientation Object oriented programming Introduction, types of OO languages Key concepts: Encapsulation, Inheritance, Dynamic binding & polymorphism Other design issues Smalltalk OO

More information

Software Tools. Scott Klemmer Autumn 2009

Software Tools. Scott Klemmer Autumn 2009 stanford hci group http://cs147.stanford.edu Software Tools Scott Klemmer Autumn 2009 It accomplishes an important task (for better and for worse) You don t have to make it yourself, and it abstracts a

More information

The Smalltalk Environment, SUnit, and Inheritance

The Smalltalk Environment, SUnit, and Inheritance Creating Objects in Smalltalk The Smalltalk Environment, SUnit, and Inheritance Object are created by sending a message to some other (exisiting!) object called a factory! Usually, the factory object is

More information

Human factors. (a brief introduction) comp march 2008 slides originally by daniel sandler

Human factors. (a brief introduction) comp march 2008 slides originally by daniel sandler Human factors (a brief introduction) comp314 25 march 2008 slides originally by daniel sandler Warm-ups How do I Zoom? How do I Zoom? How do I Eject a disk? delete??? How do I Eject a disk? But the Trash

More information

Object-Oriented Technology. Rick Mercer

Object-Oriented Technology. Rick Mercer Object-Oriented Technology Rick Mercer 1 Object-Oriented Technology: Outline Consider a few ways in which data is protected from careless modification Mention the key features object-oriented style of

More information

Fundamental Concepts and History

Fundamental Concepts and History Fundamental Concepts and History Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered I. Fundamental Concepts II. Evolution of OS 2 Key Concepts

More information

This tutorial has been intended for the users willing to take the human computer interactions as a next level of study in their career.

This tutorial has been intended for the users willing to take the human computer interactions as a next level of study in their career. About the Tutorial This tutorial provides the basic knowledge on human computer interface and designing. It also throws a light on the current tools and practices and the future aspects of HCI designing.

More information

Smalltalk: developed at Xerox Palo Alto Research Center by the Learning Research Group in the 1970 s (Smalltalk-72, Smalltalk-76, Smalltalk-80)

Smalltalk: developed at Xerox Palo Alto Research Center by the Learning Research Group in the 1970 s (Smalltalk-72, Smalltalk-76, Smalltalk-80) A Bit of History Some notable examples of early object-oriented languages and systems: Sketchpad (Ivan Sutherland s 1963 PhD dissertation) was the first system to use classes and instances (although Sketchpad

More information

1 Information system An information system is the combination of technology(computers) and people that enable an organization to collect data, store them, and transform them into information Data Data

More information

Hybrid User Interfaces: Design Guidelines and Implementation Examples

Hybrid User Interfaces: Design Guidelines and Implementation Examples Hybrid User Interfaces: Design Guidelines and Implementation Examples Sehyun Ahn M.S. Civil and Environmental Engineering Stanford University, 2000 Submitted to the Department of Civil and Environmental

More information

Microsoft Visual Basic 2005: Reloaded

Microsoft Visual Basic 2005: Reloaded Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 1 An Introduction to Visual Basic 2005 Objectives After studying this chapter, you should be able to: Explain the history of programming languages

More information

Unit E Step-by-Step: Programming with Python

Unit E Step-by-Step: Programming with Python Unit E Step-by-Step: Programming with Python Computer Concepts 2016 ENHANCED EDITION 1 Unit Contents Section A: Hello World! Python Style Section B: The Wacky Word Game Section C: Build Your Own Calculator

More information

fohgp siejt karbl mcqdn

fohgp siejt karbl mcqdn CS 403/503 Exam 4 Spring 2017 Solution CS 403 Score is based on your best 8 out of 10 problems. CS 503 Score is based on your best 9 out of 10 problems. Extra credit will be awarded if you can solve additional

More information

Pharo Syntax in a Nutshell

Pharo Syntax in a Nutshell Pharo Syntax in a Nutshell Damien Cassou, Stéphane Ducasse and Luc Fabresse W1S06, 2015 W1S06 2 / 28 Getting a Feel About Syntax In this lecture we want to give you the general feel to get started: Overview

More information

Class 30: Language Construction

Class 30: Language Construction Class 30: Language Construction Menu Checking Grades Plans for Exam 2 Completing the Charme Interpreter History of Object-Oriented Programming cs1120 Fall 2009 David Evans Software Voting Univac predicts

More information

Class 22: Inheritance

Class 22: Inheritance Menu Class 22: Inheritance Objects Review Object-Oriented Programming Inheritance CS50: Computer Science University of Virginia Computer Science David Evans http://www.cs.virginia.edu/evans 2 Objects When

More information

Object Oriented Paradigm Languages

Object Oriented Paradigm Languages Object Oriented Paradigm Languages The central design goal is to build inherent abstraction into the system, moving all the abstract implementation details from the user level (ad-hoc) to the system level

More information

I BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination. June, 2015 BCS-031 : PROGRAMMING IN C ++

I BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination. June, 2015 BCS-031 : PROGRAMMING IN C ++ No. of Printed Pages : 3 I BCS-031 BACHELOR OF COMPUTER APPLICATIONS (BCA) (Revised) Term-End Examination 05723. June, 2015 BCS-031 : PROGRAMMING IN C ++ Time : 3 hours Maximum Marks : 100 (Weightage 75%)

More information

4 Overview on Approaches to Multimedia Programming

4 Overview on Approaches to Multimedia Programming 4 Overview on Approaches to Multimedia Programming 4.1 History of Multimedia Programming 4.2 Squeak and Smalltalk: An Alternative Vision 4.3 Director and Lingo: Advanced Multimedia Authoring 4.4 Frameworks

More information

GUI Implementation Support

GUI Implementation Support GUI Implementation Support Learning Objectives: Why GUIs? What is a GUI? Why is implementation support needed? What kinds of implementation support are available? Basic concepts in OO GUI toolkit & app

More information

4 Overview on Approaches to Multimedia Programming

4 Overview on Approaches to Multimedia Programming 4 Overview on Approaches to Multimedia Programming 4.1 History of Multimedia Programming 4.2 Squeak and Smalltalk: An Alternative Vision 4.3 Director and Lingo: Advanced Multimedia Authoring 4.4 Frameworks

More information

JAVA: A Primer. By: Amrita Rajagopal

JAVA: A Primer. By: Amrita Rajagopal JAVA: A Primer By: Amrita Rajagopal 1 Some facts about JAVA JAVA is an Object Oriented Programming language (OOP) Everything in Java is an object application-- a Java program that executes independently

More information

Computer Science Honours 2011

Computer Science Honours 2011 Computer Science Honours 2011 Vannevar Bush envisioned a device with touch screen, keyboard and scanner users could search for knowledge Digital computer not invented yet little l notice paid to ideas

More information

http://www.computersciencelab.com/computerhistory/historypt2.htm In 1801 Joseph Marie Jacquard invented a loom that could base its weave on a pattern that was automatically read from punched wooden cards

More information

CS415 Human Computer Interaction

CS415 Human Computer Interaction CS415 Human Computer Interaction Lecture 7 Implementation and Testing Tools for HCIs October 4, 2015 Sam Siewert Coming Up Quiz on Wednesday for Part II Chapters 5,6,7,8,9 Review Next Week on Monday, 10/12

More information

Object Oriented Programming with Java. Unit-1

Object Oriented Programming with Java. Unit-1 CEB430 Object Oriented Programming with Java Unit-1 PART A 1. Define Object Oriented Programming. 2. Define Objects. 3. What are the features of Object oriented programming. 4. Define Encapsulation and

More information

CS 403/503 Exam 4 Spring 2017 Name

CS 403/503 Exam 4 Spring 2017 Name CS 403/503 Exam 4 Spring 2017 Name CS 403 Score is based on your best 8 out of 10 problems. CS 503 Score is based on your best 9 out of 10 problems. Extra credit will be awarded if you can solve additional

More information

Objectives. Object-Oriented Analysis and Design with the Unified Process 2

Objectives. Object-Oriented Analysis and Design with the Unified Process 2 Objectives Understand the differences between user interfaces and system interfaces Explain why the user interface is the system to the users Discuss the importance of the three principles of user-centered

More information

VALLIAMMAI ENGINEERING COLLEGE

VALLIAMMAI ENGINEERING COLLEGE VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 60 0 DEPARTMENT OF INFORMATION TECHNOLOGY QUESTION BANK III SEMESTER CS89- Object Oriented Programming Regulation 07 Academic Year 08 9 Prepared

More information

About A social approach to smalltalk learning http://smalltalktutorial.herokuapp.com/ Facundo Mainere fmmainere@gmail.com What is it? Smalltalk Tutorial is a web-page written with the support of the program

More information

Organization of User Interface Software

Organization of User Interface Software Organization of User Interface Software Administration Questions about assignments due and assignments assigned 2 What we will talk about Ways to organize UI code Different models of user interfaces as

More information

Basic Objects, Conditionals and Loops

Basic Objects, Conditionals and Loops Basic Objects, Conditionals and Loops Booleans Basic Loops Overview of the Collection hierarchy more than 80 classes: (Bag, Array, OrderedCollection, SortedCollection, Set, Dictionary...) Loops and Iteration

More information

A Historical View of Computing

A Historical View of Computing A Historical View of Computing CS 391 Why look at history? To understand how we got to where we are it is important to not just understand where we ve been, but also understand WHY we took the path we

More information

stanford hci group / cs376 UI Software Tools Scott Klemmer 14 October research topics in human-computer interaction

stanford hci group / cs376 UI Software Tools Scott Klemmer 14 October research topics in human-computer interaction stanford hci group / cs376 UI Software Tools Scott Klemmer 14 October 2004 research topics in human-computer interaction http://cs376.stanford.edu cs547 tomorrow: Scott Snibbe Body, Space, and Cinema 2

More information

ICSY Integrated. Multimediale Visualisierungssysteme WS 2000/2001. Introduction. Communica. Systems. tion. Prof. Dr. Paul Müller

ICSY Integrated. Multimediale Visualisierungssysteme WS 2000/2001. Introduction. Communica. Systems. tion. Prof. Dr. Paul Müller Communica tion Multimediale Visualisierungssysteme WS 2000/2001 Introduction Prof. Dr. Paul Müller AG: Integrierte Kommunikationssysteme How to contact Prof. Dr. Paul Müller 34 / 312 Tel.: 0631 / 205-2263

More information

Simula 67. Simula and Smalltalk. Comparison to Algol 60. Brief history. Example: Circles and lines. Objects in Simula

Simula 67. Simula and Smalltalk. Comparison to Algol 60. Brief history. Example: Circles and lines. Objects in Simula CS 242 Simula 67 Simula and Smalltalk John Mitchell First object-oriented language Designed for simulation Later recognized as general-purpose prog language Extension of Algol 60 Standardized as Simula

More information

From Design to Implementation

From Design to Implementation From Design to Implementation The Presenters Rick Trotter, IBM Smalltalk Group Dave Maeda, IBM Smalltalk Group Coding the video-store application Today we will see how the video-store application Booch

More information

GUI Basics and Windowing Systems. Using X Windows as a case study

GUI Basics and Windowing Systems. Using X Windows as a case study GUI Basics and Windowing Systems Using X Windows as a case study 2 CS 349 - Syllabus Evolution of GUI Programming On early computers, everything was rolled by hand Re-inventing the wheel with every iteration

More information

Lecture 11 HCI History

Lecture 11 HCI History Lecture 11 HCI History Terry Winograd CS147 - Introduction to Human-Computer Interaction Design Computer Science Department Stanford University Autumn 2006 CS147 - Terry Winograd - 1 Learning Goals Be

More information

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION Course Title: Java Technologies Grades: 10-12 Prepared by: Rob Case Course Unit: What is Java? Learn about the history of Java. Learn about compilation & Syntax. Discuss the principles of Java. Discuss

More information

UI Software Organization IAT351

UI Software Organization IAT351 UI Software Organization IAT351 Week 2 Lecture 1 16.01.2008 Lyn Bartram lyn@sfu.ca Some slides adapted from K. Edwards, Georgia tech Today s agenda What is the UI? A whirlwind tour of history Software

More information

Modeless Interaction Techniques for Text Editing

Modeless Interaction Techniques for Text Editing Modeless Interaction Techniques for Text Editing Larry Tesler for Interaction Techniques CMU HCII! 5 Feb 2014 The User Experience in 1960 Source: http://www.columbia.edu/acis/history/650.html Doug Engelbart

More information

Experiences and Directions in Spatial Hypertext

Experiences and Directions in Spatial Hypertext Experiences and Directions in Spatial Hypertext Frank Shipman Department of Computer Science & Center for the Study of Digital Libraries Texas A&M University What is Spatial Hypertext? Hypertext but spatial

More information

4 Overview on Approaches to Multimedia Programming

4 Overview on Approaches to Multimedia Programming 4 Overview on Approaches to Multimedia Programming 4.1 History of Multimedia Programming 4.2 Squeak and Smalltalk: An Alternative Vision 4.3 Director and Lingo: Advanced Multimedia Authoring 4.4 Frameworks

More information

MaanavaN.Com CS1203 OBJECT ORIENTED PROGRAMMING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING

MaanavaN.Com CS1203 OBJECT ORIENTED PROGRAMMING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SUB CODE / SUBJECT: CS1203 / Object oriented programming YEAR / SEM: II / III QUESTION BANK UNIT I FUNDAMENTALS PART-A (2 MARKS) 1. What is Object Oriented

More information

WA1278 Introduction to Java Using Eclipse

WA1278 Introduction to Java Using Eclipse Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA1278 Introduction to Java Using Eclipse This course introduces the Java

More information

Object-oriented perspective

Object-oriented perspective Starting Reader #2 Object-oriented perspective Operating system = computer interface Shell/libraries/system calls = OS interface Will return to OS topics in upcoming lectures. Now: OO intro. Objects l

More information

Digital Media. Lecture 13: Semester Wrapup. Georgia Gwinnett College School of Science and Technology Dr. Jim Rowan

Digital Media. Lecture 13: Semester Wrapup. Georgia Gwinnett College School of Science and Technology Dr. Jim Rowan Digital Media Lecture 13: Semester Wrapup Georgia Gwinnett College School of Science and Technology Dr. Jim Rowan your browser (Safari)(client) your computer DHCP: webpages and other stuff yahoo.com (server)

More information

Introduction... ix. Chapter 1: Exploring Fundamental Programming Concepts... 1

Introduction... ix. Chapter 1: Exploring Fundamental Programming Concepts... 1 Table of Contents Introduction... ix Chapter 1: Exploring Fundamental Programming Concepts... 1 1.1 Exploring the Editors... 2 History of Editors... 2 Exploring the Types of Text Editors... 3 Describing

More information

Chapter 6 Introduction to Defining Classes

Chapter 6 Introduction to Defining Classes Introduction to Defining Classes Fundamentals of Java: AP Computer Science Essentials, 4th Edition 1 Objectives Design and implement a simple class from user requirements. Organize a program in terms of

More information

6.096 Introduction to C++ January (IAP) 2009

6.096 Introduction to C++ January (IAP) 2009 MIT OpenCourseWare http://ocw.mit.edu 6.096 Introduction to C++ January (IAP) 2009 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. Welcome to 6.096 Lecture

More information

[CHAPTER] 1 INTRODUCTION 1

[CHAPTER] 1 INTRODUCTION 1 FM_TOC C7817 47493 1/28/11 9:29 AM Page iii Table of Contents [CHAPTER] 1 INTRODUCTION 1 1.1 Two Fundamental Ideas of Computer Science: Algorithms and Information Processing...2 1.1.1 Algorithms...2 1.1.2

More information

Object-Oriented Programming and Design

Object-Oriented Programming and Design C Sc 335 Course Overview Object-Oriented Programming and Design Rick Mercer Major Topics in C Sc 335 1. Java 2. Object-Oriented Programming 3. Object-Oriented Design 4. Technology 5. Object-Oriented Principles

More information

Simula and Smalltalk. Comparison to Algol 60. Brief history. Example: Circles and lines. Objects in Simula. John Mitchell

Simula and Smalltalk. Comparison to Algol 60. Brief history. Example: Circles and lines. Objects in Simula. John Mitchell CS 242 Simula 67 Simula and Smalltalk John Mitchell First object oriented language Designed for simulation Later recognized as general purpose prog language Extension of Algol 60 Standardized as Simula

More information

C# Forms and Events. Evolution of GUIs. Macintosh VT Datavetenskap, Karlstads universitet 1

C# Forms and Events. Evolution of GUIs. Macintosh VT Datavetenskap, Karlstads universitet 1 C# Forms and Events VT 2009 Evolution of GUIs Until 1984, console-style user interfaces were standard Mostly dumb terminals as VT100 and CICS Windows command prompt is a holdover In 1984, Apple produced

More information

Loops / Repetition Statements

Loops / Repetition Statements Loops / Repetition Statements Repetition statements allow us to execute a statement multiple times Often they are referred to as loops C has three kinds of repetition statements: the while loop the for

More information

Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including:

Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including: Oops known as object-oriented programming language system is the main feature of C# which further support the major features of oops including: Abstraction Encapsulation Inheritance and Polymorphism Object-Oriented

More information

Interfaces Homme-Machine

Interfaces Homme-Machine Interfaces Homme-Machine APP3IR Axel Carlier 29/09/2017 1 2 Some vocabulary GUI, CHI,, UI, etc. 3 Some vocabulary Computer-Human Interaction Interaction HommeMachine User Interface Interface Utilisateur

More information

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe

Copyright 2016 Ramez Elmasri and Shamkant B. Navathe Chapter 12 Outline Overview of Object Database Concepts Object-Relational Features Object Database Extensions to SQL ODMG Object Model and the Object Definition Language ODL Object Database Conceptual

More information

LATENT METHODS. Richard CS

LATENT METHODS. Richard CS LATENT METHODS Richard O'Keefe @ CS Outline Background The problem Some non-solutions My solution Does it apply elsewhere Background Alan Kay invented tablet computers (the Dynabook) His research group

More information

11/17/2008. CSG 170 Round 8. Prof. Timothy Bickmore. Quiz. Open book / Open notes 15 minutes

11/17/2008. CSG 170 Round 8. Prof. Timothy Bickmore. Quiz. Open book / Open notes 15 minutes Human-Computer Interaction CSG 170 Round 8 Prof. Timothy Bickmore Quiz Open book / Open notes 15 minutes 1 Paper Prototyping Team Project Review Models 2 Categories of User Models 1. Hierarchical structuring

More information

Sketchpad. Plan for Today. Class 22: Graphical User Interfaces IBM 705 (1954) Computer as Clerk : Augmenting Human Intellect

Sketchpad. Plan for Today. Class 22: Graphical User Interfaces IBM 705 (1954) Computer as Clerk : Augmenting Human Intellect cs2220: Engineering Software Class 22: Graphical User Interfaces Plan for Today History of Interactive Computing Building GUIs in Java Xerox Star Fall 2010 UVa David Evans Design Reviews this week! Univac

More information

Course Outline. Introduction to java

Course Outline. Introduction to java Course Outline 1. Introduction to OO programming 2. Language Basics Syntax and Semantics 3. Algorithms, stepwise refinements. 4. Quiz/Assignment ( 5. Repetitions (for loops) 6. Writing simple classes 7.

More information

Core Java SYLLABUS COVERAGE SYLLABUS IN DETAILS

Core Java SYLLABUS COVERAGE SYLLABUS IN DETAILS Core Java SYLLABUS COVERAGE Introduction. OOPS Package Exception Handling. Multithreading Applet, AWT, Event Handling Using NetBean, Ecllipse. Input Output Streams, Serialization Networking Collection

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Ray John Pamillo 1/27/2016 1 Nokia Solutions and Networks 2014 Outline: Brief History of OOP Why use OOP? OOP vs Procedural Programming What is OOP? Objects and Classes 4 Pillars

More information

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR 603203 DEPARTMENT OF COMPUTER SCIENCE & APPLICATIONS QUESTION BANK (2017-2018) Course / Branch : M.Sc CST Semester / Year : EVEN / II Subject Name

More information

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

DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR (ODD SEM) DHANALAKSHMI SRINIVASAN COLLEGE OF ENGINEERING AND TECHNOLOGY ACADEMIC YEAR 2018-19 (ODD SEM) DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING SUB: OBJECT ORIENTED PROGRAMMING SEM/YEAR: III SEM/ II YEAR

More information

USING THE CONSOLE TAB

USING THE CONSOLE TAB USING THE CONSOLE TAB Summary The console is a tab that combines related records into one screen with different frames so that users have all the information they need when interacting with Salesforce.

More information

CS415 Human Computer Interaction

CS415 Human Computer Interaction CS415 Human Computer Interaction Lecture 6, Part 2 Implementation and Testing Tools for HCIs October 1, 2018 Sam Siewert Minute Paper Summary - The Gurus Don Norman 1. make it fun (attributed to Fadell?)

More information

Template Method Structure. Template Method Example. Template Method Example. Template Method Example. Benefits of Template Method

Template Method Structure. Template Method Example. Template Method Example. Template Method Example. Benefits of Template Method Design Patterns in Smalltalk CSC591O April 9, 1997 Raleigh, NC Bobby Woolf Senior Member of Technical Staff Knowledge Systems Corp. 4001 Weston Parkway Cary, North Carolina 27513-2303 919-677-1116 bwoolf@ksccary.com

More information

Chapter1 Overview of computers

Chapter1 Overview of computers 1 Chapter1 Overview of computers 1. What is a computer? 2. Which is the earliest computing machine? 3. Who invented the pascaline? 4. What is Charles babbage known as? 5. What is the machine proposed by

More information

4 Fundamental Issues in Multimedia Programming

4 Fundamental Issues in Multimedia Programming 4 Fundamental Issues in Multimedia Programming 4.1 Multimedia Programming in Context Looking Back: Central Issues & Alternative Approaches The Purpose of All This? 4.2 History of Multimedia Programming

More information

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

Core Java Syllabus. Pre-requisite / Target Audience: C language skills (Good to Have) Overview: Java programming language is developed by Sun Microsystems. Java is object oriented, platform independent, simple, secure, architectural neutral, portable, robust, multi-threaded, high performance,

More information

Murach s Beginning Java with Eclipse

Murach s Beginning Java with Eclipse Murach s Beginning Java with Eclipse Introduction xv Section 1 Get started right Chapter 1 An introduction to Java programming 3 Chapter 2 How to start writing Java code 33 Chapter 3 How to use classes

More information

VBA Collections A Group of Similar Objects that Share Common Properties, Methods and

VBA Collections A Group of Similar Objects that Share Common Properties, Methods and VBA AND MACROS VBA is a major division of the stand-alone Visual Basic programming language. It is integrated into Microsoft Office applications. It is the macro language of Microsoft Office Suite. Previously

More information