Using Graphics in the First Year of Programming with C++
|
|
|
- Bernice Jackson
- 9 years ago
- Views:
Transcription
1 Using Graphics in the First Year of Programming with C++ Dr. Thomas E. Gibbons CS/CIS Department College of St. Scholastica Duluth, MN Abstract Today, a graphical user interface to computers is assumed, but doing graphical programming with C++ in the first year of a programming class is relatively uncommon. While C++ is the a commonly used programming language, many students feel they are learning in a toy environment when their first year of programming is all text based. At the College of St. Scholastica, we have looked at a number of different methods for introducing a graphical interface into our C++ programming courses. The solution we currently use is two-part. First, we have chosen a textbook by Cohoon and Davis that includes a simple library for graphics programming called EZWindows. Second, we introduce basic Windows programming with Microsoft s Foundation Classes (MFC) programming in the second semester. This paper describes the two different programming environments and how they are used together.
2 Assumptions A wide range of techniques is used in teaching the first two programming courses (CS1 and CS2). Some institutions prefer breadth first while others prefer depth first. Objects early vs. objects late, Java vs. C++. Rather than debate the pedagogy of these different techniques, this paper starts with a set of assumptions. First, CS1 and CS2 constitute a year long sequence of two four-credit courses that focus on programming only. Second, the programming environment will be C++ on a Windows operating system using a Microsoft compiler. The reasons why these assumptions are made will not be discussed; it can be assumed that they are given a priori. Taking into account these assumptions, the question is whether graphics should be used in the introductory C++ programming course. The Challenge Within these constraints, programming a graphical environment is difficult because C++ does not have a default graphics library. For this reason, many introductory programming textbooks and associated courses avoid doing any GUI programming. Instead, these courses rely on text-based programming. The reason for this is related to the difficulty encountered when teaching programming concepts and the time limits placed on a programming course. With time at a premium in programming courses, most instructors have trouble deciding which programming concepts should be omitted in order to devote time to learning a graphical environment. The problem is not helped by the fact that the industry standard GUI library, Microsoft Foundation Classes (MFC), has a very steep learning curve. Simple programs like those common in a CS1 course are difficult to write using MFC, requiring students to follow many interrelated steps and navigate through large program files in order to write their code. The standard Hello World application generated by the MFC wizard includes 10 files containing over 300 lines of code. The challenges faced when teaching MFC in CS1 and CS2 courses often result in first year programming students only writing programs using the console window with simple text input and output. The Value-Minded Student When today s student pays tuition to take a course, the student wants to know that the course will be worth its price. This means that students want to see the practical value a course has to offer and are less willing to accept courses stressing abstract theory over practical application. Given this type of student, it is difficult to teach a year of programming concepts without covering a single program using a graphical interface. Students see the programs they run are based on a GUI interface. It is also not uncommon for students to have contacts with people working in the computer field and these contacts will verify the need for sophisticated graphical programs.
3 It is easy for instructors to argue from their academic backgrounds that they know what is best for students and that theory is preferred over practice. Students often question this, including some alumni who have years of actual programming experience. The move to more student centered learning has added clout to the students concerns. If we adopt a teaching paradigm where students have more control over what they learn, then we must accept it when students demand to know how a course s concepts can be applied. This is not to say that students are so simple minded as to ignore theoretical concepts. In the ever-changing world of technology, students quickly become convinced that they must understand concepts as well as tools, because tools become outdated quickly. It is the balance between theory and practice that is hard to achieve. The argument made here is that while teaching GUI programming in CS1 and CS2 might force you to eliminate some other concepts, the gains outweigh the losses. The Fun of Programming While it is hard to argue with academics about the need to make programming fun, it is an issue that needs to be addressed. One reason for making programming fun is the many students who are not entirely committed to a computer major. It is not uncommon for a single course to turn students off from a major, especially those students who were not entirely committed to the major to begin with. But beyond stemming attrition in our major, many programmers remember fondly some of their first cool programs and for many people these were programs that involved graphics. Maybe it was a program that displayed a fractal image, or a simple game, or a bouncing rectangle. There is something about being able to use a programming language to manipulate rich media that is rewarding to many programmers. One of the best illustrations of the approach of fun examples for learning programming concepts is the 1993 text Oh! Pascal! by Cooper and Clancy. Some instructors still remember sparking a student s curiosity and desire to learn through the examples in this book. Today s textbooks seem to be missing this characteristic, as object orient methods have been piled upon control structures, data types, and relational operators leaving little room for fun in a textbook. It is then up to the instructor to develop his/her own motivating examples using graphics libraries. Options for Graphics in CS1 and CS2 One option for bringing graphics into CS1 and CS2 is to dive straight into MFC. There are many books on MFC programming, but few texts that combine the introduction to programming with MFC. Dietel and Dietel have Getting Started with Microsoft Visual C++ 6 with an Introduction to MFC. This book is intended as a companion to Dietel and Dietel s popular C++ textbook. Since MFC s sharp learning curve makes it use in CS1 courses difficult, Cohoon and Davidson have offer a graphics library called EzWindows for use with their book, C++
4 Program Design: An Introduction to Progamming and Object-Oriented Design. EzWindows provides a simplistic interface to graphics. It provides limited functionality, but allows the use of graphics in the CS1 course. This paper describes using the EzWindows library along with MFC programs as an integrated approach to graphics in the beginning programming courses. But there are other options available not discussed in this paper. These include the Carnegie Mellon Graphics libraries, CMUGraphics 1.5 and Carnegie 2.0. The CMU libraries are similar to the EzWindows library in that they provide a simple interface to graphical objects accessible in the CS1 course. Another library is the SOL Class Library from Antillia.com. This library provides a more sophisticated graphical interface. The interface is similar to MFC in many respects, but may be more approachable to students. Of course there is always Java, but as mentioned earlier, this paper is based on the assumption that C++ will be used to teach the introduction to programming courses. The following sample programs will illustrate how the EzWindows library and Microsoft Foundation Classes can be used in the CS1 and CS2 courses to illustrate specific course concepts. Simple Graphics Programming The EzWindows library is introduced early in the CS1 course with simple programs for drawing geometric shapes in a graphics window. Figure 1 shows a short program that draws a red rectangle on the screen along with a bit map image of a die. It can be used to illustrate objects and how object methods can be called with and without parameters. While there are many other examples of objects that can be used to introduce students to object oriented programming, having visual representations of objects such as rectangles and bitmaps helps some students conceptualize objects better. Having objects tied to graphical representations also suggests to students that object oriented programming is a modern technique worth their attention. The program also makes use of constructors. The constructors are described in further detail in the Cohoon and Davidson text and can be seen in the header files provided with the library. It is common for students to have trouble understanding constructors when they first encounter them. In EzWindows, constructors are used to associate objects with the windows. It is possible to declare two different windows and construct different shapes in each. This can be used as a concrete example of the need for constructors. EzWindows constructors have a number of other required and optional parameters. One problem with EzWindows and its constructors with required parameters is in declaring vectors of shapes. Having required parameters in the constructor makes declaring and initializing vectors of shapes difficult. Later in the course, though, these constructors can be used as examples of methods with default parameter values and examples of polymorphism.
5 #include "bitmap.h" #include "rect.h" // declare a graphics window 5 cm by 10 cm SimpleWindow W("hello", 5.0, 6.0); int ApiMain() { // display the graphics windows W.Open(); // draw a rectangle at coordinates 3,4 RectangleShape R(W, 3,4, Red); R.Draw(); // load image from file, draw it BitMap Die(W); Die.Load("dice3.bmp"); Die.Draw(); } return 0; Figure 1: First EzWindows Program Figure 2: First EzWindows Program Running The first EzWindows program above also illustrates some concepts common to many GUI environments. This provides a bridge for students from text-based programming to using the MFC library, as well as many other libraries. One such bridge is found in the lack of a true main() function in EzWindows programs. EzWindows programs do have an ApiMain() function which is similar to the standard C++ main() function. But this does make students realize that they will not always be writing code in the main() function. This makes the conversion to MFC libraries where no main() functions are visible easier for students.
6 Another aspect ExWindows programs share with MFC programs is a graphical context. In EzWindows this is represented by the SimpleWindow object. This is analogous to the device context in MFC programs. In EzWindows, all graphics objects will refer to the SimpleWindow object, which is analogous to how all graphics in MFC programs refer to the device context. The program shown in Figure 3 uses the MFC library to illustrate the similarities between the EzWindows program and MFC programs. The MFC program would appear in the CS2 class where the MFC library is introduced. The program is generated using MFC AppWizard, which generated most of the code needed. The program displays a bitmap on the screen, but no code is needed, since this is done during development using the picture control. The program has a button tied to the code shown which draws a rectangle in the window. Adding the code for this button requires the MFC ClassWizard, which generates the empty OnDrawButton method. Students must then add the code shown. // code to run when the Draw Rectangle Button is clicked void CMISC_mfc1Dlg::OnDrawButton() { // declare a device context for the windows CClientDC paintdc(this); } // declare a brush and select it CBrush* red_brush = new CBrush(RGB(255,0,0)); paintdc.selectobject(red_brush); // Draw the rectangle. paintdc.rectangle(100, 100, 150, 120); Figure 3: First MFC Program Figure 4: First MFC Program Running There are some differences between the EzWindows and MFC programs. In EzWindows, the rectangle shape is a separate object, while in MFC it is a method of the
7 of the display context. MFC requires the creation of a brush before drawing the rectangle and the brush color must be specified using RGB values, while EzWindows provides a set of named colors. These differences aside, EzWindows provides a nice transition from text program to MFC programming. Students can create graphical programs without having to learn how to use the MFC ClassWizard to assign events to controls. The students also do not have to learn their way through the main files and functions generated by the MFC application wizard. Event Driven Programming In our curriculum, students taking CS1 and CS2 have already been introduced to event driven programming. In their freshman year, students are introduced to programming in a three-week portion of our Introduction to Information Systems course students take CS1 their sophomore year. Currently this introduction to programming is done using Visual Basic and, while the students get a very limited exposure to programming, one concept they do generally come away with is simple event programming. In Visual Basic this is exemplified through mouse click events on command buttons. Students learn to create command buttons on their VB forms and write simple code that executes when those buttons are clicked. Students in CS1 expect to do similar event driven programming in an environment similar to Visual Basic. The EzWindows and MFC libraries both provide opportunities for this. Handling mouse clicks is one of the few events the EzWindows library provides. This is done by creating a function to act as an event handler and then registering the event handler using the SetMouseClickCallback method. The program shown in Figure 5 shows an example of this. Once an event handler is registered, the student has code that will run whenever the user clicks the mouse within the window. One point to note about the mouse events in EzWindows is that the events are associated with the graphics window and not with the objects in the window. This is different from Visual Basic and MFC where the mouse click events are often associated with buttons or other objects on a window. It is possible to associate mouse clicks with the graphics window in both these environments, and Figure 7 shows an example of an MFC method that handles the mouse clicks in a window.
8 #include <iostream> using namespace std; #include "wobject.h" // declare a graphics window 5 cm by 6 cm SimpleWindow W("hello", 5.0, 6.0); // Routine for handling mouse click events int do_click(const Position &p) { // display the position the user clicked in the text window cout << "Mouse pressed at " << p.getxdistance() << p.getydistance()<< endl; return 1; } int ApiMain() { // display the graphics windows W.Open(); // Declare what function we handle the mouse click events W.SetMouseClickCallback(do_click); } return 0; Figure 5: Event Drive EzWindows Program Figure 6: Event Drive EzWindows Program Running Both the EzWindows example and the MFC example display the coordinates of the mouse click. This introduces the Position object from EzWindows and its analogous object, Cpoint, in the MFC libraries. Both objects store the coordinates for a location and provide methods for accessing these coordinates.
9 These examples also illustrate a difference between EzWindows and MFC programs. EzWindows programs create a graphics window along with the normal console window. This allows students to continue using standard input and output statements in EzWindows programs, as illustrated by the output stream used in the program shown in Figure 5. Input and output are more difficult in MFC programs, where students must use MFC objects for their I/O needs. This is often not straightforward and can provide a significant roadblock to the use of MFC early in CS1 courses. The example shown in Figure 7 displays output on the window s title bar as one simplified approach. void CMISC_mfc2Dlg::OnLButtonDown(UINT nflags, CPoint point) { // added by student CString message; message.format("button pressed at %d, %d", point.x, point.y); SetWindowText(message); } // added by class wizard CDialog::OnLButtonDown(nFlags, point); Figure 7: Event Driven MFC Program Figure 8: Event Driven MFC Program Running Conclusion While the graphical environments for C++ programming are not without flaws, their use can be structured so that students can benefit from their use. Some might argue that precious time in a programming class is lost by learning a GUI library and that this lost time translates into omitted programming concepts. Our experience is that the time spent on learning a GUI library is time spent on some of the more important programming concepts.
10 References Cohoon, Janes P. and Davidson, Jack W. (1999), C++ Program Design: An Introduction to Progamming and Object-Oriented Design. Cooper, Doug and Clancy, Michael (1993), Oh! Pascal! 3 rd Ed. Deitel, Harvey M. (2000), Getting Started with Microsoft Visual C++ 6 with an Introduction to MFC. Rasala, Richard (2000), Toolkits in First Year Computer Science: A Pedagogical Imperative, The Proceedings of the Thirty-first SIGCSE Technical Symposium on Computer Science Education.
Appendix K Introduction to Microsoft Visual C++ 6.0
Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):
Creating a Simple Visual C++ Program
CPS 150 Lab 1 Name Logging in: Creating a Simple Visual C++ Program 1. Once you have signed for a CPS computer account, use the login ID and the password password (lower case) to log in to the system.
Appendix M: Introduction to Microsoft Visual C++ 2010 Express Edition
Appendix M: Introduction to Microsoft Visual C++ 2010 Express Edition This book may be ordered from Addison-Wesley in a value pack that includes Microsoft Visual C++ 2010 Express Edition. Visual C++ 2010
Running your first Linux Program
Running your first Linux Program This document describes how edit, compile, link, and run your first linux program using: - Gnome a nice graphical user interface desktop that runs on top of X- Windows
A Comparison of Programming Languages for Graphical User Interface Programming
University of Tennessee, Knoxville Trace: Tennessee Research and Creative Exchange University of Tennessee Honors Thesis Projects University of Tennessee Honors Program 4-2002 A Comparison of Programming
Visual Studio 2008 Express Editions
Visual Studio 2008 Express Editions Visual Studio 2008 Installation Instructions Burning a Visual Studio 2008 Express Editions DVD Download (http://www.microsoft.com/express/download/) the Visual Studio
PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?
1. Distinguish & and && operators. PART-A Questions 2. How does an enumerated statement differ from a typedef statement? 3. What are the various members of a class? 4. Who can access the protected members
An Incomplete C++ Primer. University of Wyoming MA 5310
An Incomplete C++ Primer University of Wyoming MA 5310 Professor Craig C. Douglas http://www.mgnet.org/~douglas/classes/na-sc/notes/c++primer.pdf C++ is a legacy programming language, as is other languages
RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science
I. Basic Course Information RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE CISY 105 Foundations of Computer Science A. Course Number and Title: CISY-105, Foundations of Computer Science B. New
MS Visual C++ Introduction. Quick Introduction. A1 Visual C++
MS Visual C++ Introduction 1 Quick Introduction The following pages provide a quick tutorial on using Microsoft Visual C++ 6.0 to produce a small project. There should be no major differences if you are
Source Code Translation
Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven
Lab 2 - CMPS 1043, Computer Science I Introduction to File Input/Output (I/O) Projects and Solutions (C++)
Lab 2 - CMPS 1043, Computer Science I Introduction to File Input/Output (I/O) Projects and Solutions (C++) (Revised from http://msdn.microsoft.com/en-us/library/bb384842.aspx) * Keep this information to
Getting Started with Command Prompts
Getting Started with Command Prompts Updated March, 2013 Some courses such as TeenCoder : Java Programming will ask the student to perform tasks from a command prompt (Windows) or Terminal window (Mac
CAPTURING A VM700T SCREEN DISPLAY with VMTWIN
CAPTURING A VM700T SCREEN DISPLAY with VMTWIN The basic steps for doing a capture of a waveform (or other graphic display types) from the VM700T, using the VMTWIN software, is discussed and illustrated
McGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0
1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level
Objects From the Beginning - With GUIs
Objects From the Beginning - With GUIs Viera K. Proulx College of Computer Science Northeastern University Boston, MA 02115 1-617-373-2225 vkp @ccs.neu.edu Jeff Raab College of Computer Science Northeastern
C++ Programming Language
C++ Programming Language Lecturer: Yuri Nefedov 7th and 8th semesters Lectures: 34 hours (7th semester); 32 hours (8th semester). Seminars: 34 hours (7th semester); 32 hours (8th semester). Course abstract
Sequential Program Execution
Sequential Program Execution Quick Start Compile step once always g++ -o Realtor1 Realtor1.cpp mkdir labs cd labs Execute step mkdir 1 Realtor1 cd 1 cp../0/realtor.cpp Realtor1.cpp Submit step cp /samples/csc/155/labs/1/*.
Deitel Dive-Into Series: Dive Into Microsoft Visual C++ 6
1 Deitel Dive-Into Series: Dive Into Microsoft Visual C++ 6 Objectives To understand the relationship between C++ and Visual C++. To be able to use Visual C++ to create, compile and execute C++ console
Programming in Access VBA
PART I Programming in Access VBA In this part, you will learn all about how Visual Basic for Applications (VBA) works for Access 2010. A number of new VBA features have been incorporated into the 2010
Visual C++ 2010 Tutorial
Visual C++ 2010 Tutorial Fall, 2011 Table of Contents Page No Introduction ------------------------------------------------------------------- 2 Single file program demo --------- -----------------------------------------
Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas
CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage
Part 1 Foundations of object orientation
OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed
A deeper look at Inline functions
A deeper look at Inline functions I think it s safe to say that all Overload readers know what C++ inline functions are. When we declare a function or member function as inline we are trying to avoid the
TRAFFIC LIGHT: A PEDAGOGICAL EXPLORATION
TAFFIC LIGHT: A PEDAGOGICAL EXPLOATION THOUGH A DESIGN SPACE Viera K. Proulx. Jeff aab, ichard asala College of Computer Science Northeastern University Boston, MA 02115 617-373-2462 [email protected], [email protected],
Some of the Choices. If you want to work on your own PC with a C++ compiler, rather than being logged in remotely to the PSU systems
Graphics and C++ This term you can create programs on UNIX or you can create programs using any C++ compiler (on your own computer). There is open source software available for free, so you don t have
Flash Tutorial Part I
Flash Tutorial Part I This tutorial is intended to give you a basic overview of how you can use Flash for web-based projects; it doesn t contain extensive step-by-step instructions and is therefore not
Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.
Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to
Overview of Microsoft Office Word 2007
Overview of Microsoft Office What Is Word Processing? Office is a word processing software application whose purpose is to help you create any type of written communication. A word processor can be used
Windows Presentation Foundation (WPF) User Interfaces
Windows Presentation Foundation (WPF) User Interfaces Rob Miles Department of Computer Science 29c 08120 Programming 2 Design Style and programming As programmers we probably start of just worrying about
Basics of I/O Streams and File I/O
Basics of This is like a cheat sheet for file I/O in C++. It summarizes the steps you must take to do basic I/O to and from files, with only a tiny bit of explanation. It is not a replacement for reading
TEACHING INTRODUCTORY COMPUTER GRAPHICS WITH THE PROCESSING LANGUAGE
TEACHING INTRODUCTORY COMPUTER GRAPHICS WITH THE PROCESSING LANGUAGE Dino Schweitzer, Jeff Boleng, Paul Graham United States Air Force Academy, CO 80840 [email protected] ABSTRACT Different approaches
KITES TECHNOLOGY COURSE MODULE (C, C++, DS)
KITES TECHNOLOGY 360 Degree Solution www.kitestechnology.com/academy.php [email protected] [email protected] Contact: - 8961334776 9433759247 9830639522.NET JAVA WEB DESIGN PHP SQL, PL/SQL
3 IDE (Integrated Development Environment)
Visual C++ 6.0 Guide Part I 1 Introduction Microsoft Visual C++ is a software application used to write other applications in C++/C. It is a member of the Microsoft Visual Studio development tools suite,
Introduction to Programming System Design. CSCI 455x (4 Units)
Introduction to Programming System Design CSCI 455x (4 Units) Description This course covers programming in Java and C++. Topics include review of basic programming concepts such as control structures,
Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum
Integrating the C++ Standard Template Library Into the Undergraduate Computer Science Curriculum James P. Kelsh [email protected] Roger Y. Lee [email protected] Department of Computer Science Central
William Paterson University Department of Computer Science. Microsoft Visual C++.NET Tutorial Spring 2006 Release 1.0
William Paterson University Department of Computer Science Microsoft Visual C++.NET Tutorial Spring 2006 Release 1.0 Microsoft Visual C++.NET Tutorial Spring 2006 Release 1.0 I. Introduction This tutorial
Introduction to C++ Introduction to C++ Week 7 Dr Alex Martin 2013 Slide 1
Introduction to C++ Introduction to C++ Week 7 Dr Alex Martin 2013 Slide 1 Introduction to Classes Classes as user-defined types We have seen that C++ provides a fairly large set of built-in types. e.g
The VB development environment
2 The VB development environment This chapter explains: l how to create a VB project; l how to manipulate controls and their properties at design-time; l how to run a program; l how to handle a button-click
This section provides a 'Quickstart' guide to using TestDriven.NET any version of Microsoft Visual Studio.NET
Quickstart TestDriven.NET - Quickstart TestDriven.NET Quickstart Introduction Installing Running Tests Ad-hoc Tests Test Output Test With... Test Projects Aborting Stopping Introduction This section provides
Why have we chosen to build our main websites in this fashion?
MINES CONTENT MANAGEMENT SYSTEM WHY USE A CMS? A MINES CMS OVERVIEW The Colorado School of Mines has two main campus websites: http://www.mines.edu (our outward-facing marketing site for prospective students
Comp151. Definitions & Declarations
Comp151 Definitions & Declarations Example: Definition /* reverse_printcpp */ #include #include using namespace std; int global_var = 23; // global variable definition void reverse_print(const
How To Teach Object Oriented Programming At An Introductory Level Course
149 TEACHING OBJECT ORIENTED PROGRAMMING AT THE INTRODUCTORY LEVEL Mehmet C. OKUR * ABSTRACT Teaching object oriented programming has become a rapidly expanding preference at various educational environments.
Using Visual Logic with Pseudocode to Teach an Introductory Programming Course
Using Visual Logic with Pseudocode to Teach an Introductory Programming Course G. Cooper, PhD Engineering and Information Sciences, Devry University, Downers Grove, IL, USA Abstract - Introductory programming
Lines & Planes. Packages: linalg, plots. Commands: evalm, spacecurve, plot3d, display, solve, implicitplot, dotprod, seq, implicitplot3d.
Lines & Planes Introduction and Goals: This lab is simply to give you some practice with plotting straight lines and planes and how to do some basic problem solving with them. So the exercises will be
Application of Function Composition
Math Objectives Given functions f and g, the student will be able to determine the domain and range of each as well as the composite functions defined by f ( g( x )) and g( f ( x )). Students will interpret
Open_polyline. Display Engine. window. Rectangle. draw() attach() draw() attach() draw()
Chapter 13 Graphics classes Bjarne Stroustrup www.stroustrup.com/programming g Abstract Chapter 12 demonstrates how to create simple windows and display basic shapes: square, circle, triangle, and ellipse;
C++ INTERVIEW QUESTIONS
C++ INTERVIEW QUESTIONS http://www.tutorialspoint.com/cplusplus/cpp_interview_questions.htm Copyright tutorialspoint.com Dear readers, these C++ Interview Questions have been designed specially to get
Formulas, Functions and Charts
Formulas, Functions and Charts :: 167 8 Formulas, Functions and Charts 8.1 INTRODUCTION In this leson you can enter formula and functions and perform mathematical calcualtions. You will also be able to
Designing a Graphical User Interface
Designing a Graphical User Interface 1 Designing a Graphical User Interface James Hunter Michigan State University ECE 480 Design Team 6 5 April 2013 Summary The purpose of this application note is to
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
Computer Programming C++ Classes and Objects 15 th Lecture
Computer Programming C++ Classes and Objects 15 th Lecture 엄현상 (Eom, Hyeonsang) School of Computer Science and Engineering Seoul National University Copyrights 2013 Eom, Hyeonsang All Rights Reserved Outline
Course MS10975A Introduction to Programming. Length: 5 Days
3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: [email protected] Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days
CS 106 Introduction to Computer Science I
CS 106 Introduction to Computer Science I 01 / 21 / 2014 Instructor: Michael Eckmann Today s Topics Introduction Homework assignment Review the syllabus Review the policies on academic dishonesty and improper
Computer Training. NR Computer Learning Center 1835 W. Orangewood Ave #200 Orange CA 92868
Computer Training NR Computer Learning Center 1835 W. Orangewood Ave, #200 Orange, CA 92868 (714) 505-3475 www.nrclc.com NR Computer Learning Center 1835 W. Orangewood Ave #200 Orange CA 92868 (714) 505-3475
Lecture 2 Notes: Flow of Control
6.096 Introduction to C++ January, 2011 Massachusetts Institute of Technology John Marrero Lecture 2 Notes: Flow of Control 1 Motivation Normally, a program executes statements from first to last. The
The Online Grade Book A Case Study in Learning about Object-Oriented Database Technology
The Online Grade Book A Case Study in Learning about Object-Oriented Database Technology Charles R. Moen, M.S. University of Houston - Clear Lake [email protected] Morris M. Liaw, Ph.D. University of Houston
Math Games For Skills and Concepts
Math Games p.1 Math Games For Skills and Concepts Original material 2001-2006, John Golden, GVSU permission granted for educational use Other material copyright: Investigations in Number, Data and Space,
Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is
Multichoice Quetions 1. Atributes a. are listed in the second part of the class box b. its time is preceded by a colon. c. its default value is preceded by an equal sign d. its name has undereline 2. Associations
Modeling Tools Objectives. Sweeps and Lofts. Loft Feature
Modeling Tools Objectives When you complete this module, you will be able to recognize the more advanced modeling tools in Solid Edge as well as the tools that require more input than typical Solid Edge
1 Intel Smart Connect Technology Installation Guide:
1 Intel Smart Connect Technology Installation Guide: 1.1 System Requirements The following are required on a system: System BIOS supporting and enabled for Intel Smart Connect Technology Microsoft* Windows*
14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë
14.1 bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë bî~äì~íáåö=oéñäéåíáçå=ñçê=emi=rkfui=~åç=lééåsjp=eçëíë This guide walks you quickly through key Reflection features. It covers: Getting Connected
Excel 2003 PivotTables Summarizing, Analyzing, and Presenting Your Data
The Company Rocks Excel 2003 PivotTables Summarizing, Analyzing, and Presenting Step-by-step instructions to accompany video lessons Danny Rocks 5/19/2011 Creating PivotTables in Excel 2003 PivotTables
Syllabus for CS 134 Java Programming
- Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.
Website Accessibility Under Title II of the ADA
Chapter 5 Website Accessibility Under Title II of the ADA In this chapter, you will learn how the nondiscrimination requirements of Title II of 1 the ADA apply to state and local government websites. Chapter
Petrel TIPS&TRICKS from SCM
Petrel TIPS&TRICKS from SCM Knowledge Worth Sharing Building Montages in Petrel Most Petrel projects require display maps to be made for presentations; either for partners or peers. This TIPS&TRICKS provides
Asset Track Getting Started Guide. An Introduction to Asset Track
Asset Track Getting Started Guide An Introduction to Asset Track Contents Introducing Asset Track... 3 Overview... 3 A Quick Start... 6 Quick Start Option 1... 6 Getting to Configuration... 7 Changing
Spiel. Connect to people by sharing stories through your favorite discoveries
Spiel Connect to people by sharing stories through your favorite discoveries Addison Leong Joanne Jang Katherine Liu SunMi Lee Development & user Development & user Design & product Development & testing
Introduction to Windows
Introduction to Windows Today s Class Learn the Windows environment Identify the different parts of a window Understand how to manipulate icons, windows and other objects Work on the Introduction to Windows
PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.
PHP Code Design PHP is a server-side, open-source, HTML-embedded scripting language used to drive many of the world s most popular web sites. All major web servers support PHP enabling normal HMTL pages
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System
Developing an ODBC C++ Client with MySQL Database
Developing an ODBC C++ Client with MySQL Database Author: Rajinder Yadav Date: Aug 21, 2007 Web: http://devmentor.org Email: [email protected] Assumptions I am going to assume you already know how
QUICK REFERENCE: ADOBE ILLUSTRATOR CS2 AND CS3 SECTION 1: CS3 TOOL BOX: PAGE 2 SECTION 2: CS2 TOOL BOX: PAGE 11
QUICK REFERENCE, ADOBE ILLUSTRATOR, PAGE 1 QUICK REFERENCE: ADOBE ILLUSTRATOR CS2 AND CS3 CS2 SECTION 1: CS3 TOOL BOX: PAGE 2 SECTION 2: CS2 TOOL BOX: PAGE 11 SECTION 3: GENERAL CONCEPTS: PAGE 14 SELECTING
Manage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
Quick Start Guide. Microsoft Publisher 2013 looks different from previous versions, so we created this guide to help you minimize the learning curve.
Quick Start Guide Microsoft Publisher 2013 looks different from previous versions, so we created this guide to help you minimize the learning curve. Quick Access Toolbar Add your favorite commands to the
mouse (or the option key on Macintosh) and move the mouse. You should see that you are able to zoom into and out of the scene.
A Ball in a Box 1 1 Overview VPython is a programming language that is easy to learn and is well suited to creating 3D interactive models of physical systems. VPython has three components that you will
CREATING A GREAT BANNER AD
CREATING A GREAT BANNER AD We ve put together a guide on banner creation and optimization. This guide will cover how to create a great banner ad for your media buying campaigns. By doing this you can create
COSC 181 Foundations of Computer Programming. Class 6
COSC 181 Foundations of Computer Programming Class 6 Defining the GradeBook Class Line 9 17 //GradeBook class definition class GradeBook { public: //function that displays a message void displaymessage()
What's New in BarTender 2016
What's New in BarTender 2016 WHITE PAPER Contents Introduction 3 64-bit BarTender Installation 3 Data Entry Forms 3 BarTender Integration Builder 3 BarTender Print Portal 3 Other Upgrades 3 64-bit BarTender
0 Introduction to Data Analysis Using an Excel Spreadsheet
Experiment 0 Introduction to Data Analysis Using an Excel Spreadsheet I. Purpose The purpose of this introductory lab is to teach you a few basic things about how to use an EXCEL 2010 spreadsheet to do
Introduction to Object-Oriented Programming
Introduction to Object-Oriented Programming Programs and Methods Christopher Simpkins [email protected] CS 1331 (Georgia Tech) Programs and Methods 1 / 8 The Anatomy of a Java Program It is customary
Multi-Touch Ring Encoder Software Development Kit User s Guide
Multi-Touch Ring Encoder Software Development Kit User s Guide v2.0 Bulletin #1198 561 Hillgrove Avenue LaGrange, IL 60525 Phone: (708) 354-1040 Fax: (708) 354-2820 E-mail: [email protected] On the
White Paper: 5GL RAD Development
White Paper: 5GL RAD Development After 2.5 hours of training, subjects reduced their development time by 60-90% A Study By: 326 Market Street Harrisburg, PA 17101 Luis Paris, Ph.D. Associate Professor
FREE FALL. Introduction. Reference Young and Freedman, University Physics, 12 th Edition: Chapter 2, section 2.5
Physics 161 FREE FALL Introduction This experiment is designed to study the motion of an object that is accelerated by the force of gravity. It also serves as an introduction to the data analysis capabilities
Using Microsoft Visual C++ Developer Studio
Using Microsoft Visual C++ Developer Studio Microsoft Visual C++ Developer Studio IDE See notes & example programs from CS-360 URLs: http://www.cs.binghamton.edu/~reckert/360/1_f01_fin.pdf http://www.cs.binghamton.edu/~reckert/360/360notes.html
LESSON 7: IMPORTING AND VECTORIZING A BITMAP IMAGE
LESSON 7: IMPORTING AND VECTORIZING A BITMAP IMAGE In this lesson we ll learn how to import a bitmap logo, transform it into a vector and perform some editing on the vector to clean it up. The concepts
Test Specification. Introduction
Test Specification Introduction Goals and Objectives GameForge is a graphical tool used to aid in the design and creation of video games. A user with little or no experience with Microsoft DirectX and/or
CISC 181 Project 3 Designing Classes for Bank Accounts
CISC 181 Project 3 Designing Classes for Bank Accounts Code Due: On or before 12 Midnight, Monday, Dec 8; hardcopy due at beginning of lecture, Tues, Dec 9 What You Need to Know This project is based on
CATIA Basic Concepts TABLE OF CONTENTS
TABLE OF CONTENTS Introduction...1 Manual Format...2 Log on/off procedures for Windows...3 To log on...3 To logoff...7 Assembly Design Screen...8 Part Design Screen...9 Pull-down Menus...10 Start...10
Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
Chapter 9 Delegates and Events
Chapter 9 Delegates and Events Two language features are central to the use of the.net FCL. We have been using both delegates and events in the topics we have discussed so far, but I haven t explored the
Chapter 10: Multimedia and the Web
Understanding Computers Today and Tomorrow 12 th Edition Chapter 10: Multimedia and the Web Learning Objectives Define Web-based multimedia and list some advantages and disadvantages of using multimedia.
C++ Input/Output: Streams
C++ Input/Output: Streams 1 The basic data type for I/O in C++ is the stream. C++ incorporates a complex hierarchy of stream types. The most basic stream types are the standard input/output streams: istream
The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
Tutorial Creating Vector Graphics
Tutorial Creating Vector Graphics This tutorial will guide you through the creation of your own vector graphic and show you how best to meet the specific criteria for our print process. We recommend designing
