Toolkits in First Year CS: A Pedagogical Imperative Richard Rasala College of Computer Science Northeastern University Boston MA 02115.

Slides:



Advertisements
Similar presentations
A Quantum Programming Language
Advertisements

UNIT-e futures and UNIT-e Mobile Ben Potter Systems Architect.
Using Asterisk to Implement Intelligent Call Center Solutions James Kleckner AMTELCO.
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Java Power Tools: A Foundation for Interactive GUI Exploration Viera K. Proulx, Richard Rasala, Jeff Raab HCI 2001 Conference New Orleans, LA August 10,
OBJECT ORIENTED PROGRAMMING M Taimoor Khan
Introduction to Operating Systems CS-2301 B-term Introduction to Operating Systems CS-2301, System Programming for Non-majors (Slides include materials.
Fall 2007CS 225 Introduction to Software Design Chapter 1.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
February 12, 2009 Center for Hybrid and Embedded Software Systems Model Transformation Using ERG Controller Thomas H. Feng.
CSE S. Tanimoto Syntax and Types 1 Representation, Syntax, Paradigms, Types Representation Formal Syntax Paradigms Data Types Type Inference.
Honors 101, Fall 2006 Please do not sit in back of room! Lots of info on web page Join the mailing list Download Eclipse and start using it Read the text.
Spring 2009CS 225 Introduction to Software Design Chapter 1.
1 Outline 7.1 Introduction 7.2 Implementing a Time Abstract Data Type with a Class 7.3 Special Attributes 7.4Controlling Access to Attributes 7.4.1Get.
Introduction to Alice CS Honors Slides courtesy of Wanda Dann, Ithaca College.
Computational Thinking Related Efforts. CS Principles – Big Ideas  Computing is a creative human activity that engenders innovation and promotes exploration.
User Interface Design Chapter 11. Objectives  Understand several fundamental user interface (UI) design principles.  Understand the process of UI design.
Windows Tutorial 9 Maintaining Hardware and Software
What is Concurrent Programming? Maram Bani Younes.
1 CSC 221: Introduction to Programming Fall 2012 course overview  What did you set out to learn?  What did you actually learn?  Where do you go from.
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Using Jeroo To Teach Object-Oriented Concepts By Christian Digout.
Java Power ToolsNortheastern CCS EdGroup Java Power Tools Model Software for Teaching Object-Oriented Design Richard Rasala Jeff Raab Viera Proulx
COMPREHENSIVE Windows Tutorial 9 Maintaining Hardware and Software.
David Streader Computer Science Victoria University of Wellington Copyright: David Streader, Victoria University of Wellington While loops and the UI API.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Introduction to Software Design Chapter 1. Chapter Objectives  To become familiar with the software challenge and the software life cycle  To understand.
University of Houston-Clear Lake Proprietary© 1997 Evolution of Programming Languages Basic cycle of improvement –Experience software difficulties –Theory.
Project By: Brent Elder, Mike Holovka, Hisham Algadaibi.
SIMPLE PROBLEM SOLVING in Java: a Problem Set Framework Viera K. Proulx Richard Rasala Jason Jay Rodrigues CCSCNE 2002 Conference.
Computer Science and Software Engineering University of Wisconsin - Platteville 2. Pointer Yan Shi CS/SE2630 Lecture Notes.
® Platform Engineering, CG sysPerf Toolkit Version , as of Feb 11, 1999 For information on algorithms and performance details contact Ken Tracton.
1 CSC 222: Computer Programming II Spring 2004 See online syllabus at: Course goals:
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 13 Introduction to Classes.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
9/01RUT1 NASA OSMA SAS '01 R equirements U se case T ool James R. McCoy SRS Information Services NASA Software Assurance Technology Center
OBJECT-ORIENTED PROGRAMMING (OOP) WITH C++ Instructor: Dr. Hany H. Ammar Dept. of Electrical and Computer Engineering, WVU.
Copyright © Mohamed Nuzrath Java Programming :: Syllabus & Chapters :: Prepared & Presented By :: Mohamed Nuzrath [ Major In Programming ] NCC Programme.
A radiologist analyzes an X-ray image, and writes his observations on papers  Image Tagging improves the quality, consistency.  Usefulness of the data.
Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java.
1 CSC 221: Computer Programming I Spring 2008 course overview  What did we set out to learn?  What did you actually learn?  Where do you go from here?
The SIGCSE 2001 Maze Demonstration Program Richard Rasala, Jeff Raab, Viera K. Proulx College of Computer Science Northeastern University Boston MA
Halomda Educational Software ( Established 1988) Mathematics and Science for Primary, Intermediate and High schools, Colleges and Universities Computer.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
What is Java? Object Oriented Programming Language Sun Microsystems “Write Once, Run Everywhere” Bytecode and Virtual Machine Java Platform (Java VM and.
Object Oriented Programming. OOP  The fundamental idea behind object-oriented programming is:  The real world consists of objects. Computer programs.
Overview of Previous Lesson(s) Over View 3 Program.
Chapter – 8 Software Tools.
Introduction to Input/Interaction Glenn G. Chappell U. of Alaska Fairbanks CS 381 Lecture Notes Friday, September 19, 2003.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
1 Object-Oriented Programming Using C++ CLASS 17 Honors.
6.0 Objects First with Java A Practical Introduction using BlueJ David J. Barnes Michael Kölling.
Lesson 22 Graphics Software.
CSC 221: Computer Programming I Spring 2010
OPERATING SYSTEMS CS3502 Fall 2017
CSC 221: Computer Programming I Fall 2005
COMPUTING BTEC LEVEL /17.
Java programming lecture one
Bomgar Remote support software
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
Java IO and Testing made simple
Windows Tutorial 9 Maintaining Hardware and Software
Introduction to Data Structure
Graphics and FLTK CSCE 121 J. Michael Moore
LCC 6310 Computation as an Expressive Medium
Foundations and Definitions
PPT5: Fundamental Geometric Algorithms
Water : Container  Data : Data Structure
Presentation transcript:

Toolkits in First Year CS: A Pedagogical Imperative Richard Rasala College of Computer Science Northeastern University Boston MA 02115

Why Toolkits Are Necessary Input should be powerful and robust Text only is boring... we need graphics Graphics helps students recognize bugs Graphics enables animation and plotting Toolkits hide ugly system/language details

Toolkits Promote Economy Encapsulation leads to more economical student programming Toolkits support windows, graphics, IO, and “model classes” (array, queue,...) Toolkits enable programs that “should be” simple to be built in a simple manner

Toolkits and Pedgogy Toolkits provide “objects that matter”, that is, extended examples of functions and classes that do important work Toolkits are a means of teaching design by example Moral: Do not accept the raw machine or the raw language as it is. Build in software the “machine” you would like to work with.

IO Tools Robust, error-checked IO Automatic arithmetic expression evaluation Integration of IO with control flow via the three fundamental IO models: –Mandatory model –Respond-or-default model –Respond-or-decline model

Window Tools Console window Multiple graphics windows Automatic window refresh as needed Acts in the same manner under Windows 98 and Windows NT despite differences in the behavior of the native API’s

Graphics Tools Fully object-oriented foundation Geometric classes in both short and double precision coordinates Lines, rectangles, ovals, polygons, colors, text in the graphics windows Widget classes allow geometric entities to affect the screen and set persistent state

The Array Class The Array class is a model class illustrating –Templates –Dynamic allocation and automatic growth –Distinct notions of total size and valid size –Error checked operator[] access to array cells –Append and Remove at the array end Array class generalizes to Stack and Queue

On To Demos...

Contact Information