Developing Instructional Products with Authorware 7 Richard Van Eck
Transcription
Developing Instructional Products with Authorware 7 Richard Van Eck
Developing Instructional Products with Authorware 7 Richard Van Eck University of Memphis Copyright 2002 All rights reserved Van Eck, TOC Through Chapter 11 Table of Contents Developing Instructional Products with Authorware 7 .....................................i Table of Contents .................................................................................................i Preface .............................................................................................................viii Welcome ......................................................................................................viii About Me .....................................................................................................viii Who this book is for ........................................................................................ x What this book is NOT ................................................................................... xi How to use this book .....................................................................................xii Heads Up .................................................................................................. xiv Tip/Power Tip........................................................................................... xiv Case Study................................................................................................. xv Making the Connection .............................................................................. xv Summary & Exercises................................................................................ xv The Website.................................................................................................. xvi Chapter 1: What is Authorware? .......................................................................... 1 Overview ......................................................................................................... 1 Objectives........................................................................................................ 2 What is Authorware? ....................................................................................... 2 Why Authorware and Not __________? .......................................................... 7 Card-Based Metaphors................................................................................. 7 Cast/Timeline/Stage Metaphor..................................................................... 8 Icon & Flowline Metaphor........................................................................... 8 How Does Authorware Think?....................................................................... 10 The Flowline.............................................................................................. 10 Rules of the “Road” ................................................................................... 12 The Interface ................................................................................................. 14 Description .................................................................................................... 16 Presentation & Design Windows................................................................ 18 Pull-Down Menus and Buttons .................................................................. 18 What Else Will I Need? ................................................................................. 19 Image Editors............................................................................................. 19 Sound Editors ............................................................................................ 20 Movie Editors ............................................................................................ 21 Animation Tools ........................................................................................ 22 Management Tools .................................................................................... 23 Case Study..................................................................................................... 24 Summary ....................................................................................................... 27 Exercises ....................................................................................................... 29 Chapter 2: Pre-Planning the Project ................................................................... 31 Overview ....................................................................................................... 31 Objectives...................................................................................................... 32 Is CBT the Right Choice? .............................................................................. 32 Is the content stable?.................................................................................. 33 i Van Eck, TOC Through Chapter 11 How much money and time are available? ................................................. 33 Does this project require CBI/CBT’s unique strengths, characteristics, and capabilities?........................................................................................................... 33 Do my learners possess the necessary computing skills? ............................ 34 Do my learners have access to computers?................................................. 34 How do my learners feel about computers? ................................................ 34 Learning a la Mode........................................................................................ 34 Tutorials .................................................................................................... 35 Exploratory learning environments (ELEs) ................................................ 36 Simulations................................................................................................ 36 Games........................................................................................................ 38 Simulation Games...................................................................................... 40 Learner Preferences and Characteristics......................................................... 41 Age and gender.......................................................................................... 41 Cognitive styles ......................................................................................... 43 Field Independent/Dependent................................................................. 43 Leveling/Sharpening. ............................................................................. 43 Visual/Haptic Perceptual Style. .............................................................. 44 Impulsive/Reflective Cognitive Tempo. ................................................. 44 Learning styles........................................................................................... 45 Passive/Active........................................................................................ 45 Accessibility .................................................................................................. 45 Auditory considerations. ............................................................................ 46 Visual considerations. ................................................................................ 46 Physical considerations. ............................................................................. 47 Operating System Considerations .................................................................. 47 Delivery Considerations................................................................................. 49 Internet, Intranet, CD-ROM, Hard Drive.................................................... 50 Media Considerations ................................................................................ 53 Graphics................................................................................................. 53 Sound..................................................................................................... 54 Video. .................................................................................................... 56 Fonts.......................................................................................................... 57 Color Palettes & System Colors ................................................................. 59 Designing the Interface .................................................................................. 59 Metaphor ................................................................................................... 60 Screen design principles ................................................................................ 62 Light and Screen Design ............................................................................ 62 Backgrounds and Borders .......................................................................... 64 A place for everything, and everything in its place ..................................... 65 Consistency ............................................................................................... 67 Text and readability ................................................................................... 67 Usability .................................................................................................... 69 Case Study..................................................................................................... 70 Summary ....................................................................................................... 71 Exercises ....................................................................................................... 73 ii Van Eck, TOC Through Chapter 11 Chapter 3: Planning & Managing the Instructional Title .................................... 74 Overview ....................................................................................................... 74 Objectives...................................................................................................... 75 Establishing a Timeline.................................................................................. 76 Goals & Objectives........................................................................................ 77 Treatment ...................................................................................................... 81 What is a treatment?................................................................................... 82 What goes into a treatment? ....................................................................... 82 Storyboards ................................................................................................... 90 Title, Date, and Branch Point ..................................................................... 92 Branch Point Information........................................................................... 94 Graphics/Animation/Video ........................................................................ 94 Audio......................................................................................................... 94 Interactivity ............................................................................................... 94 Text ........................................................................................................... 95 Scene Sketch.............................................................................................. 95 Notes to Programmer ................................................................................. 96 Style Sheets ................................................................................................... 96 Clarity, Brevity, & Usability ...................................................................... 97 Text Styles................................................................................................. 98 Colors ........................................................................................................ 98 Quality Control............................................................................................ 100 Working as a Team...................................................................................... 103 Client Interaction ......................................................................................... 106 The Wow Factor ...................................................................................... 107 Sign-offs and Documentation................................................................... 108 White Paper ................................................................................................. 109 Variable List................................................................................................ 111 Media Use and Copyright Issues.................................................................. 111 Case Study................................................................................................... 115 Summary ..................................................................................................... 117 Exercises ..................................................................................................... 118 Chapter 4: Beginning with Authorware............................................................ 119 Overview ..................................................................................................... 119 Objectives.................................................................................................... 119 Getting Started with Your Program.............................................................. 120 Setting File Properties.............................................................................. 120 Background Color.................................................................................... 122 Size.......................................................................................................... 123 Screen Placement..................................................................................... 125 Title Bar .................................................................................................. 126 Menu Bar................................................................................................. 127 Building Font Styles .................................................................................... 127 Color Palette ............................................................................................ 131 Adding Text & Shapes................................................................................. 132 The Toolbox ............................................................................................ 133 iii Van Eck, TOC Through Chapter 11 Adding Text/Text Tool ................................................................................ 135 Font Styles............................................................................................... 137 Scrolling vs. Non-Scrolling...................................................................... 138 Anti-Aliasing ........................................................................................... 139 The RTF Objects Editor............................................................................... 140 Importing Graphics...................................................................................... 141 Aligning Objects.......................................................................................... 143 Aligning Objects Within icons ................................................................. 143 Aligning Object Between icons................................................................ 144 Inspectors .................................................................................................... 145 Modes...................................................................................................... 146 Colors ...................................................................................................... 148 Controlling the Flow.................................................................................... 150 Setting Transitions ................................................................................... 151 The Wait Icon .......................................................................................... 155 Working with Libraries................................................................................ 156 Case Study................................................................................................... 158 Summary ..................................................................................................... 159 Exercises ..................................................................................................... 160 Overview ..................................................................................................... 163 Objectives.................................................................................................... 164 Types of Animation ..................................................................................... 164 Basic animation ........................................................................................... 165 Display .................................................................................................... 165 Animation................................................................................................ 166 Run.......................................................................................................... 167 Test.......................................................................................................... 167 Dialog box (motion tab) ........................................................................... 168 Adding media, part I .................................................................................... 170 Sound ...................................................................................................... 170 Formats................................................................................................ 171 Voxware .............................................................................................. 172 Loading sound. .................................................................................... 173 A final note about sound .......................................................................... 178 Video....................................................................................................... 180 Formats & CoDecs............................................................................... 183 Size and storage. .................................................................................. 186 Loading video. ..................................................................................... 187 Controlling video. ................................................................................ 189 A Final Word on Video............................................................................ 191 Case Study................................................................................................... 192 Summary ..................................................................................................... 195 Making the Connection................................................................................ 196 Presenting Information............................................................................. 197 Guiding the Learner ................................................................................. 198 Learner control ........................................................................................ 199 iv Van Eck, TOC Through Chapter 11 Motivation ............................................................................................... 200 Exercises ..................................................................................................... 201 References ................................................................................................... 205 Chapter 6: The Basic Interaction...................................................................... 206 Overview ..................................................................................................... 206 Objectives.................................................................................................... 208 Terminology ................................................................................................ 208 Anatomy of an Interaction ........................................................................... 209 Display (DIRECT)................................................................................... 216 Interaction (DIRECT) .............................................................................. 217 Responses (DIRECT)............................................................................... 218 Customizing Responses—an overview................................................. 222 Buttons. ............................................................................................... 226 Hotspots............................................................................................... 229 Hot Objects. ......................................................................................... 232 Pulldown Menus. ................................................................................. 233 Text Entry Responses........................................................................... 235 Tries Limit/Time Limit. ....................................................................... 238 Evaluate (DIRECT) ................................................................................. 240 Control (DIRECT) ................................................................................... 241 Track (DIRECT)...................................................................................... 242 Feedback & the Teachable Moment ............................................................. 243 Summary ..................................................................................................... 248 Making the Connection................................................................................ 250 Practice and Guidance.............................................................................. 250 Practice and Transfer ............................................................................... 253 Assessment .............................................................................................. 254 Motivation ............................................................................................... 255 Exercises ..................................................................................................... 256 Chapter 7: frameworks .................................................................................... 262 Overview ..................................................................................................... 262 Objectives.................................................................................................... 262 Why use frameworks? ................................................................................. 263 Anatomy of a framework ............................................................................. 264 Navigation icons.......................................................................................... 268 Recent...................................................................................................... 269 Nearby ..................................................................................................... 270 Anywhere ................................................................................................ 271 Jump to Page............................................................................................ 273 Call & Return .......................................................................................... 273 Specifying transitions between pages ....................................................... 276 Adding common elements to a framework ................................................... 277 Lining up elements on pages .................................................................... 277 Adding automatic page numbers to a framework...................................... 278 Importing rtf files......................................................................................... 282 Case Study: Building a Glossary.................................................................. 288 v Van Eck, TOC Through Chapter 11 Making the Connection................................................................................ 293 Presenting Information............................................................................. 293 Guidance ................................................................................................. 295 Assessment .............................................................................................. 296 Summary ..................................................................................................... 296 Exercises ..................................................................................................... 298 References ................................................................................................... 300 Chapter 8: Publishing Your Program ............................................................... 301 Overview ..................................................................................................... 301 Objectives.................................................................................................... 302 Save & Compact.......................................................................................... 303 Publishing.................................................................................................... 305 Formats.................................................................................................... 305 Web Player Tab ....................................................................................... 307 For Web Player Tab ................................................................................. 309 Web Page Tab.......................................................................................... 312 Files Tab.................................................................................................. 316 Making the Connection................................................................................ 318 What are you delivering? ......................................................................... 319 Where & when will the learning take place? ............................................ 320 How stable is the content?........................................................................ 321 Summary ..................................................................................................... 321 The Easy Way ............................................................................................. 322 For CD-ROM/Hard Drive ........................................................................ 322 Formats................................................................................................ 322 Package................................................................................................ 322 Files ..................................................................................................... 322 For Web................................................................................................... 323 Formats................................................................................................ 323 Package................................................................................................ 323 For Web Player .................................................................................... 323 Web Page............................................................................................. 323 Files ..................................................................................................... 323 Exercises ..................................................................................................... 323 Chapter 9: Variables, Functions, & Lists.......................................................... 325 Overview ..................................................................................................... 325 Objectives.................................................................................................... 326 Introduction ................................................................................................. 326 Variables ..................................................................................................... 327 Defined.................................................................................................... 327 Functions: Overview.................................................................................... 337 Functions & Variables ................................................................................. 337 WriteExtFile, ReadExtFile, & AppendExtFile.......................................... 338 GetNumber, GetLine, & GetWord ........................................................... 341 AddLinear, AddProperty, DeleteAtIndex, etc........................................... 344 Functions & Navigation............................................................................... 349 vi Van Eck, TOC Through Chapter 11 The GoTo Function.................................................................................. 349 JumpFile, JumpFileReturn, JumpOut, JumpOutReturn............................. 351 Scripting ...................................................................................................... 354 The Calculation Window ......................................................................... 354 Creating Custom Variables ...................................................................... 364 Case Study................................................................................................... 368 Summary ..................................................................................................... 368 Exercises ..................................................................................................... 369 Chapter 10: Scripting....................................................................................... 373 Overview ..................................................................................................... 373 Objectives.................................................................................................... 373 Introduction ................................................................................................. 374 Scripting with Variables .............................................................................. 374 Setting & evaluating variables.................................................................. 375 Operators, If-then statements, and loops................................................... 376 Scripting with Functions .......................................................................... 392 Scripting with Linear & Property Lists..................................................... 393 Making the Connection................................................................................ 400 Time ........................................................................................................ 400 Accuracy ................................................................................................. 401 Path ......................................................................................................... 402 Case Study................................................................................................... 403 Summary ..................................................................................................... 408 Exercises ..................................................................................................... 409 Chapter 11: Knowledge Objects, BOTS, and Commands................................. 412 Overview ..................................................................................................... 412 Objectives.................................................................................................... 412 KOs, Commands, & BOTS, Defined............................................................ 413 BOTS ...................................................................................................... 413 BOTS & Functions/Variables................................................................... 416 BOTS & Properties.................................................................................. 418 Commands................................................................................................... 420 To Package & Access a Command............................................................... 423 Knowledge Objects...................................................................................... 424 Summary ..................................................................................................... 426 Exercises ..................................................................................................... 428 vii Van Eck, TOC Through Chapter 11 Preface Welcome Welcome to the world of interactive instructional design and development. In selecting this text and Authorware as your development tool, you have taken the first steps toward becoming a designer and developer of computer-based instruction/training (CBI/CBT). Whether you want to create small, interactive components to illustrate concepts as part of a larger course or develop complete computer-based courses or curriculum, Authorware is the right tool for you. Long the staple of corporate training departments that use CBT, Authorware has gained a strong following for the development of instructional products for use in schools and homes as well. Authorware makes it easy to develop complex interactive instruction in much less time than any other program. Unfortunately, learning Authorware on your own can be a frustrating experience. This is not because Authorware is inherently a difficult program, but because it is so different from other programs that we have no frame of reference to help us figure out how it works. That’s where this book comes in. Depending on how much time you are willing and able to devote to learning Authorware, you can learn to develop basic interactive instruction with Authorware and this book in 24 hours. (Of course, I recommend that you spread those 24 hours out over the course of several weeks, interspersed with lots of practice, but we’ll get to that later.) About Me viii Van Eck, TOC Through Chapter 11 So who am I and why should you trust me with the time and energy it will take to learn Authorware? I began working with Authorware in 1993 (then version 2.0). I taught myself the rudiments of Authorware through trial and error (more of the latter than the former, I’m afraid). When I returned to graduate school for my Ph.D. in instructional design, my major professor suggested that as part of my GA duties I should learn Authorware (then version 3.0). I spent 20 hours per week for 20 weeks refining and updating my Authorware skills to the point that I could develop (very) basic instruction (i.e., graphics and text with simple animation and limited interactivity). It was only after I had developed two moderate instructional products for other professors that I took my first formal instruction in Authorware. During the first of two courses I took I became a competent Authorware programmer. My authoring experience continued as I began working on several projects of my own and for other people, and culminated in an instructional game I created for my dissertation. It was not until that final game, 7 years after I first started, that I became what I would call an intermediate Authorware programmer. That is the hard way to learn Authorware. I learned a lot about where the common pitfalls and misconceptions lie when first learning Authorware on your own, and I have developed some ways to think about Authorware that can help make it easier to learn. I have taught Authorware (alternately beginning and intermediate) to college students of all ages and levels of experience every semester since 1999. I have continued to develop products as a private consultant for large corporations, small businesses, and individuals, and I have conducted Authorware training workshops as well. These experiences have helped me develop an approach to teaching Authorware that I think is effective and ix Van Eck, TOC Through Chapter 11 (relatively!) painless. This book is my attempt to share what I have learned with you, so that you can learn to develop CBI/CBT without investing years in the process. Who this book is for I have made every attempt to make this book relevant to as many people as possible. It is not, however, possible to be all things to all people, and so there are some assumptions I make about who you are. First, I assume that you have pretty good computer skills to start with. If you are not a regular user of word processing, email, and Internet browser programs, you will probably have to work harder than most to learn Authorware. You may want to read Chapter 1 closely if you think this applies to you, as I describe some other programs that, although less powerful, are also easier to learn (Hyperstudio, for instance). Secondly, I assume that you are interested in developing effective interactive instructional products that adhere to the tenets of instructional design and learning theory. Whether you are an instructor who wants to develop interactive computer-based or webbased modules for students to practice concepts discussed in class or a corporate trainer who needs to develop more efficient and cost-effective training for new employees, using Authorware in combination with ID principles allows you to create instruction that you can evaluate for effectiveness. If you are interested in creating non-interactive, non-instructional products, there may be better tools and books for you (Flash, for instance). Authorware’s strength lies in its ability to create interactive instruction and track learner responses and data, and while x Van Eck, TOC Through Chapter 11 Authorware can incorporate and support components developed with products like Flash, if your focus is not on developing instructional products, Authorware should not be your first choice. Thirdly, I assume that you have had some instructional design training, at least to the point that you understand instructional design (ID) models, goals and objectives, assessment, and instructional strategies. While I will attempt to provide some background information, there is not enough space to treat both the field of ID and teach Authorware at the same time. Although this book is designed to be used as a textbook for Authorware classes similar to the ones I teach at the university level, you should not have trouble using the book if that is not your environment. What this book is NOT This book is first and foremost an Authorware book. Because I wrote it with ID graduate students in mind, it is primarily an instructional designer’s Authorware book. There are several excellent books available that treat the design of CBI/CBT as their primary focus (e.g., Allessi and Trollip). This book is deliberately not that kind of book. The reason for this is that those books are (necessarily), 300 to 400 pages in length. Were I to combine the two approaches, this book would number some 1000 pages. In my opinion, such a book would have limited usefulness. For one thing, it could not be fully used in a semester-long course. More importantly, however, the cognitive load of learning Authorware and CBI/CBT design theory simultaneously would virtually ensure that you learned neither very well. xi Van Eck, TOC Through Chapter 11 This book is also not an “Authorware Bible.” Many books about software attempt to cover everything about the program in excruciating detail. While this is useful in a book designed to be a reference, I believe that when you are learning a program, you want the author to pull out the most important points and present them as efficiently and succinctly as possible. To that end, I have focused on using Authorware to build the kinds of interactive instruction that most instructional designers want to be able to build. This book, and lots of practice, will take you to the intermediate level; expertise lies in taking on complex projects and learning how to extend Authorware, and I make no attempt to do that in this book. How to use this book When you are done reading this preface, the first thing you need to do before you go any further is to go to our website and register. Once you have done this, you will have a user name and password that will allow you full access to the resources on the site, including royalty free media for use in your projects, more Authorware tips and tricks, extra, contact with other Authorware developers, and even access to a small amount of space on our server so you can test out the web program you will develop by the end of chapter 8. Each chapter in the book has it’s own section on the website where you can access supporting files, examples, and documentation related to that chapter, so you will want to have access to an internet connection on your computer while you read the book. You will also need to have Authorware installed on a computer so that you can complete the exercises at the end of each chapter. You can download a 30 day trial version of Authorware from www.macromedia.com. At press time, we were working to secure a 45xii Van Eck, TOC Through Chapter 11 day version of this program, so check the website to see if it is available there. You will notice that the book is spiral bound, which makes it easier to lay out flat by your computer as you work. Additionally, there are several things you should know about how this book is organized in order to make effective use of it. The first is that the book is divided into two parts: beginning and intermediate. One problem I have found with textbooks on Authorware is that they are either suitable for beginners or for intermediate users, not both. Beginning books usually take a tutorial approach that seems to work well for beginning learners in this area. Unfortunately, the requirements of the college CBI course and the desires of students often exceed the content in such texts. This leaves instructors and students to try to extend their knowledge on their own or to purchase an additional textbook. Other books that go beyond the introductory levels of Authorware do not use the tutorial approach and function more as a reference than a textbook. Such books require more effort on the part of learners, who must sift through distracting material, and on the part of the instructor, who must determine what to assign for reading, in what sequence and amount, and what students should do as homework exercises. These activities cut into the time instructors can spend working individually with students, developing ancillary (i.e., non-Authorware-related) assignments and lessons, and responding to homework and project assignments. The first eight chapters of this book focus on just what you need to know to create basic interactive instruction, including presenting text, graphics, animations, sounds, and movies, providing interactivity, tracking basic performance data, and packaging your piece for use on other computers. This section does not tell you everything there is to xiii Van Eck, TOC Through Chapter 11 know about each of these things, only enough to do the bare minimum. Once you have learned the basic process, the next eight chapters (Chapters 9-16) extend and refine this knowledge so that you can begin to develop more complex, sophisticated programs. You can follow the book straight through in sequence, either in one semester (two chapters per week) or two semesters (one chapter per week). Once you have complete the first half of the book, you can also skip around to the other chapters as you see fit, using the second half of the text as a reference. Each chapter is comprised of several elements to help guide you through the learning process. Each chapter begins by providing a brief overview of what will be covered in the chapter and why. The objectives then spell out what competencies you can expect to be able to demonstrate by the end of the chapter. The main body of the text then begins, and is itself comprised of several sections, described below. Heads Up I have found some concepts and rules within Authorware to be common sources of confusion for beginning learners. I address these in the Heads Up section; anytime you see one of these I highly recommend you read it carefully (of course, I think you should read everything carefully!). Tip/Power Tip There are some shortcuts and techniques in Authorware that, if you take the time to learn them, can save you time and/or allow you to create sophisticated, powerful products. Nevertheless, in the interests of keeping the chapters as tightly focused on “just enough” xiv Van Eck, TOC Through Chapter 11 to do “just what you need,” I have pulled these out into what I call Tips or Power Tips. Tips are suggestions that are fairly easily accomplished and/or allow you to do moderately interesting things. Power Tips may be more complicated to do, allow you to do impressive, powerful things, or both. Case Study In many of the chapters I include case studies or histories from projects that I or my students have worked on. These are designed to illustrate concepts, ideas, or other issues related to the content of that chapter. Making the Connection In this section I attempt to relate what you have been learning in this book to the field of instructional design as it impacts the development of CBI/CBT. In particular, where useful and relevant, I make the connection between what you can build in Authorware and the four phases of instruction identified by Allessi and Trollip in their book Multimedia for Learning (2001): presenting instruction, guidance, practice, and assessment. This section can help you make intelligent use of the skills you are acquiring in Authorware. Summary & Exercises As you might expect, the summary attempts to reiterate the highlights of what was covered in the book, while the exercises give you a chance to practice what you have learned. xv Van Eck, TOC Through Chapter 11 Heads Up: I know that there is a tendency to overestimate how well you have learned something from reading about it (I know because I suffer from the same malady). If you do not do the exercises diligently, there is no way you will become proficient in Authorware. In fact, there is no way you will truly master Authorware if all you do is read the book and do the exercises. You need to put everything you learn immediately into practice, or you will lose it. Therefore, I recommend that you read the first eight chapters, do all the exercises, and develop your own, comparable program right away. The only way to get really good at Authorware (good enough to make $100/hour programming for other people, for instance) is to build lots of programs and continually push the envelope, trying to do more complex things more efficiently as you go. The Website The website is designed to be more than just a place to read about Authorware. It is a resource for graphics, sounds, animations, show-mes, and examples. You can even post your own small test programs there to see if they work on the web! We will also publish updates to the book, answer frequently asked questions, and provide a way for you to interact with other people who are working with Authorware too. You should check the site regularly to get the most out of your experience as you become an Authorware developer. Welcome to the world of CBI/CBT development xvi Van Eck, TOC Through Chapter 11 Chapter 1: What is Authorware? Overview There was a movement in the sciences during the last century which held that truth and knowledge are constructed by human beings and do not exist in and of themselves in the universe, something akin to the adage about a tree falling in the forest with no one there to hear it. In this theory, the way that human beings perceive things is modified by their philosophical beliefs, perspective, attitudes, biases, etc. Strangely enough (or perhaps not), this is also true of the tools that we design; a hammer is very good at what it does, but it assumes that you are using nails and not screws, that you are connecting two pieces of wood and not stone, and that you will strike the nail with the small round head rather than the claw or side of the hammer. While you can certainly violate one or all of these assumptions, your success will be limited because you are working against the tool’s design. Authorware, like any programming tool, also has its own way of “looking” at the authoring process. While there are many possible ways to accomplish the same task, Authorware makes some assumptions about how the authoring process should work. Understanding how Authorware views the authoring process is critical to learning to program in Authorware, and this book begins with this in mind. To that end, it is also helpful to understand the metaphor that Authorware uses in the creation of interactive multimedia and how that metaphor compares to those underlying other authoring programs. In addition to learning about Authorware’s approach, you will also learn about other programs that are helpful when authoring multimedia CBI/CBT. It may seem a little odd to begin with this discussion in light of the content of Chapters 2 and 3, which are 1 Van Eck, TOC Through Chapter 11 not focused on Authorware per se, but it is important enough that it should be discussed separately from the “how-to”s of Authorware. Objectives At the end of this chapter, you will be able to: • Describe how Authorware presents a program (flows) • Use the five main icons needed to present multiple text, sound, and video content • Identify the design and development strategy that expert Authorware programmers follow What is Authorware? Authorware is an object-oriented authoring tool. In order to understand what this means, let’s take a closer look at the terminology. “Object-oriented” can best be understood in contrast with the term “programming language.” Ten years ago, if you wanted to create programs to run on a computer, you needed to know a programming language. Programming languages you may have heard of include Fortran, Pascal, Basic, and the most popular today, C++ and Java. While these languages are all different (although Java and C++ have a lot in common), they are all identical with respect to the process of creating a program; you have to learn the particular lingo and commands in these programs and then type hundreds or thousands of lines of “code” that specify how the program should behave under different circumstances. 2 Van Eck, TOC Through Chapter 11 As you might suspect, not everyone was willing or able to learn these languages, and those who did were more likely to use them to build other, larger applications (e.g., word processors, graphic editors, and games) than they were to develop training or instructional applications. This is because the investment in time and mental energy required to master these languages was such that the relative few who became expert were in high demand and could command better salaries working for big software development companies than they could developing small training applications. As we moved from a command interface like DOS to a graphic interface like the Mac or Windows operating system (a move reflective of the increasing number of computer users and of the relative complexity of command interfaces), the process of using these languages has been gradually simplified to the point that they are easier to learn. Examples of this include the popular “visual” series of programs: Visual C++, Visual Java, Visual Basic, etc. These programs ‘hide’ much of the programming language by combining chunks of code into single objects based on function. For example, rather than typing several lines of code to create a button, position it on the screen, and specify how it looks when up and when pressed (i.e., clicked by the user), programmers could instead ‘drag’ a button onto the screen they were creating and all the code that goes with it would be automatically created, saving a lot of time. Yet while these programs became easier to use, they still required a significant investment of time and energy to master, because you still needed to understand the underlying programming language to create a complete program. As a result of this, there were, and are, still a relatively small number of people who have mastered these 3 Van Eck, TOC Through Chapter 11 languages, and these people are still in great demand for building software applications rather than training applications. There is another reason that these tools have not been widely adopted for the creation of learning and training applications, however. The demands of a training or learning application are much narrower and more specific than the demands of a fully developed computer application such as a spreadsheet or database program. Instructional products are designed to present information to individuals, provide for a means of processing, elaborating upon, and interacting with that information, and to assess learner performance. While all of these things can be accomplished with programming languages, those languages are set up to do a great many other, more complex, things. In other words, they are not specifically designed for what trainers and instructors want to accomplish with CBI/CBT. Another equivalent analogy may make this more clear. Suppose I want to create a flyer to sell some items I no longer need. I plan to have a bold, catchy headline and a short list of items for sale. I have decided that I don’t need pictures or graphics. I could use any number of computer programs to generate this flyer, but the two most relevant might be a word processor and a desktop publishing program. We are all familiar with word processors, and you can imagine how I might create flyer by typing text and centering it, changing the font size, etc. Desktop publishing programs are used to create professional publications such as books, magazines, and newspapers. While I could use such a program to create the flyer, desktop publishing programs are necessarily more complex than word processors, because they must do so much more. For example, I would have to create and position a text box on my screen prior to selecting and modifying the text 4 Van Eck, TOC Through Chapter 11 itself. Because a desktop publishing program must necessarily allow you to work with text and graphic elements, I must then select the text tool in order to modify my text, whereas the word processor assumes you are working with text as its default. Because the word processor focuses predominantly on text, it can devote the majority of its interface to text-related tools, which makes it easier to make my modifications than if I were in a desktop publishing program, which may have to place some of these commands in less accessible places in order to provide access to other, non-text-related tools. While nothing prevents me from using either tool, clearly, I would be better off using the word processor, because it is more focused on what I want to be able to create. The last decade has seen the rise of a new class of programs designed for those with little or no programming experience. These programs go by many names, but they can all be classified as object-oriented authoring tools. These tools, of which Authorware is an example, make it possible to create interactive multimedia programs with little or no knowledge of a programming language. In addition, they are easier to use because they focus on the elements most relevant to developing multimedia presentations rather than on those relevant to developing full-blown computer software. In general, they are less complex, better suited to the development of CBI/CBT, and easier to learn than any programming language. Authorware is one of these object-oriented authoring tools, in this case designed specifically for the development of interactive CBI/CBT. It is easier to use than a programming language and, as will be seen in the next section, probably the best choice among all such tools for developing CBI/CBT. 5 Van Eck, TOC Through Chapter 11 Heads Up: All object-oriented authoring tools make use of SOME programming language, and most, including Authorware, require knowledge of that language to make full use of all of the capabilities of the program and to become an expert. However, it IS possible to develop basic programs without typing any lines of code. 6 Van Eck, TOC Through Chapter 11 Why Authorware and Not __________? You have probably heard of many tools that can be used to develop interactive multimedia. A logical question then, is why choose Authorware instead of one of these other tools? The problem with this question is that the efficacy of any tool is dependent on the context in which it is used. In the case of authoring tools, this includes the content to be taught, the intended audience, the intended instructional strategies, and the preferences of the developer. Rather than focus on specific programs, it might be more useful to examine the metaphors used by different programs that are available, some examples of each type, and some of the strengths and weaknesses associated with different programs. Card-Based Metaphors Some programs make use of a card metaphor. In these programs, a stack of cards is created, each with different material and interactivity on it. The learner progresses through the program one card at a time, often in a linear fashion but not necessarily so. While many options and features are built in, some knowledge of scripting language is often needed as well. Perhaps the best-known examples of a card-based metaphor are Hypercard and HyperStudio. These programs are easy to learn but have only rudimentary animation abilities, do not easily track learner responses easily, and do not incorporate sophisticated interactions such as matching or drag and drop. A more sophisticated example of this kind of program targeted more toward CBI/CBT can be found in Toolbook. Toolbook is more powerful than Hypercard/HyperStudio and is suitable for developing CBI/CBT. 7 Van Eck, TOC Through Chapter 11 Cast/Timeline/Stage Metaphor These programs make use of a theater metaphor, in which all elements (cast members) are assembled together on a “stage,” and controlled through the use of a timeline. The timeline is composed of multiple “tracks,” each of which can represent a virtually unlimited amount of cast members and actions. The most popular examples of this metaphor include Director and Flash. They are very powerful in the sense that you can control individual cast members by writing scripts (the theater metaphor again) that specify how they should behave. This, however, is also one of their weaknesses, in that some knowledge of scripting is usually needed to create complex programs. They are also excellent animation tools. Unfortunately, they are not very good or intuitive at creating interactions easily, and they do not track learner data and responses automatically, meaning that training applications require significant scripting. Icon & Flowline Metaphor These programs make use of a drag and drop metaphor in which icons are dragged onto a flowline. Each icon represents different capabilities and functions of the program, and the flowline specifies when and how things happen on the screen by controlling when and how the program processes each icon. Authorware is an example of this type of program. Authorware requires little to no scripting knowledge, is targeted specifically to the development of interactive CBI/CBT (one of the icons is called an interaction icon), and automatically tracks a multitude of information about the learner and his or her interactions with the program. It is probably the fastest tool for building training applications in terms of the basic presentation of information, interactions on the part of 8 Van Eck, TOC Through Chapter 11 the learner, and assessment of learning. It is not nearly as good as Director or Flash in terms of animation, and its internal drawing tools are rudimentary. Luckily, it allows for the inclusion of Director and Flash movies, as well as graphics and sounds created in any program, meaning that you get the best of both worlds. As a stand-alone tool, none of these programs is really suited to the development of sophisticated multimedia CBI/CBT. Unlike most other tools, however, Authorware takes care of the most critical functions of CBI/CBT, while allowing for the inclusion of a variety of graphic, animation, and other multimedia, even if that media must be created in another program. This makes it possible to develop sophisticated multimedia CBI/CBT much more quickly and easily than is possible with other tools. Table 3 summarizes the programs mentioned specifically above along with with their strengths and weaknesses. Table 3. Interactivity Media Data Tracking HyperCard, Rudimentary HyperStudio Most Requires Scripting Rudimentary Fast Low Director, Flash Sophisticated, but difficult (requires scripting) Most Requires Scripting Sophisticated SlowMedium Medium-High Authorware Sophisticated and Easy Most Automatic Rudimentary, but allows for others Fast Medium 9 Animation Time to Develop Learning Curve Van Eck, TOC Through Chapter 11 How Does Authorware Think? Like all programs, Authorware will do exactly what you tell it to do. The problems arise when you think you are telling it one thing and it does another—in other words, when there is a communication problem. Programmers use a term to describe this phenomenon called GIGO, which stands for Garbage In, Garbage Out. The next sections describe the way Authorware views the authoring process. The Flowline The flowline is the most critical element of Authorware. It determines how Authorware will present the information in your program to the learner. Understanding this process is critical to de-bugging your program, which probably accounts for at least 30% of your project development time. I always imagine that Authorware is a little jogger, running down the flowline. Other metaphors are just as effective (e.g., a river, a pachinko game, etc.,) so feel free to use your own. When I run an Authorware program, that little person starts at the top of the flowline and tries to get down to the bottom as fast as he/she can. The problem (for this person) is that there are rules governing when and where she/he can go. An abbreviated list of these rules are that this person must: 1. Start at the top of the flowline 2. Move from top to bottom 10 Van Eck, TOC Through Chapter 11 a. Unless there are icons that go off to the right of the flowline, in which case he/she must follow them from left to right, looking at or displaying the contents of each one before moving on to the next icon on the flowline 3. Do what each icon says to do a. Show everything she/he sees (graphics, text, sound, video, animation, etc.) b. Perform calculations c. Wait for learner input 4. Leave everything on the screen until told otherwise 5. Put each new thing up on the screen on top of what came before it 6. Keep track of everything that happens The only things that can stop this jogger are wait icons, interactions, and empty icons. Wait icons, as you might expect, are just stop signs that tell Authorware to wait for some period of time, for the learner to click the mouse or a button, or for any combination of these. Interactions are places in the program where you want the learner to interact with the program in some way, such as by clicking on a button or dragging something from one place to another. You will learn about these icons and processes in later chapters. For now, let’s talk about the third thing that can cause the Authorware jogger to stop: empty icons. To do this, we need to talk about the logic of how programs are built in Authorware. 11 Van Eck, TOC Through Chapter 11 Rules of the “Road” Building your program in Authorware is accomplished by determining which icon you need based on what you want to have happen, dragging that icon to the flowline, arranging the icons on the flowline in the order you want things to happen. While you can do this one icon at a time, Authorware rewards you for building what I think of as scenes (i.e., scenes in a movie), each of which requires several icons, and then running the program. The reason for following this process is that it greatly speeds up the authoring process. This is because, more often than not, what you do with one icon (play a sound, show text or graphics, erase something, animate something, etc.) is directly related to one or more icons elsewhere in the program. This means that you often need to “see” the contents of a different icon than the one you are working on. If you open up each icon and attempt to work on it individually, you will not be able to “see” anything but the current icon, which makes it difficult to build a program that matches the image you have in your mind. For instance, a common and frequent need is to be able to erase something from the screen after you are done displaying it. Because of the way programs are built in Authorware, the thing you may want to erase may have been first displayed on the screen many icons prior to the point at which you want to erase it. Building this “scene” by first laying out the icons you will need to use and then running the program allows you to see what is displayed to the learner at the point you want to erase something (or animate, or add, etc.). This approach to building scenes (multiple icons that together form a small chunk of your program) is actually part of a larger process that all expert Authorware programmers follow; building programs from the top down. 12 Van Eck, TOC Through Chapter 11 The biggest single difference between novice and expert programmers in any programming tool is that novices tend to think linearly while experts think in a top down manner. In the case of Authorware, this means that novices tend to start building their program from the beginning, one icon at a time, filling in all the details and parameters for each icon in each section, from start to finish. For example, novice developers will create their title (a display icon), type in the text and format it, animate it, add music, etc., and only then move on to the first section of their program. Experts use the process I described in the preceding paragraph, building individual sections in chunks. But expert programmers extend this process to the entire program as well. Prior to actually developing the individual “scenes,” in the program, they begin their program by by laying out the overall structure of the entire program (kind of like writing an outline prior to writing a paper). They make sure that the big picture makes sense and that they understand how the program will work. They then build the functionality in to the program (navigation, buttons, menus, etc.) without worrying about the actual content of the program itself. Then they move on to developing each scene in the program as described earlier. In Chapter 3, you’ll learn about the white paper, which is a kind of outline for the functionality of your program, and is critical in this process. Taking this approach has several advantages. First, and most significantly, it allows you to become a more proficient developer at an earlier stage. No one really believes this until they have been working with Authorware for a long time, but taking the top-down approach saves time (at least 30%, in my experience) and cuts down on the revision process significantly. 13 Van Eck, TOC Through Chapter 11 This approach also reduces the cognitive load on the part of novice developers, who are learning as they develop their programs. You may find it difficult to do this when you are just learning the basic functionality of each icon, but the sooner you implement this strategy, the more quickly you will move from novice to intermediate developer. The picture you have in your mind of what you want to have happen in your program is from the perspective of the learner (e.g., first I want the learner to see a title, then I want it to animate, then I want to erase the title and…). Half the journey toward becoming proficient in Authorware lies in mastering the conversion of what is in your head to what is on the flowline. By authoring as I suggest, you will be able to make this conversion faster and with less stress. But how can you run a program that has nothing but empty icons in it? When Authorware is running a program and it comes to an icon with nothing in it (that is, an icon that has never been modified) it will pause, open up that icon for you, and wait for you to put in text or graphics (display icon), sound (sound icon), video (movie icon), or to let you specify how long it should wait (pause icon) what it should erase (erase icon), etc. Once you are done, you can close that window and Authorware will continue. That way, you can build it as it goes to match the idea you have in your head of how it should look i.e., what the learner should see. This process becomes even more critical when working with animations and drag-and-drop responses (target areas), as you will see in later chapters. The Interface As mentioned earlier, Authorware uses the flowline metaphor. You create your program in Authorware by dragging icons onto that flowline (See Figure 7). Each icon has its own 14 Van Eck, TOC Through Chapter 11 purpose and abilities. The flowline organizes these icons into a sequence you determine so that the learner moves through your program in the way you want. What follows is a brief tour of the main elements of the Authorware interface. What is important right now is that you become familiar with the interface and terminology. You will learn WHAT to do with these elements later. For more detailed descriptions and practice, you can also view the tutorial that comes with Authorware 7. We will begin with the flowline and icons. Table 4 presents each icon along with a brief description of its purpose. Figure 7. Authoring window with empty flowline. 15 Van Eck, TOC Through Chapter 11 Table 4 Icons used in Authorware Icon Description Any time you want the learner to see some kind of text and/or graphics, you use the Display icon. It is the most commonly used icon in Authorware, since the vast majority of an instructional product entails the presentation of text and graphics. The Animate icon is used to make something on the screen move from one place to another. Usually, this icon is used to move text or graphics you have displayed using a display icon, but it can also be used to animate movies. You will learn about simple animations in Chapter 5, and advanced animations in Chapter 13. Any text or graphic you display on the screen for the learner to view will stay there until it is covered by another object or erased. The Erase icon is used to erase text and graphics from the screen when you are done displaying them. As you might expect, the Pause icon allows you to pause the presentation for a specified amount of time or until the learner clicks on the screen, presses a key, or clicks a button. This is useful when you want to allow enough time for the learner to process what is on the screen, for example. The Navigate icon allows you to specify where the program should go next. Navigate icons can ONLY go to icons that are part of a framework (see the next entry). As you will see in Chapter 7, frameworks and navigate icons represent one of the most powerful features in Authorware. Frameworks function like slideshows: they allow you to attach virtually unlimited “pages” that can be displayed one after the other like a PowerPoint slideshow. They are most commonly used to organize your program, control navigation, and allow the learner to proceed at his or her own pace. You will learn about frameworks in Chapter 7. Decision icons allow you to specify how the learner should move through the “pages” that are attached. For example, you can tell Authorware to display the attached items all in a row (sequentially) or all at random. You can also tell Authorware to only choose a certain number of the attached items. A common example is when you want to provide 3 questions out of 16 a pool of 10 at random (so the learner gets different questions each time they go through). You will learn about decision icons in Chapter 12. Van Eck, TOC Through Chapter 11 number of the attached items. A common example is when you want to provide 3 questions out of a pool of 10 at random (so the learner gets different questions each time they go through). You will learn about decision icons in Chapter 12. The Interaction icon is the most critical element in Authorware. It is what allows you to create places in the program for the learner to interact (i.e., make some sort of response). One of the more common examples is the creation of quizzes or practice items such as multiplechoice questions. You will learn about simple interactions in Chapter 6 and advanced interactions in Chapter 12. The Calculation icon allows you to customize the functions of your Authorware program by entering in variables, functions, and code. It is used to provide functionality that is not available through the simple use of the other icons. You will learn about variables and functions in Chapter 11. Maps are like little suitcases that can hold unlimited numbers of icons. They are useful because as you will see, there is a limited amount of screen space to place maps on. Maps allow you to condense several icons into one. You can still see all the icons by opening (doubleclicking) the map icon; all the icons are stored inside it. Maps also help you organize your program: an introduction with titles, animations, sound effects, and music could be 30 or more icons. A map lets you put them all into one icon and name it “Introduction.” The Movie icon allows you to play a digital video you have created elsewhere. Unlike the display icon and sound icon, you cannot store digital video inside Authorware. Instead, the video always lives outside of Authorware as its own file. The Sound icon lets you play any sound you want at any time. The Video icon is used to play video from a videodisc player. These devices used to be quite common but are now rare. Most programs will never need to make use of this icon. Note that while I will make reference to the process I have just described whenever I talk about how to add text, graphics, sound, etc., to your program, it is always possible to 17 Van Eck, TOC Through Chapter 11 open up each icon individually by double-clicking on it. In fact, this is the only way to make later modifications and changes to each icon once you have created it the first time. Presentation & Design Windows Authorware has two basic modes, each with its own window. When you are authoring your program, you are working with the flowline and icons. This window/mode is called authoring mode. In this mode, you can drag icons to and from the flowline or your library, and you can open up individual icons to view their contents and/or make modifications to those icons. When you are running your program to see how it looks and behaves, you don’t need to see the flowline and icons, so Authorware hides them; you want to see how it looks to the learner. This is called presentation mode. When Authorware hits an empty/unmodified icon (or when you double click on any icon), it shifts to authoring mode so you can make changes and modifications. Pull-Down Menus and Buttons Aside from the icons and the flowline, much of what you will use to modify your program will be found in the pull-down menus. These commands and processes will be discussed throughout the text as their uses become relevant. For now, you may just want to explore these menus to familiarize yourself with their basic layout. In particular, you will need to know about creating new files, saving files, and running the piece. The file menu contains commands for creating, opening, saving, and closing files. It operates much like most File menus in other programs. There are also button equivalents for the first three of these commands; they are the first three buttons on the 18 Van Eck, TOC Through Chapter 11 task bar from left to right. The other menu you will need to use frequently is the Control menu. This menu contains the commands to tell Authorware to run and stop the program, which you will need to do periodically as you create and test your program. The command to start your program from the beginning is Restart (ControlRestart). There is a button equivalent for this function as well, which is the fifth button on your taskbar from the right. What Else Will I Need? Although Authorware is one of the most powerful multimedia authoring tools, by far its strongest point is its ability to build in interactivity and track user responses. You may need additional programs to complete your CBI/CBT program if you want to include things like sophisticated animation and digital video. Both Flash and Director files can be integrated into Authorware to allow for sophisticated animations, interactive or not. Likewise, there are a host of other supporting programs and tools that you may find useful when developing CBI/CBT with Authorware. Because CBI/CBT usually contains a multitude of graphics, sounds, and media, it is necessary in many cases to use tools specifically designed to create and manipulate those files. The next sections describe the nature and function of these tools. Image Editors Authorware contains a basic set of drawing tools, allowing you create shapes, lines, and colors without leaving the program. It will also allow you to import a wide variety of image formats, including gifs, jpegs, picts, bitmaps, and tiffs. If you want to create more than basic shapes and colors (freehand drawing, gradient fills, etc.) or you want to edit an 19 Van Eck, TOC Through Chapter 11 existing image, you will need to have access to some kind of image editor. There are many such programs available, and most of them share common functionality, so pick the one you like best. Adobe Photoshop has long been the choice of graphics professionals because of its rich set of features. It can be more complex for a novice to learn, however. Adobe makes a simpler version called Photoshop Elements, which is much cheaper than the full version, yet still has the capabilities needed to do most basic image editing tasks. Macromedia makes a graphics editor called Fireworks, which is relatively inexpensive and competes most closely with Adobe Photoshop. There are a host of editing programs (Photoshop included) that are often bundled with other products such as digital cameras and scanners. Although these programs may be limited versions of retail products, many of the programs will be sufficient for your basic editing needs. There are also shareware and freeware products. GraphicConverter is a fast, powerful program available for the Macintosh platform. IrfanView is a popular image editor available for the Windows platform. Sound Editors Authorware will allow you to import sound files and control when and how they are played, but it will not allow you to create or modify sound files. To do that, you will need some kind of a sound editing program. As with image editors, there are a variety of choices ranging from inexpensive and simple to professional level sound editing choices. Chances are that your needs can be met with a basic sound editor. Macromedia SoundEdit 16 is an excellent tool for editing sound on the Macintosh platform and can save sounds in all major industry formats, included wav files for the Windows platform. Programs such as SoundForge and CoolEdit are popular choices for the Windows 20 Van Eck, TOC Through Chapter 11 platform. There are also freeware and shareware versions available for both platforms. SndSampler is an extremely intuitive tool on the Macintosh platform, and GoldWave (32bit) is a popular shareware choice for the Windows platform. Movie Editors Digital video is a complex subject that requires much more space than can be devoted to it here. Chapters 5 and 12 will present some of this information in more detail. Authorware handles movies the way it handles sound; you can bring them in and control playback to a certain extent, but you can’t capture or edit video with Authorware. There are not as many options available for editing video as there are for other media forms. The dominant video editor on both platforms has been Adobe Premiere. Premiere has fallen behind the curve in recent years and has been struggling to catch up, however. Premiere, like Photoshop, is also a complex tool which will not quickly or easily be mastered by novices. If you got a copy of Premiere bundled with a card and are willing to put in some study time, or if you are already a professional who has been using Premiere, there is no reason to switch to another program. However, if you are not committed to the Premiere program, you have other alternatives. Final Cut Pro has been gaining a lot of converts lately because it is more flexible and powerful in many respects, although it is only available for the Macintosh platform. It also is relatively inexpensive for educators and students. For most developers of CBI/CBT, FinalCut Pro and Premiere may be more tool than is really required. iMovie is probably the most intuitive movie editing program I have seen, and it ships free with all Macintosh computers. It can be learned in 30 minutes and can 21 Van Eck, TOC Through Chapter 11 produce movies for CD-ROM or the Web on either platform. If you have access to a Macintosh with iMovie, it should probably be your first choice. If you don’t have access to a Macintosh, you can use Premiere or whatever software was bundled with your camera or firewire card. I have used one program that ships with the Pinnacle StudioDV card that I feel is as intuitive as iMovie, although not as powerful when exporting the final movie. Currently, the software is not available as a separate product, but the Pinnacle StudioDV card bundle is relatively inexpensive. Animation Tools While Authorware has its own set of built-in animation tools, many developers find it necessary to go outside of Authorware to achieve the sophisticated kind of animation learners and clients have come to expect from CBI/CBT. The most widely used and sophisticated animation tool is Macromedia’s Flash. As I mentioned earlier, Flash is actually an authoring tool comparable to Authorware in capabilities. It is possible to develop sophisticated animations with Flash that can then be imported into Authorware. In particular, Flash is very good at working with transparency, “zooming” or scaling objects up or down, and “morphing” one object into another. It works equally well with graphics or text, and it has an excellent set of tools for creating drawings even in the hands of those of us lacking artistic talent. Because it is an authoring tool in its own right, and because it uses the theater/timeline metaphor, Flash takes a significant investment of time to master completely. Luckily, however, it is not necessary to master the entire program if your goal is to create basic animations with little or no interactivity for use in Authorware. 22 Van Eck, TOC Through Chapter 11 There are other animation tools that can be used to create animations for use in Authorware. Animated GIFs are probably the second most common type of animation on the Web after Flash. Programs for creating animated GIFs are abundant and inexpensive. GIF Builder (for the Mac OS 8.x /OS X) and Ulead GIF Animator (for Windows) are two of the more widely used shareware programs for creating animated GIFs. Management Tools When you are just starting out as a designer/developer of CBI/CBT and your programs are small, it is possible to manage your time and resources without the aid of management tools. As you become more competent and start to take on more and/or more complex tasks, it becomes both harder to manage your time and resources and more critical that you do so. You need to be able to track and manage your design and development time for two reasons. First, you need to be able to determine how long jobs are going to take so that you can schedule multiple jobs efficiently. If you don’t know how long each of your jobs is likely to take, you will be forced to either turn down jobs (since you can’t be sure you’ll be done with one job prior to taking the next) or you’ll double book jobs. Either way, you lose income and run the risk of missed deadlines and poor PR. The second and most critical reason you need to track and manage your time on each job is so that you can get an idea how long each job will take and bill accordingly. By tracking each job you do in detail, you not only gain a better understanding of where you are in the program, but also how long it takes YOU to design and develop CBI/CBT. When you take on future jobs and programs, you will then have a more accurate sense of 23 Van Eck, TOC Through Chapter 11 how long it will take to design and develop them. To be sure, each job is different, and it is unlikely that the second or third job will take the same amount of time as the first. But after five or six jobs, you will begin to see some commonality between jobs regarding design and development task time. Several tools exist that can help you track program time by setting up tasks specific to your program (e.g., analysis, one-to-one evaluation, focus groups, etc.). When you are working on a team project, this software is then installed on all designer/developers’ computers so that whenever they start working on a task, they start the timer for that task and it then runs in the background. Resource management software can also be employed to help organize and manage all the media resources in the program. These perform a similar function as the media log discussed earlier in that they collect the individual media and relevant information. What makes them particularly useful is that they can not only track the copyright, file format, and other information, but they actually store the media themselves in the form of a database, so that once you find the media you are looking for, you also know exactly where it is and can call it up from the program. Case Study By far, the most compelling aspect of Authorware is its ability to create multiple opportunities for learner interactions and to automatically track a wide variety of data about the learner’s interaction with your program. Authorware closest competitor, Director, is capable of the same things, but the programmer must use a language called Lingo to track and store information, and must build each interaction opportunity from 24 Van Eck, TOC Through Chapter 11 scratch (although later versions of Director have simplified some of these interaction opportunities through “behavior” libraries). Authorware pre-specifies hundreds of variables and functions (you will learn more about these in later chapters) that keep track of data and allows you to create several different kinds of pre-specified interactions quickly, and without the need for any programming language beyond the name of the variables themselves. It is difficult to identify a specific case study to illustrate this because every instructional project I have ever created has made extensive and integral use of these features, and I have never attempted to develop such projects in Director or Flash for the very reasons presented above. Nevertheless, a discussion how these strengths play out specifically in an Authorware project may be helpful. A common strategy in CBI/CBT is to provide instruction, give and example, and allow the learner to practice applying the instruction. This is sometimes referred to as ruleexample-practice. To create this in Authorware, I can provide the rule by creating a display icon that contains the text (and or graphics) I want. The example might likewise consist of a display icon. The practice would consist of an interaction icon along with one additional icon for each “response” I want the learner to be able to choose (e.g., buttons, places to click on the screen, fill in the blanks, etc.), in this case, lets assume I want four buttons they can click. Because I want the learner to be able to read the instruction at their own pace before viewing the example, I might need two wait icons (in between the instruction and the example, and between the example and practice) and two erase icons (one to erase the 25 Van Eck, TOC Through Chapter 11 instruction prior to showing the example, and one to erase the example prior to showing the practice/interaction). This whole process involves dragging 11 icons to the flowline (10 seconds) and running the program to fill in the content (which is determined by the length of time it takes me to type text, apply font styles, click on things I want to erase, etc.). All told, this is probably 5 minutes or less. The same process in Director would involve creating a “cast member” for each piece of text, graphic, and button, dragging those onto a timeline to create “sprites,” creating a line of Lingo to tell Director to pause/loop in between the instruction and the example, and between the example and the practice until a MouseUp event occurs, at which point another line of Lingo code to “Set the visible” of each cast member with the text I want to earse to “FALSE,” and apply a “behavior” to each of the four buttons in the practice opportunity to control what they will do. Even accounting for the fact that I can save time by copying the code a behaviors and by using behavior libraries, the process is significantly more complex and time consuming than it is in Authorware. But this is only part of the process; in instruction, we need to assess whether the learner needs remediation or additional practice items based on their performance during assessment. Let’s say that I want to know how many answers the learner got right, what percentage of items were answered correctly, and how long the learner took during the assessment. I might use this data in the following way; if, during assessment, the learner makes three errors and/or their perecentage score drops below 90% and/or they take more than the 20 minutes I have allotted for the assessment, I want the program to stop what it is doing and send the learner back to the instruction for more practice. 26 Van Eck, TOC Through Chapter 11 In Authorware, this would involve using three variables called TotalWrong, PercentCorrect, and SessionTime. Authorware automatically tracks this information for me, so that all I need to do is tell Authorware that if TotalWrong equals 3 (i.e., the learner missed three questions) or if PercentCorrect is less than 90 (i.e., the learner missed 10% or more of the questions) or if SessionTime is greater than 20 minutes, then it should go back to an earlier part of the program. This would involve dragging one icon onto the flowline of my assessment section and typing the following: If TotalWrong>3 | PercentCorrect<90 | SessionTime>20 The vertical bars ( | ) stand for “or.” It is not important that you understand variables or syntax here; the point to remember is that we are talking about two actions. Once I have done this, Authorware will track this no matter how many questions I have in my assessment; if I add 30 questions later, it will still work without any additional modification. In Director, you would need to create a variable for each thing you want to track and write several lines of code in Lingo to accomplish it. While this can be done, it is not as straightforward as it is in Authorware. This is NOT because Authorware is “better” than Director; they are different tools designed for different purposes. Summary Authorware is a multimedia programming tool that is unparalleled in its ability to create instructional products. Authorware uses a flowline metaphor to create, or author, programs. icons are placed on a flowline according to the order in which the programmer wants them to occur. Authorware presents these icons in order from top to bottom, left to right. Each icon has its own abilities and properties, including text, graphics, or image 27 Van Eck, TOC Through Chapter 11 presentation (display icon), animation (animate icon), sound (sound icon), and movie (movie icon). Authorware also can create opportunities for the learner to interact with the program in some way (e.g., answer a question, click a button, type a response, etc.) through the use of the interaction icon. Although it is possible to accomplish tasks in more than one way, Authorware rewards programmers who create programs the way Authorware was designed. This includes using font styles, setting your file properties prior to beginning the authoring process, making use of libraries, and building the structure of your program (or different sections of your program) by dragging the appropriate icons to the flowline and then running the program to fill in the content and specify how it appears on the screen. While Authorware excels at almost all aspects of CBI/CBT authoring, especially interactive instruction, there are elements of your program that may require the use of outside programs. This may include programs for sound, image, and video editing as well as more sophisticated animation programs. More importantly, Authorware cannot compensate for improper application to instructional problems; it is appropriate only for certain populations and instructional content. Finally, all of the considerations about color, font styles, learner characteristics, etc., must occur early and be documented to avoid inadvertent errors later that can result in lost time, increased cost and frustration, or all three. The next two chapters will explore the concept of documentation and pre-planning your project in more detail, which are critical to managing the development process in all programming tools, including Authorware. While it is possible to skip these chapters and continue learning more specifically about 28 Van Eck, TOC Through Chapter 11 Authorware if you have developed projects in other authoring tools and are familiar with the planning and documentation process, doing so without this prior knowledge will almost certainly result in serious revisions and problems later on. Exercises 1) Think about what you know about the way Authorware flows. In the example below, in which order will the icons on the flowline be presented? a) Fred, Barney, Wilma, Betty, Bam-Bam b) Fred, Barney, Wilma, Betty, Pebbles, Bam-Bam c) Fred, Barney, Wilma, Pebbles, Betty, Bam-Bam d) No way to tell 2) If you wanted to create a program that presented a title, paused for 5 seconds, erased the title, played some music, then played a video, which icons would you use (present them in order of their use in the program)? 3) Which of the sequences below would represent how an expert (or someone who desires to become an expert) would develop the following program: The program will be comprised of an introduction, two main instructional sections, one assessment section, and an exit section with feedback and credits. a) Build the structure of the introduction by dragging the necessary icons onto the flowline, run the program, fill in the content and modify how it appears for each scene, then proceed on to the next section until the program is done. b) Drag all the icons needed for each section onto the flowline, open each one up and fill in the content from start to finish until the program is done. c) Create all five sections first and make sure all the navigation and structure is in place, then go back and begin working on each section one scene at a time. 29 Van Eck, TOC Through Chapter 11 d) Begin programming each scene one icon at a time, from the first icon needed for the introduction to the last icon needed for the credits. 30 Van Eck, TOC Through Chapter 11 Chapter 2: Pre-Planning the Project Overview As with the development of all instruction, success is largely determined by the time and effort devoted to the instructional design process. While novice designers find it easy to see the relevance of establishing goals and objectives, they often underestimate the importance of careful learner analysis, specification of instructional strategies, and learning/task analysis. It is only after the successful development of several instructional projects and, in some cases, one or more failures, that the importance of these tasks becomes more clear. With the design and development of interactive computer-based instruction (CBI) and computer-based training (CBT), however, there are several other pre-planning decisions that must be made prior even to the instructional design process, and these decisions are also often overlooked. The results of this can range from missed deadlines and blown budgets to complete failure. Time spent up front thinking about the project itself can impact the success of the final product as much as the time spent on the instructional design process. These decisions need to be documented both as an aid to you (so you don’t have to keep a running mental record) and to anyone else who will be working on the project (as is the case in team-based authoring). This chapter focuses on these pre-planning decisions and determinations necessary for the successful design of CBI/CBT. While there will be some discussion of instructional design considerations in this chapter, a complete discussion of the instructional design process is beyond the scope of this book. For a more in-depth discussion of the 31 Van Eck, TOC Through Chapter 11 instructional design process, the reader is referred to Gagne, Briggs, & Wager’s excellent text, Principles of Instructional Design (1992). Objectives At the end of this chapter, you will be able to make appropriate decisions about your CBI/CBT project by: • Selecting an appropriate learning modality • Accounting for learning preferences and learner characteristics • Considering the OS and platform for final delivery • Specifying interface design considerations Is CBT the Right Choice? All learning modalities incorporate instructional content according to their strengths and weaknesses: the medium modifies the message. Print-based instruction is good at presenting text and graphics, allowing for anywhere/anytime access and review, but it is not as good at incorporating modeling and individualized instruction as live, instructorled instruction. Video-based instruction is excellent for incorporating modeling and teaching motor skills, but it is less successful at presenting large amounts of verbal information, presenting practice opportunities, etc. CBI/CBT has the potential to combine the best of all possible worlds. It is able to incorporate graphics, text, sound, video, and animation. It can be customized to adapt to learner performance and feedback (e.g., remediation, challenge, etc.), and it can be 32 Van Eck, TOC Through Chapter 11 accessed repeatedly. It does, however, place some restrictions and requirements on the instruction and the learner. There are several questions that must be answered to determine if CBI/CBT is appropriate. Is the content stable? Computer-based instruction is expensive to modify. If the content is likely to change over a relatively short period of time and/or frequently, CBI/CBT may not be the best option. How much money and time are available? CBI/CBT is very time consuming and costly to develop. It has been estimated that an hour of CBI/CBT takes between 200 and 400 hours to develop. Costs go down with multiple uses over a long period of time, however, since making copies of instruction once it is developed costs no more than the blank CDR or DVD it is developed on. This is why it is important that the content be stable and intended for multiple users (think hundreds and thousands). Does this project require CBI/CBT’s unique strengths, characteristics, and capabilities? CBI/CBT is good at incorporating multiple modalities, including video, sound, text, graphics, non-linearity, interactivity, remediation, and individualization. If the instruction does not make use of these strengths, it is hard to justify the time and expense involved with CBI/CBT. Developing CBI/CBT because it sounds “cool” or is “cutting-edge” is not sufficient. 33 Van Eck, TOC Through Chapter 11 Do my learners possess the necessary computing skills? CBI/CBT requires at a minimum the ability to turn on a computer and use a keyboard, mouse, and CD-ROM. It may also require the ability to navigate through files and folders, and name and save files. Do my learners have access to computers? How likely is it that the intended learners will have ready access to computers? If access to computers is limited, obviously, the instruction may be less effective. And while many learners may have access to a computer at work, this is not necessarily the case for them at home. If the instruction is intended to be accessed frequently and over long periods of time, it may be necessary for the learner to have access to a computer at home. How do my learners feel about computers? Research has shown that computer anxiety can interfere with learning. Learners may not be comfortable using the computer. Depending on demographics such as age, gender, and prior computing experience, computer anxiety may be more prevalent. The answer to any one of these questions may preclude the development of CBI/CBT. Even when CBI/CBT is the best solution instructionally, if the learners are not able to make full use of it or the budget does not support it, you are better off developing instruction to be delivered in a different medium. Learning a la Mode 34 Van Eck, TOC Through Chapter 11 Once you have determined that CBI/CBT is appropriate for the given content, learners, and project conditions, it is time to make some decisions about the mode of CBI/CBT that you intend to develop. There are four main modes of CBI/CBT: tutorials, exploratory learning environments, simulations, and games. The latter two modes can be combined to form a fifth, simulation games. A discussion of each mode and its relative strengths and weaknesses follows. Tutorials Tutorials are by far the most common type of CBI/CBT. Instructionally, they can be very effective and are among the more easily developed types of CBI/CBT. Tutorials can take many forms, but most commonly they consist of presenting the learner with objectives for a section or module, the information relevant to those objectives (i.e., the content), opportunities for practice with feedback, and, finally, assessment. Tutorials tend to be linear in nature, as a reflection of the natural sequencing of content, objectives, and prerequisite skills. Tutorials lend themselves to the instructional design process because the designer can focus on one objective at a time, presenting the information needed, providing for practice and assessment, and then moving on to the next objective in a similar fashion until all objectives have been presented. This is also their weakness, however. Tutorials are potentially among the least motivating of instructional modes if not managed carefully. Tutorials require careful attention to motivational instructional strategies throughout the instruction to avoid becoming “pageturners” in the hands of novice developers. Although there are many page-turner tutorials available commercially, tutorials developed in this fashion could just as easily (and with 35 Van Eck, TOC Through Chapter 11 considerably less expense!) have been developed as print-based instruction. The whole point of developing CBI/CBT tutorials is to provide for interaction on the part of the learner. Exploratory learning environments (ELEs) ELEs represent a more generative, constructivist approach to knowledge building. This is not to say that they do not accommodate behavioral objectives but rather that the manner in which those objectives are met differs from tutorials. In ELEs, learners are relatively free to explore the environment to learn at their own pace and in their own preferred order. As the name suggests, the emphasis is placed on exploring the learning environment and discovering the concepts, rules, and information relevant to the learning objectives. ELEs are more difficult to develop than tutorials because the learner can move through the program at will, making it hard to sequence the instruction to account for pre-requisite skills. Because of this they are better at addressing higher-order intellectual skills. They are also harder to trouble-shoot than tutorials, since there are multiple paths through the instruction. They are among the most effective types of CBI/CBT when well designed and implemented, however, especially for teaching higher-order intellectual skills. Simulations Simulations have been defined in many different ways. Depending upon the researcher, a simulation may be “a process or mechanism relating input changes to outcomes in a simplified reality that may not have a definite end point” (Randel et al., 1992, p. 262), as 36 Van Eck, TOC Through Chapter 11 “the ongoing representation of certain features of a real situation to achieve some training objective” (Morris & Thomas, 1976, p. 66), and as “an imitation or simplification of some aspect of reality” (Heyman, 1982, p. 3). Rieber (1996) defines simulations as “any attempt to mimic a real or imaginary environment or system” (p. 49). Other researchers see a simulation as “a situation that enables relationships in a model to be explored and observed” (Duchastel, 1991, p. 265), or as a scenario (representation of real world), a model (rules and relationships that control the simulation), or an instructional overlay (Reigeluth & Schwartz, 1989). Simulations can fall anywhere on a continuum of complexity from modeling a bicycle pump or simple electrical circuit to modeling entire cities and worlds, as is the case with the popular “Sims” games (e.g., Sim City, Sim World, etc.). Simulations may be seen as a kind of ELE, in that they are most often meant to be explored at will by the learner. The instruction is embedded in the processes modeled in the simulation, and the learning takes place as the result of learner interaction with, and the resulting feedback from, the simulation. It is important to note that while the experience appears to be completely open and driven entirely by the learner, simulations, as all ELEs, are the result of carefully planned, rigorous instructional design processes. According to Gredler (1994), simulation share five characteristics: 1. They are implicit or explicitly problem-based units of learning that are set in motion by a particular task, issue, policy, crisis, or problem 2. The subject matter is more than just questions or textbook problems that have easily determined, definite answers 37 Van Eck, TOC Through Chapter 11 3. Participants behave according to their assigned roles in the context of the simulation 4. Outcomes are determined by skills and actions on the part of the participants, and are not determined primarily by chance or luck 5. “Participants experience reality of function to the extent that they fulfill their roles conscientiously and in a professional manner, executing all the rights, privileges and responsibilities associated with the role” (p. 16) Simulations are among the more effective modes of instruction for complex systems and processes. Simulations can represent mechanical systems such as complicated heating and air conditioning systems or social systems such as business negotiations and customer service training. Such content is often difficult to teach in traditional formats such as tutorials since the material is complex and requires an understanding of the system, which is often more than the sum of its parts. Games Games have been defined as goal-directed contests between individuals under some set of conditions and constraints (Gredler, 1994, p. 13), as “a contest in which people agree to abide by a set of rules” (Heyman, 1982, p. 3), as “competitive interactions bound by rules to achieve specified goals that depend on skill and often involve chance and an imaginary setting” (Randel, Morris, Wetzel, & Whitehill, 1992, p. 262), and as “contests in which both players and opponents operate under rules to gain a specified objective” (Cruickshank & Telfer, 1980, p. 75). Most definitions of games agree that they are goal-directed activities in which one or more people compete to attain a goal according to a set of rules and constraints. 38 Van Eck, TOC Through Chapter 11 Games are advantageous instructional tools because of their motivational properties. Games tap into the human need to play, which play theorists would argue is among the most effective instructional techniques regardless of domain. This conclusion is based largely on the observation that we learn more in the first years of life than we do in any other corresponding time in our lives (Lepper & Chabay, 1985). Games, such as those played by young animals as they are growing up, are the means by which the most important life skills are learned, naturally. “Games are thus the most ancient and timehonored vehicle for education” (Crawford, 1982, Chapter 2, p. 1). Only mammals and birds engage in play, indicating that the role of play in fostering higher learning is critical (Crawford). Rieber (1996) says research in “anthropology, psychology, and education indicates that play is an important mediator for learning and socialization throughout life” (p. 44) and that “Having children play games to learn is simply asking them to do what comes naturally. . . . However, playing a game successfully can require extensive critical thinking and problem-solving skills” (p. 52). “Little attention has been given to the psychological and sociological value of play despite its many advantages to guiding the design of interactive multimedia learning environments for children and adults” (Rieber, p. 43). According to Dempsey et al. (1997), “computer games have been employed effectively in all areas of traditional schooling—from preschool . . . through higher education . . . and continuing education of the elderly” (p. 1). Among the many potential strengths of instructional games are the teaching of complex problem-solving skills (Hayes, 1989). Games can be used as instruction (i.e., all learning takes place within the game), to supplement instruction (e.g., allow learners to practice recall of knowledge), or as 39 Van Eck, TOC Through Chapter 11 assessment instruments. Games are effective in teaching social science, mathematics, language arts, physics, biology, and logic (e.g., Randel, 1992; Bright et al., 1985), and may be more effective in terms of retention than other forms of instruction (VanSickle, 1986). Games such as Jeopardy can be used for testing verbal information and to build fluency, for instance, while games like Concentration may be used to help foster concept learning (e.g., matching pictures to definitions) or foreign languages (e.g., English to Spanish translation). Simulation Games Simulation games have been defined variously as a combination of simulations and games with competition (Heyman, 1982) and as a subset of games (McGrenere, 1996). One of the more complete definitions is proposed by Szczurek (1982, p. 27): “[an instructional simulation game is] an instructional method based on a simplified model or representation of a physical or social reality in which students compete for certain outcomes according to an established set of rules or constraints. The competition can be (1) among themselves as individual or groups, or (2) against some specified standard, working as individuals or cooperating as a group.” Simulation games may be defined as interactive experiences that contain some representation of a world, real or imagined, that behaves according to a coherent (if not realistic) set of rules, in which the participant(s) often have a clear goal, the pursuit and attainment of which may result in an entertaining, rewarding experience. As might be expected, simulation games combine the advantages of games and simulations. They are effective in all domains and for all levels of knowledge, but they 40 Van Eck, TOC Through Chapter 11 are perhaps most effective in teaching higher-order complex intellectual skills (e.g., problem solving). Learners are free to explore the environment and interact with the simulation game, which provides feedback according to the systems or rules it represents. Simulation games differ from simulations in that they are goal directed, have a set of rules under which the learner is allowed to operate, and involve some form of competition (e.g., time limit, score, other players, etc.). It should be noted that a designer is not limited to using only one mode. Simulations, games, and simulation games may make use of tutorial-based components in order to address all learning objectives. Conversely, games make excellent additions to tutorialbased instruction, both because of the practice opportunities they afford and because of their inherent motivational properties. Learner Preferences and Characteristics Instructional designers quickly learn the importance of learner analysis in the instructional design process. It doesn’t matter how well designed an instructional unit is if the intended learners can’t make use of it because of reading levels, language, or visual impairment. There are some aspects of learner analysis and preference that are particularly relevant to the design of CBI/CBT and warrant particular attention. Age and gender The age of your intended audience may have an impact on the use or design of CBI/CBT. Older adults tend to have less computing experience than younger learners. Even if you can count on their basic abilities to operate a computer, older adults may not be as adept 41 Van Eck, TOC Through Chapter 11 at interaction as younger learners, whether because of visual impairment, reduced fine motor skills, or simply lack of experience. CBI/CBT that requires multiple fine-grained interactions throughout the instruction may present difficulties. Older adults are less familiar with computer games and simulation games, and may not be as receptive to these modes even though they might be the most effective overall. Younger learners, what Marc Prensky refers to as “digital natives” (2000), may display a preference for games and simulation games, and it may be more appropriate to use these modalities for this population even if the same objectives could be met using other modalities. Gender also makes a difference in terms of strategies and modalities in CBI/CBT. Research has shown that girls and boys begin to differentiate in terms of computer skills and experience somewhere between the fourth and sixth grades, which is approximately the same time that boys begin playing computer games. While a host of computer games designed to appeal to girls are being developed, girls still tend to play fewer computer games than boys. One of the reasons hypothesized for this difference is that most computer games make use of elements that do not appeal as much to girls. Violence as a primary response strategy, competition, and repetitive arcade-style interactions tend to appeal more to boys than girls, while girls are drawn more to social interaction, communication, and exploration. When designing for both sexes, designers should look for ways to integrate a variety of strategies (providing several means of solving a particular problem, for instance). 42 Van Eck, TOC Through Chapter 11 Cognitive styles Cognitive styles are constructs that describe the ways in which people process and manage information during the learning process. These constructs are stable, meaning that they are observable across multiple populations and do not change over time. Knowing these constructs is useful for instructional design because they can help determine which strategies and approaches are likely to be most effective with different learners. Smith & Ragan (1999) identify four cognitive styles in particular that they feel are useful for instructional designers, each of which is discussed below. While it is not feasible that designers of CBI/CBT administer the instruments needed to assess these cognitive styles in their intended audience, consideration of these different styles may allow for the inclusion of strategies which will appeal to a broad range of learners. Field Independent/Dependent. Field dependent learners have difficulty isolating specific information or details embedded within larger, more complex fields of information. For example, field dependent learners would find the popular “Where’s Waldo?” books difficult, while field independent learners would be good at finding Waldo. Leveling/Sharpening. Sharpeners are similar to field independent learners; they are more easily able to pull detail from complex fields of information, whereas levelers are similar to field dependent learners. 43 Van Eck, TOC Through Chapter 11 Visual/Haptic Perceptual Style. Visual learners are similar to sharpeners and field independent learners. They tend to do best with visual information of all kinds. Haptic learners learn best by doing and interacting with information rather than relying on visual kinds of strategies. Impulsive/Reflective Cognitive Tempo. As the name implies, impulsive learners tend to respond with less reflection than do reflective learners. This becomes particularly relevant when selecting from several possible choices. For example, reflective learners might be expected to perform better on multiple choice practice items or assessment questions with multiple answers than impulsive learners, since reflective learners will spend more time considering all the options. Careful examination of each of these cognitive styles reveals that it is possible to design instruction appropriate for most learners without knowing which cognitive styles are most prevalent in your audience or sacrificing instructional objectives. For example, while field independent learners, sharpeners, and visual learners are good at pulling details out of complex visual fields, it does not mean that they cannot learn equally well from simplified visual fields of information. Where instructional objectives require the ability to pull detail from complex fields, the details of that field can be presented a few at a time to accommodate field dependent learners, levelers, and haptic learners. While haptic learners learn best by doing and interacting, other types of learners might learn as well that way also. In fact, instruction that does not require interaction and practice is a poor candidate for CBI/CBT. And keeping the number of choices and 44 Van Eck, TOC Through Chapter 11 responses within reason is not likely to result in less effective instruction for reflective learners, so instruction can be designed for both styles simultaneously. Learning styles Learning styles are somewhat more controversial than cognitive styles. Learning styles tend to be postulated by researchers in a less rigorous manner than are cognitive styles, often arising from no more than a personal observations on the part of the researcher. Research on learning styles is thus, not surprisingly, less consistent than that on cognitive styles. Nonetheless, there is one learning style that bears particular relevance to the design of CBI/CBT. Passive/Active. The distinction between passive and active learners was first postulated by Lee & Lehman (1993). Passive learners tend to be less willing or able to explore their environments than active learners. This is particularly relevant when the learner “gets stuck” and is unable to determine what to do next. Active learners will begin exploring the environment and trying many options, while passive learners will look for someone to tell them what to do next (e.g., the teacher). Some forms of CBI/CBT may be less suitable for passive learners than for active learners. Likewise, active learners will do better in simulations and simulation games than passive learners. It is still possible to design CBI/CBT for both types of learners by, for instance, building in time-based prompts which come up after a certain period of inactivity and ask if the learner needs help. Accessibility 45 Van Eck, TOC Through Chapter 11 With the advent of the Americans with Disabilities Act (ADA) and subsequent rulings clarifying Section 508 of the Rehabilitation Act of 1973, colleges must make web sites accessible to those with disabilities. It is a short leap from there to web-based instruction accessibility at universities and colleges. Even if there were not a legal requirement, however, taking learners with disabilities into account when planning CBI/CBT is the right thing to do. Instructional designers have a responsibility to ensure that learning opportunities are available to as wide an audience as possible. While a full treatment of relevant design issues is not possible here, a brief description of some of the more common issues is relevant. Auditory considerations. Learners with auditory impairments will obviously have difficulty making use of any sound during the instruction. Providing textual equivalents of auditory content is relatively inexpensive to do if planned in advance. Likewise, sound effects that are used for feedback (right and wrong feedback, clicks for button presses, etc.) should also not be used as the sole means of conveying such information. Visual highlights and animation that accompany such sound effects make it possible for those with hearing impairments to receive the same information and are not likely to interfere with those who are able to hear. Visual considerations. Learners who are visually impaired will likewise have trouble processing visual information. Providing an auditory equivalent to text elements is a good solution, but may not always be practical. Visually impaired learners are able to make use of screen 46 Van Eck, TOC Through Chapter 11 readers or third party Xtras available for Authorware that will read aloud all embedded text in the program. Likewise, visually impaired learners may have difficulty navigating from screen to screen using buttons. Providing keyboard equivalents for each command or button on screen in combination with an easily accessed auditory message describing each command can help address this. Physical considerations. Those who have physical disabilities may have difficulty interacting with a CBI/CBT program. There are many ways to overcome the difficulties these disabilities present. Assistive technology can process spoken commands into keyboard strokes, so providing keyboard equivalents as described above can help here as well. More sophisticated interactions in the instruction may present additional challenges. While navigating and selecting from a few options on screen can be accommodated, complicated simulations that rely on making multiple moves in the program can be difficult to interact with. Likewise, traditional “drag and drop” interactions may be impossible for some to accomplish. While there are no easy solutions to these issues, consideration of them up front can help minimize them. If the instructional objective allows you a choice between such interactions and simpler ones, you may elect to choose the options that make your instruction accessible to the widest audience. Operating System Considerations Up until now, most of the issues discussed have focused on more theoretical concerns. There are many more practical hardware and software considerations that must be addressed in the pre-planning stage. The first of these is what operating system (OS) for 47 Van Eck, TOC Through Chapter 11 which you will be developing. While there are many OSs available today, Authorware is only available for Windows and Macintosh. The most current version of Authorware is version 6, which runs on the Windows platform only. The latest version of Authorware for the Macintosh is version 4. Version 4 lacks many of the newer features in 6, including support for Quicktime 5, Flash movies, animated GIFs, and knowledge objects. This is unfortunate, as version 4 had some very nice features that were dropped from 5.x, not the least of which is the ability to include fonts in the final product (you must provide separate font files to your end user along with instructions on how to install them with 6). If your project will make use of any of these features and you intend to deploy the product on the Macintosh, you should develop in 6 on the Windows platform and then convert it for playback on the Macintosh. If your project does not require these new features and you are developing it for Macintosh users, you may be better off developing in 4.0, as there will be fewer playback issues during the testing and revision phase. If, as many developers do, you intend to deliver the instruction on both platforms, there are some additional considerations to make. One of the biggest issues relates to palettes and fonts, which will be discussed in more detail later. Macintosh and Windows do not use the same color palette when displaying graphics. The system palette on the Macintosh uses different colors than the system palette on the Windows platform. Authorware 7 uses a custom palette by default which closely mimics the Macintosh system palette, so you will generally get very good results when viewing the program on the Macintosh OS. Nonetheless, for more control and efficiency, many developers create their own custom palette using a program like DeBabelizer. Doing so ensures perfect color matching on 48 Van Eck, TOC Through Chapter 11 any platform. System colors and custom palettes will be discussed in further in this chapter and in Chapter 10. Similarly, the same font appears differently on Windows and Macintosh computers. Arial 12pt is available on both platforms, but will look larger on the Windows side than it does on the Macintosh side, where it will appear to be 10pt. A file called the Font Map helps Authorware make adjustments for this, but when a font is used that does not exist on the other platform, you will have to find an appropriate substitution yourself. You should always specify your fonts up front, and it is safest to stick with fonts that exist on both platforms. You can determine which ones are available on your computer by looking in the fonts folder on the Windows OS (Control PanelsFonts) or Mac OS (System FolderFonts). Alternatively, you may consider purchasing Font CD-ROMS that contain Mac and Windows versions of fonts. Another issue you will face relates to video. Not all video formats are supported on both platforms. AVI format is a native Windows format that will not play back in Authorware on the Macintosh side without AVI to Quicktime conversion software, and not very well even in that case. Quicktime is available on both platforms and is probably the most widely used format. It must be installed on the Windows platform, however. Delivery Considerations Interactive CBI/CBT can be delivered in a variety of ways, including playback from a local hard drive (through a commercial installation program delivered with the program), from a CD or DVD, or from a server over an intranet or the Internet. As with instructional modalities, each delivery platform has its own strengths and weaknesses. 49 Van Eck, TOC Through Chapter 11 And while many programs, Authorware included, can be made to run on any of these platforms after the program is created, it is critical to decide up front which platform(s) on which you will deliver the final product. Failure to consider this prior to developing the product can result in serious problems later on. Some of the differences between these platforms relate to aspects of setting up the Authorware file itself (e.g., hard drive paths), and will be discussed later in that context. Others are specific to the platforms themselves, and those bear some discussion now. Additionally, there are other delivery considerations that are independent of the platform, such as graphics, sounds, fonts, etc., which must also be part of the pre-planning process. Internet, Intranet, CD-ROM, Hard Drive The Internet, in the simplest terms, is simply a connection between a server and a local computer. The server contains information such as the web pages and web-based instructional modules on its hard drive. When an end user calls for that information through a browser, the server sends that information through the pipeline to the end user’s computer. The means by which the end user’s computer is connected to the Internet, and hence the server, determines how much information can be sent and received over a given period of time. You may have heard the terms “pipeline” and “bandwidth” discussed in terms of the Internet. These terms are synonymous, with pipeline being the metaphor we use to understand the more technical term, bandwidth. The pipeline metaphor is that the wires connecting your computer to the Internet are like pipes, and the information you get over those wires is like water. The “thicker” the pipe, the more “water” it can hold. The 50 Van Eck, TOC Through Chapter 11 amount of information and the speed at which you can access that information over the Internet is a factor of the pipeline/bandwidth you have coming into your computer. In fact, these terms apply equally well to any computing technology platform in which information is being moved from place to place, whether from a CD-ROM or hard drive to your screen, or a server to your computer (as with inter- and intranets). Each delivery platform has a different pipeline, and understanding its capabilities plays a critical role in designing and developing your CBI/CBT. The most common connections to the Internet include 56k modems, ISDN, cable modems, ADSL (DSL), satellite, and T1. Table 1 presents these connections and their relative speeds for upload and download. Heads Up: Satellite also has a delay, making response time critical interactions problematic. Type of Connection Speed per Second (download) Speed per Second (upload) Time to Upload 1MB of information Time to Download 1MB of information 56K Modem 5.6KB/sec 5.6KB/sec 3 minutes 3 minutes ISDN 128KB/Sec 128KB/Sec 8 seconds 8 seconds Cable Modem ~380KB/Sec ~200KB/Sec 2.6 seconds 5 seconds ADSL Modem ~1.500MB/Sec ~90 - 256KB/Sec 3.3 seconds 11 - .6 seconds Satellite ~400KB/Sec 33.6KB/Sec 2.5 seconds 30 seconds T1 1,500KB/Sec 1,500KB/Sec .6 seconds .6 seconds 51 Van Eck, TOC Through Chapter 11 These bandwidth differences require different solutions when building interactive instruction for delivery via the Internet. Using a lot of animation, video, and sound is not feasible if your learners only have access to the Internet via 56K modems, as is currently the case for over 90% of those with Internet connections (IDC, as cited in ZDnet, available at http://www.zdnet.com/products/stories/reviews/0,4161,2475136,00.html on 7/22), since the bandwidth is too small to accommodate such media. Intranets, private networks that are connected through Ethernet, have a much higher bandwidth, ranging, in theory, from 10 to 100 MB/Sec. Such connections can make extensive use of media without any penalty beyond file size. CD/DVD-ROMs also have pipeline limitations, manifested in the spin rate. The faster a CD/DVD spins, the more information can be accessed at once. As a general rule, CD/DVDs can generate 75KB/Sec for every “x” of their speed. For example, early CDROM drives were double-speed, or 2x, meaning they could generate 150KB/Sec of data transfer. Current CD-ROM drives spin as fast as 32x or more, indicating a theoretical maximum of 2.4MB/Sec data transfer. It should be noted, however, that current speeds do not reflect sustained transfer rates. Instead, they indicate the maximum the drive can achieve for short bursts, usually when accessing data from the inner part of the disc, which is smaller than the outside edge of the disc. Average sustained transfer rates are probably closer to 8 or 10x, indicating such drives can provide access to 600 – 750KB/Sec. Rates become critical when determining how much audio, video, and animation you can include in your project. Typical CDs are not going to be able to deliver half-screen video 52 Van Eck, TOC Through Chapter 11 (320x240) at the same time they are doing anything else; trying to do so would result in skips and jumps. It is not only the speed one must be concerned with, but also the size. CDs hold a maximum of 800MB of data. While this far exceeds the actual Authorware file size you are likely to develop, by incorporating sound and video you can easily hit this maximum. As an example, while video file sizes can vary dramatically with the means of compression used, one second of full screen uncompressed video is 30 gigabytes in size. Even at half size and compressed, seconds are measured in megabytes, not kilobytes. CDs cannot easily hold much more than 12-15 minutes of good quality video. Media Considerations Tip: Media can be stored externally to the piece, allowing the graphics to be updated in a final product simply by providing the client with new versions of the media using the same file names. The piece will simply load the new media in place of the old ones when called for. Chapter 4 will discuss this in detail. Alternately, you can also specify a URL as a location for graphics, allowing you to update the content without any client involvement. There are several decisions you need to make up front about the media you will use in your CBI/CBT. Some of the decisions you make will drive the design of the CBI/CBT itself, while others will determine the properties of the media. In both cases, making and documenting these decisions will simplify the design and project management processes, and help avoid costly revisions later. Graphics. 53 Van Eck, TOC Through Chapter 11 Authorware understands a variety of graphics formats, including BMP (bitmap), DIB, RLE, GIF, JPEG, LRG (xRes format), Photoshop, PICT, PNG (Portable Network Graphic), TGA (Targa), TIF (TIFF), WMF (Windows MetaFile), and EMF (Extended MetaFile). Of these, you are most likely to be working with BMP, JPEG, GIF, PICT, and Photoshop. Bitmaps tend to be larger files and are not the best choice for CBI/CBT that is ultimately intended for the Web. JPEGs are among the smallest files and display well on the Web as well as in CBI/CBT, but they are best-suited for photographic images. GIFs tend to be larger files than JPEGS, but they also display well on the Web and are bestsuited for clip art and other computer-generated art. PICT images are most commonly created on the Macintosh platform. They are among the smaller size image formats and will display on the Windows platform if Quicktime is installed. Photoshop images can result in large file sizes and are not recommended except when making use of graphics with an alpha channel. The alpha channel allows more specific control over graphic transparency than the more common transparent mode in Authorware. These issues will be discussed in more detail in chapters 4 and 13. Tip: Screenshots taken on the Macintosh using the Shift-⌘--3 or Shift-⌘--4 are automatically saved as PICT images. Using the Print Screen button on a Windows keyboard captures a copy of the screen to the clipboard. You can then paste the image into any image editing program and save it in different image formats. Sound. Aside from video, sound has the greatest potential to increase file size, and therefore, like video, must be considered early on in the project. Will the project include voice-overs, 54 Van Eck, TOC Through Chapter 11 sound effects, music? When making these decisions, it is also advisable to consider your final delivery medium. If CD is the delivery platform, you will need to keep the storage capacity in mind. If the piece is intended for the Web, you need to keep the bandwidth limitations in mind. The more sound you have, the less space/bandwidth you will have for other elements. As with graphics, there are several formats for sound files. Authorware can import WAV, AIFF, PCM, SWA, and VOX files. WAV is the most common sound format on the Windows platform, while AIFF (Audio Industry File Format) is often the default sound for sound editing programs when creating high-quality sound files. SWA (Shockwave Audio) PCM, and VOX files all create small files through compression. They are recommended when developing for the Web. Unless there is a compelling reason to the contrary, it is advisable to standardize on a sound format up front. There are also several options for controlling sound file size within commercial sound editing packages. Sample rate, sample size, stereo vs. mono, and compression all interact to determine the final file size. A more complete discussion of these issues can be found in chapter 13. For now, it will suffice to say that higher sample rates (11k to 44.1k) and sample sizes (8bit vs. 16bit) result in larger, albeit higher-quality, files. Likewise, stereo files are larger than mono files. It is important to test out examples of the sounds you plan to include to determine the best settings for your file, and document them up front. Tip: Authorware includes a compression utility for voice-only sound files called Voxware. This utility allows you to greatly compress voice-only sound files without significant loss in quality. See Chapter 13 for more information. 55 Van Eck, TOC Through Chapter 11 Video. Few media have the ability to impact your CBI/CBT as drastically as video. It is by far the largest contributor to final file size, and imposes the most severe demands for bandwidth (web) or access (CD). Not only does video create file size and bandwidth issues, it can add as much to the cost and time of your project as the rest of the project itself. Clients and novice designers alike have a tendency to be unduly enamored of video, especially as the cost and ease of editing digital video has come down. It is important to consider the pedagogical versus “eye-candy” value of video when planning your project. The main value of video is in displaying motion. This is particularly useful for what Gagne terms motor skills. Examples of motor skills include learning to serve a tennis ball, operating a piece of machinery, and assembling devices like barbeque grills. Video can present a series of motions and steps in sequence more efficiently than a textual or audio description can. On the other hand, many skills which appear to be motor skills can be broken down into discrete steps that can be equally represented with a series of images accompanied by text descriptions. This latter solution can sometimes be more effective than video because attention can be drawn to specific details through circles and highlights, and the learner can study these images and details over a longer period of time. Video also does not present detailed information as well as images do. The format of the video you plan to use should also be decided up front. If your project is intended to be cross-platform, Quicktime is the preferred file format. If the platform is Windows only, Quicktime or AVI can be used, but AVI can be played back by any Windows 95 or higher OS automatically, while Quicktime requires that end users have 56 Van Eck, TOC Through Chapter 11 Quicktime installed on their computers (Quicktime is available as a free download from Apple). Finally, Authorware can play MPEG video as well. MPEG format video produces highquality video. There are four types of MPEG, one of which, MPEG-2, is used for DVD video playback. These types will be discussed in more detail in Chapter 13. For now, it is important to know that MPEG files are larger files and usually require specific hardware to be played back correctly. If you are authoring for interactive DVD, you could count on this hardware being present, but it is not yet common enough to assume all computer owners would have it. Fonts As mentioned earlier, fonts do not appear the same from platform to platform. In addition, not all fonts are available on all platforms. It is essential to determine which fonts you intend to use prior to starting the project. The best way to do this is to experiment with fonts on all the platforms for which you intend to develop. Create examples of different fonts at different sizes and look at them on each platform. Pay attention to sizes and readability. An easy way to do this is to write out sentences in the font which consist of the specifics of that font. For example, to test out Times New Roman, I would write the following sentence: This is Times New Roman 12pt regular This is Times New Roman 12pt italic This is Times New Roman 12pt bold 57 Van Eck, TOC Through Chapter 11 This is Times New Roman 12pt bold italic This is Times New Roman 14pt regular….. … and view them on each delivery platform. Once you have found a font or fonts that you feel work well on all platforms, you will be able to use this information to set up your font map (for more on the font map, see chapter 10). The font map is a file used by Authorware to specify what font and size to use on other platforms. As mentioned earlier, the same font on the Macintosh platform will look smaller than it does on the Windows platform. The fontmap tells Authorware to display Arial 12 pt as 10pt when on the Macintosh platform. Also, when a font does not exist on the other platform, the font map can be used to substitute another font. Special care must be taken in this case to test out equivalent fonts thoroughly prior to settling on a substitute font. For instance the font map could be edited to tell Authorware to display text calling for Palatino 11 to use TimesNewRoman 12 (which are roughly equivalent) and vice versa. Authorware would then substitute the fonts as needed automatically. Failure to standardize on a font set and edit the font map accordingly will cause Authorware to guess at a font if it does not exist on the learner’s system. Most often, it selects Courier by default, with drastic results. Tip: If you are able to develop using Authorware 4 on the Macintosh platform, you can tell Authorware to include the fonts with the piece. This means the piece will display correctly no matter what fonts the learner has. Unfortunately, Macromedia abandoned this ability when it created 5.2 and 6.0, which are Windows-only products. 58 Van Eck, TOC Through Chapter 11 Once you have identified a basic design for your interface (see “Designing the Interface,” this chapter), you should put sample text in the places you have created for text and look at how much text fits in that area, how readable it is, and whether it matches the interface. As it will become clear later, specifying your font styles now will allow you to set up styles within Authorware. Failure to do this, which I have seen in almost every Authorware piece I’ve watched students develop, will result in a dramatic increase in font styles which cannot be deleted, and the inability to make wholesale changes to fonts without actually opening and changing every single instance of text in the piece. Color Palettes & System Colors Palettes consist of 256 colors. Of these colors, 20 are reserved on the Windows side for system colors. To prevent you from using Windows system colors, Authorware provides a custom palette that closely mimics the Macintosh system palette. By default, Authorware includes 20 colors that are specific to the Windows platform only in its palette. This is done so that Authorware’s (the program itself, not your program)windows, menus, scroll bars, and other interface elements appear correctly when you are editing. Unfortunately, this means that you can apply these 20 colors to your program. If you do so, and then play back your program on the Macintosh platform, these colors may not display correctly. In order for the colors to display properly on the Macintosh platform, you will need to tell Authorware 7 NOT to preserve the Windows system colors. This procedure will be discussed in Chapter 4. Designing the Interface 59 Van Eck, TOC Through Chapter 11 The interface has the most potential impact on the effectiveness of the final product, yet in my experience it is the most often ignored and poorly designed element in CBI/CBT. The best instructional design can be completely negated by a poorly designed interface; if learners can’t figure out how to navigate or get help, they will never see the content. Additionally, the content itself may be shaped by the interface. Issues such as how much space to devote to text messages, help, and feedback impact your selection of font sizes. Knowing how much space you have for text on each screen impacts how much content is designed for each area. It may be just as easy to split a given piece of content into three pieces if you do that initially, but not if you have to go back and make those changes later. Spending time up front designing and developing your interface will speed the development process, reduce revision time, and result in a “tighter” product. Metaphor All computer interfaces are metaphors. Therefore, an understanding of metaphor is critical to understanding interface design. Computer interfaces do not, as many people believe, simply make use of metaphors. Whether we type a command such as “print myletter.doc to LPT1” or click on a printer icon, we are in neither case printing. We are substituting one action (typing or clicking an icon) for another (the actual process of printing). In order to understand the role of metaphor in interface design a brief discussion of metaphor is necessary. In its simplest sense, a metaphor is the use of one object or concept (the vehicle) in place of another (the tenor) in order to say more than could be said in a “literal” manner. Thus, when Steve Jobs and Steve Wozniak “borrowed” their ideas for the Macintosh interface 60 Van Eck, TOC Through Chapter 11 from Xerox, what they borrowed was a set of metaphors, NOT an interface. This metaphor was, of course, the desktop. Desktops are places we keep things when we are working. By substituting a desktop for the command-line interface then common to computers, Apple was able to convey a great deal of information in a small space. Want to get rid of a document? Throw it in the trash. Want to store something for later retrieval? Put it in a file folder and label it. The power of a well-implemented metaphor is obvious when one looks at the major operating systems today, most of which make use of the desktop metaphor. Unfortunately, few of us think about the metaphor when designing an interface for CBI/CBT. We build generic “page-turner” tutorials, with forward, backward, and quit buttons. While these may work in the sense that the learner understands them (by virtue of having seen so many of them), they are not very interesting, and in some cases can make it harder to convey information. Let’s look at an example. Suppose you want to teach someone how to bake bread. You could build a page-turner with each of the steps illustrated with graphics where appropriate and then ask the learner to place the steps in the appropriate order. Interaction in this piece would consist of lots of button clicking and selecting choices. Alternatively, you could build a kitchen as the interface, use graphics of the items, and ask the learner to place the items into the mixing bowl, use the mixer, etc. Instructionally, this is closer to demonstrating the actual process than can be accomplished using textual descriptions, which should promote transfer. It is certainly more interesting and interactive in any case. 61 Van Eck, TOC Through Chapter 11 The use of metaphor does not stop there either. Rather than forward and backward buttons (if they are even necessary), you could use wooden spoons pointing one direction or the other; the recipe book could be used for getting help, and the kitchen light switch could quit the game. Interactivity now consists of working in an environment, not turning pages, and is visually more appealing. Screen design principles Screen design has been the subject of many books, and cannot be treated fully here. For more information the reader is referred to Roger C. Parker's One minute designer, and Robin Williams’ The non-designer’s design book and The non-designer’s web book: An easy guide to creating, designing, and posting your own Web site. What follows is a brief discussion of some the design considerations specific to CBI/CBT. Keep in mind that screen design should first take place on paper, so that you can try several things out and make adjustments quickly and easily. If you start with the actual screen design on computer, you are likely to become committed to your first designs. Once you have developed paper versions for your interface, select the best two or three and make mockups on the computer. You can then fine tune them, make your final selection, and create a template to use during development. Light and Screen Design When you look at any computer program, you will notice that items such as buttons and menus appear to “float” above the screen. In reality, of course, the computer screen is a two-dimensional medium. To achieve 3D effects in a 2D medium, we have to create shadows and highlights. Shadows and highlights in the real world are created by a light 62 Van Eck, TOC Through Chapter 11 source; when you are outside on a sunny day and the sun is at an angle to you, the part of you facing the sun will by lighter, or highlighted, and the part facing away will be darker, or in shadow. In addition, you will cast a shadow in the direction opposite to the light source. In the same way, to create the illusion of 3D on the screen, items that are above the background need to have highlights and shadows. In order to know how to create these, we need to know where the “light” in our interface is coming from. Once we know this, we can make sure that all elements have highlights and shadows in the same fashion, thus creating a unified, three-dimensional look. Fortunately, this decision has already been made for us: “light” ALWAYS comes from the upper left corner of the screen. Thus, elements always have highlights in their top and left sides and shadows on the bottom and right sides. Buttons, text, and boxes that are supposed to be above the background will cast shadows to the lower right corner of the screen. It is certainly possible to change this light source to create a unique interface for your project, but virtually all computer programs adhere to this standard, and it can be unsettling when this is changed. Likewise, elements which are below others, such as is common with an inset box to display text, have the highlights and shadows reversed. To understand why this is so, imagine that you are standing in an empty swimming pool, facing the northwest corner of the pool. This is also where the sun is coming from. The corner you face will be in shadow because the edge of the pool is casting a shadow. If you were to turn and face the southeast corner of the screen, it would be in the light, because the shadow does not reach 63 Van Eck, TOC Through Chapter 11 the corner and the sun is shining on the walls. Similarly, any item in your interface that is supposed to be recessed should cast a shadow from the upper left corner into the recessed area, and be highlighted in the lower right corner. Tip: When building your interface, you can achieve these effects by using light and dark colors for text and shapes on your screen. For instance, to make a raised square on my screen, I can draw square that is the same color but a lighter shade than my background (both the fill and line must be the same color—see chapter 4). I then copy that square (EditCopy) and paste it (EditPaste) to get an exact duplicate. I then change the color of that square to white, position it one or two pixels up and to the left of my first square, and then stretch the bottom left corner so that it lines up with the bottom right corner of my first square. Finally, I arrange it on screen so that it is behind (ModifySend to Back) my first square. Now only a white edge shows up on the top and left sides of my square, making it appear that the “light” is hitting the side of a raised square. You can use this technique for creating raised text, and you can reverse it to make things look recessed. Backgrounds and Borders The first place to start when designing your interface is the background. While all screen elements are somewhat interdependent, with changes in one aspect requiring changes in another, you need to have an idea for your background before you begin designing. Often, the background is determined by the metaphor of the CBI/CBT. In an earlier example about baking bread, the metaphor was of a kitchen. The background in that case would be a photograph or graphic of a kitchen. If the module was to be a tutorial instead, 64 Van Eck, TOC Through Chapter 11 such as training about safety regulations in commercial food preparation for a paper and pencil exam, we might still use a graphic of a kitchen which had been faded to the point that text and other images can be displayed against it. In both cases, having the background specified early allows us to make better design decisions about other screen elements. In some cases, it is not feasible to create a background image. In these cases, it is still possible to create an interesting background without much expense through the use of textures and patterns. Rather than specifying a plain color for the screen background, commercial CD collections are available with different kinds of textures, such as stone, metal, sand, water, wood, etc. These images can provide visual interest without being distracting. In these cases, and when using graphics or photos for a background, it is important to provide visual boundaries for the screen. Without them, content on your screen will appear to be floating in space. For photographic backgrounds, this may need to be done at the time the photo or graphic is created. Boundaries need not be as obvious as lines, either. In the kitchen example, we might take a photograph in a way that the edge of the counters and cabinets form a visual border. You can also use a graphic editing program to apply effects such as shadows and blurring to the edges of your graphic to create borders. These techniques provide definition for your screen and will help you design other elements of your interface. A place for everything, and everything in its place 65 Van Eck, TOC Through Chapter 11 Once we have a working background image, we can consider the other elements on the screen. Common screen elements include a place for direct instructional text and images, a place for directions about how to proceed, and place for responses to requests for help, and a place for buttons and other navigational tools. When designing these elements, the metaphor we have chosen can help. For instance, in our example of learning to bake bread, our main menu could be an actual menu. The instructional text might take place on the pages of a “cookbook,” and directions on how to proceed or responses to requests for help could take place on “recipe” cards. One mistake novice designers make is that they try to place all these elements on the screen at the same time, taking up the same amount of space. Not only does this kind of balance create boring screens, it is also impractical. Decide first which elements are likely to be on the screen the most often, and then determine how much space each is likely to require. Often, it is the instructional text is likely to be the most common element and require the most space. The more space you devote to this, the less “paging” the learner will have do. Navigational elements and instructions about how to proceed are likely to always be on screen, although they do not usually take up as much space. Take the elements that are most frequently on screen and try to build space for all of them to appear at once. This will minimize the amount of “mousing” the learner has to do on a regular basis. The elements that are less frequently on screen, such as help, glossaries, etc., can be assigned to icons that, when clicked, take over the screen temporarily until the learner is ready to continue with the instruction. Once you have assigned sizes and places to these elements, you need to define them for the learner. This is done by, once again, creating boundaries for each element. This may 66 Van Eck, TOC Through Chapter 11 occur naturally as part of the metaphor (e.g., recipe cards), or may need to be created through the use of lines, boxes, or other border effects. Without these boundaries, elements tend to flow into each other, creating a disorganized and confusing interface. Elements will also change shape and size, as is the case with differing amounts of instructional text. Boundaries create a sense of order and size that do not change with the content. You can then determine how much text will fit in each area, how much space each takes up, and what their precise location on the screen is so that all your screens look uniform. Consistency Once you have specified the placement and boundaries of each of these elements, don’t change them. Nothing is more aggravating to your learners than having placement and the size of elements change throughout the program. This is especially true for your navigational elements. Don’t have more than one way to navigate from screen to screen and element to element unless there is a compelling instructional reason. Buttons, icons, menus, and labels should not change location or functionality. If you must make a change for one or two instances, make that change obvious, draw the learner’s attention to it, and provide specific directions about how to proceed if necessary. Determine what the exact locations and sizes are for each of these areas and write them down so that you can make sure each screen looks the same. Text and readability CBI/CBT has a lot of advantages over paper-based instruction. Text readability is not one of them. Computer screen text is much harder to read than print. Because of this, the text 67 Van Eck, TOC Through Chapter 11 you use should make it as easy as possible for the learner to read and process. Font sizes less than 12pts are not recommended for screen text. Serif fonts (fonts like Times New Roman that have “points” on the bottom and/or top) are much easier to read on paper and on screen than san serif (fonts like Arial that don’t have serifs). This is because the serif leads the eye from one character to the next. Even with serif fonts, long blocks of text are hard to process. Break up your text into shorter blocks and widths, even if this means splitting up a paragraph. White space is not only more appealing, it makes the text easier to process; good design takes place in space between elements, not just the elements themselves. Often, especially against complex or multi-colored backgrounds, text on screen can be hard to pick out. Creating borders and defined areas with a solid background for the text can help. In cases where this is not desired, the use of color and drop shadows can help. First, pick a color for your font that provides a nice contrast with the background. Stick to more traditional colors where possible (e.g., red rather than hot pink; grass green rather than lime) as they are easier to read in long stretches. When text crosses different colors or contrast areas in your background, it can be hard to see. Try to keep your text over areas which don’t vary much in contrast. In some cases, you may even want go back and modify your background image using a photo editing program to “gray out” the areas behind where you will place your text. When this is not possible or desirable, you can help the text stand out by using one or more text “shadows.” This is accomplished by picking a color that contrasts well with the background (e.g., white or gray against a dark background , making an exact duplicate of 68 Van Eck, TOC Through Chapter 11 your text (which is yet another color), offsetting it from your text by one pixel to the right and below, and placing it behind your main text. A common example of this is the “drop shadow,” in which colored text appears to float above the page by virtue of the “shadow” it casts: In some cases, a third “highlight” can be added one pixel to the left and up to add additional definition: Tip: San serif fonts are not good for long strings of text, but they make a nice contrast on the page for shorter text such as labels, headings, titles, etc. Usability This is the hardest property of the interface to define, because it is determined by individual learner interaction with the CBI/CBT. As such, it is heavily affected by individual preferences and characteristics. Data gathered from your learner and audience analyses can help when assessing usability. Nothing will substitute, however, for getting feedback from members of your target audience. Most ID models call for formative evaluation early in the design process, and it is even more critical for CBI/CBT. It can be very helpful to sit down with learners from your intended audience and ask them to view your sketches of the interface. Ask them how 69 Van Eck, TOC Through Chapter 11 they would use that interface to access information, navigate, get help, etc. This can help narrow down and refine your interface even before you create your mock-ups on the computer. Once you have built your computer-based mock-ups, including representative screens for each major section of the program and basic navigation, you should sit down with your learners again. This process need not involve more than 5-10 screens, one learner, and 30 minutes to an hour. Failure to get learner feedback on your interface prior to designing and developing the CBI/CBT can have catastrophic results. Changes to the interface after you have created the product are labor intensive and will certainly take longer than making those changes up front; in some cases, as long as developing the CBI/CBT itself! Case Study When we began working on Ribbit’s Big Splash (CATE, 2000), we knew that we would incorporate video of Ribbit the frog (played by a hand puppet) into the project. We were developing in Authorware 4 for the Macintosh, and hoped to deliver the product crossplatform. The video was shot and we had a local video shop export the video in the Quicktime format. The codec they used was a new codec called Sorenson. Sorenson creates beautiful quality video at surprisingly small file size. Sorenson required Quicktime 3, which unbeknownst to us (or any Authorware developers at the time) and despite documentation in Authorware to the contrary, did not work in Authorware. Once we realized this, we decided to switch our development to Windows, as the new version of Authorware was available there and would presumably support the Sorenson 70 Van Eck, TOC Through Chapter 11 codec. Unfortunately, Apple introduced licensing requirements for distributing Quicktime at about that time, which meant increased cost for us (they have since removed these unpopular restrictions). In addition, end users would have to install Quicktime 3 on their systems, thereby increasing the difficulty and corresponding technical problems we would have to deal with during installation. Since we were switching to the Windows platform, we decided to use the native video format, AVI. Our video shop could not export video as AVI, however, and after spending two weeks attempting to convert the existing files to AVI, we came to the conclusion that we would have to re-shoot the entire video sequence to that point. Needless to say, this presented a serious cost to us in dollars and time. While these problems were not actually the result of not considering our platform and video formats prior to design and development, they do indicate the potential costs associated with not making those decisions up front. Summary Instructional design is critical to all forms of instruction. The underlying principle, that making decisions on paper will save time and money later during development, is as true for the pre-planning decisions needed to design and develop CBI/CBT. Pre-planning occurs prior to the design process, and focuses on issues such as platform, fonts, color palettes, file formats, interface design, and the learner characteristics specific to CBI/CBT. 71 Van Eck, TOC Through Chapter 11 Determining the type of instruction you will develop (tutorial, ELE, etc.) and careful attention to the instructional strategies you think best suit the mode and content will also guide and inform your interface design, which in turn will inform your design process. Failure to attend to these issues prior to design will, at the least, result in longer design and development time and higher cost, and at the worst may derail a project to the point that it cannot be completed successfully. 72 Van Eck, TOC Through Chapter 11 Exercises 1) You have been asked to build a program to teach people the ten new safety rules at a local manufacturing plant. Which learning mode might be MOST appropriate and cost effective (assume that CBI/CBT is appropriate)? 2) You have been asked to build a program to teach customer service personnel how to interact with customers who are unhappy with their recent purchase. Which learning mode might be MOST appropriate and cost effective (assume that CBI/CBT is appropriate)? 3) You have been assigned a project by your supervisor to develop CBI/CBT that will teach customer service skills (a kind of what are often called “soft” skills). The emphasis is on managing both positive and negative customer reactions. Describe how you might do this in a tutorial format and a game or simulation format. 4) Develop a pre-planning document for a project you intend to develop. Include your responses to each of the areas mentioned in this chapter as they relate to your project. Provide a rationale for the decision you make, and indicate how long you think it will take to make the necessary evaluations. 5) Describe what adjustments you might make in your project to account for differences in learner characteristics, including age, gender, and cognitive style. 73 Van Eck, TOC Through Chapter 11 Chapter 3: Planning & Managing the Instructional Title Overview The point at which instructional design stops and instructional development begins is usually seamless. The development of print-based or stand-up/lecture-based instruction is a straightforward process with which most designers are familiar. Other forms of instruction such as video-, web-, and computer-based instruction introduce specific characteristics into the development and implementation processes that differ from other forms of instruction. Some of these characteristics are the result of the development tool itself, such as is the case with Authorware, while others are the result of the medium. This chapter provides an overview of the planning and management issues associated with developing an interactive instructional title, with a particular emphasis on specific documentation and project management processes. CBI/CBT is among the most difficult, time-consuming, and mentally demanding forms of instruction to develop. There is a reason that CBI/CBT is expensive to develop; not many people possess the skills to be effective CBI/CBT developers, and those that do recognize the inherent difficulty and charge accordingly. While the design document is critical to all forms of instruction, it is perhaps more so with CBI/CBT. Those who are successful CBI/CBT developers can attribute a large part of their success to the use of documentation during the design phase. The design documents described in this chapter work because they allow the designer/developer to off-load much of the cognitive processing involved in development onto the documents, which in turn frees them to focus exclusively on the aspects of development related to the authoring tool itself, not 74 Van Eck, TOC Through Chapter 11 the least of which is troubleshooting. Rather than having to stop during development to make decisions about fonts, placement, and functionality (and keep track of all these decisions mentally), they are able to refer to their documentation where all those decisions have been made in advance. This documentation also facilitates team-based authoring by ensuring that everyone has the same information and conceptualization to work from when designing and developing their individual modules. Objectives At the end of this chapter, you will be able to: 1. Identify the supporting processes and develop supporting documents required when developing CBI/CBT, including: a. Goals and objectives b. Treatment c. White paper d. Variable lists e. Storyboards f. Style sheets g. Quality control sheets h. Media logs 75 Van Eck, TOC Through Chapter 11 2. Identify the issues involved with developing CBI/CBT as a team 3. Identify the client interaction procedures and documentation required when developing CBI/CBT. 4. Identify formative and summative evaluations processes as they impact CBI/CBT. 5. Identify the basic media use and copyright issues needed to develop appropriate documentation and procedures for managing media and copyright compliance. Establishing a Timeline The first thing you have to do when planning your project is to establish a timeline for accomplishing all that you will need to do. Project management and coordination is the subject of several books and courses, and cannot be discussed here in great detail, but there are some principles so essential to all timelines that you may find them useful in planning your CBI/CBT project. The timeline can take any form you wish, but it should reflect each of the planning, design, and development stages that are discussed in this chapter. Each task should have a start date, end date, and personnel assignment (if working as a team). In addition to the documents discussed in this chapter, your timeline should also reflect the ongoing processes that accompany these documents, such as formative evaluation and quality control. These processes should show up in your timeline just as any other task; each with its own task bar and start and end time. They should start early and appear at regular intervals throughout the project. 76 Van Eck, TOC Through Chapter 11 It is not uncommon for novice developers to both underestimate the amount of development time needed and to short-change the design process. As a rule of thumb, you will need at least half your time for development and evaluation, and at least 1/3 of your time for design. For readers using this book in a typical 15-week, semester-long course, this means a minimum of 5 weeks of design and 7-8 weeks of development. The development time estimate is based on the assumption that you have spent the first five weeks in the design process. If not, your development time will increase dramatically (and the quality will likely drop), as you will be forced to make design decisions at the same time that you are developing. Tip: In a 15-week semester, you will not be able to develop the project you dream of, neither in terms of quality, length, or complexity. As a rule of thumb, you will probably be able to develop no more than a five- to fifteen-minute lesson on one or two concepts with basic interactivity. It is important to be realistic about what you can accomplish as a novice developer; your goal is to learn the basics of Authorware, NOT to develop dazzling CBI/CBT (yet). Goals & Objectives Goals and objectives are, of course, integral parts of the instructional design process and are covered in great depth in instructional design textbooks. Nevertheless, some discussion of them is warranted here for two reasons. First and foremost is that novice designers often have difficulty distinguishing goals from objectives and in writing good instructional objectives. The second reason is that your goals and objectives help determine the shape and type of CBI/CBT that you develop. 77 Van Eck, TOC Through Chapter 11 Goals are statements that indicate the overall purpose of the instruction vis-à-vis the learner. Goals are the umbrella under which all your objectives fall and, in fact, are what drive your objectives. Objectives are the specific things that the learner will be able to demonstrate upon completion of the instruction, the sum total of which are your instructional goals. For example, if I want to develop an instructional module that will teach the learner to develop basic instruction using Authorware, my goal might be written thus: Given a computer with Macromedia Authorware installed, the learner will be able to create a short interactive instructional module. My objectives then come from my conceptualization of what is necessary “to create a short interactive instructional module.” An example might be: 1. Given a working version of Authorware, the learner will be able to create a basic interaction with 100% accuracy. 1.1. Given the icon palette and flowline in Authorware, the learner will be able to drag the different icons needed for an interaction onto the flowline in the correct sequence with 100% accuracy. 1.1.1. Given the icon palette in Authorware, the learner will be able to identify the different icons with 100% accuracy. 78 Van Eck, TOC Through Chapter 11 Obviously, this is an incomplete breakdown of even this one objective, but it serves as an example. A full instructional task analysis would result in tens if not hundreds of objectives, depending upon the scope of my definition of a “short” interactive module. The objectives listed above are types of behavioral objectives known as three-component objectives. The name is derived from the inclusion of the condition (given _______), what the learner specifically will do (identify/demonstrate/discriminate ______), and the criteria (with ____% accuracy). There are other types of goals and objectives, depending on what model and what philosophy of instructional design you choose. Goals and objectives that are constructivist in nature focus on process rather than behavior. For example: 1. Given a working version of Authorware, the learner will determine the relationships between different components of instruction and their manifestations in computerbased instruction (goal). 2. Given a working version of Authorware, the learner will explore the relationships between the different components of a basic interaction (objective) These types of objectives are not mutually exclusive, nor is one “better” than the other. The critical distinction is that between goals and objectives themselves. Goals and objectives are of course critical to the design of any type of instruction. They allow you to catch mistakes prior to development, guide your sequencing decisions about the content, and lead directly to your assessment items. The consequences of skipping this step or creating poor examples of them in CBI/CBT can be more drastic than for 79 Van Eck, TOC Through Chapter 11 other forms of instruction (with the possible exception of video and web-based instruction), however. The expense and trouble of changing your objectives after development in any form of instruction is significant, often requiring modification of existing instruction and assessment items if not the creation of entirely new ones. With print-based or instructor-led instruction, the instruction tends to exist largely in wordprocessing format someplace and, as word processed documents are linear and selfcontained, navigating through the instruction to make modifications is relatively straightforward. With CBI/CBT, instruction is often not linear from the perspective of the learner or designer, and making modifications to existing instructional elements is anything but straightforward. There are many examples of why this is the case, but one such example serves to illustrate the point. Assume that you created some instruction on how to repair a “widget.” As part of that instruction, the learner must be able to identify 10 parts by name and shape. To test this, you create an assessment item that requires the learner to match the shapes to their names. You later find out you need to add an eleventh part. If this were print- or lecturebased instruction, you would open the relevant document, scroll to the point where the parts are first identified, add the instruction on the 11th part, and then scroll to (or open) the assessment item and add a graphic and name for the eleventh part. If, on the other hand, this were CBI/CBT developed in Authorware, finding the relevant part of the instruction can be difficult, as there may be hundreds or thousands of component icons, each of which can be grouped or “nested” inside each other. Just getting to the relevant portion can take 10 or 20 mouse clicks, and that is assuming you know where it is (which 80 Van Eck, TOC Through Chapter 11 you will if you have developed an appropriate naming convention as is discussed later in the section on storyboards). Once there, you would add a new display icon, open it up, type in the new instruction, create an additional practice opportunity for that part (5 to 6 additional icons, each of which must be opened and modified accordingly). Then you would move to the relevant assessment portion of the file containing the drag and drop matching sequence (where the learner actually drags the images of the parts to the matching name), add and open an icon for the 11th part, add and open an icon for the name, add and modify a target area response, and change the means of scoring that item there and anywhere else in the file that makes use of it. Much of the terminology here makes little sense to you now as it references procedures in Authorware that are not covered until later, but it should be clear nonetheless that making changes in CBI/CBT can be significantly more time consuming than print- or lecturebased instruction. Taking the time to design and evaluate your goals and objectives can prevent expensive modifications down the road. Treatment Because CBI/CBT, like video-based instruction, is both expensive to develop, costly to revise, and harder to “visualize” than other forms of instruction, additional documents are required prior to development. Treatments, and the next document discussed, storyboards, are common for CBI/CBT and video-based instruction. In fact, they both come from the film world, where they serve as a means of both planning and describing the final product for the writer/director and others. By spelling out the overall look and 81 Van Eck, TOC Through Chapter 11 feel of the product on paper, these documents serve a valuable formative evaluation function in both film and CBI/CBT. Tip: If you have a DVD player, watch for DVDs that include behind the scenes information and storyboards to get an idea of what and how storyboards play an invaluable role in film creation. What is a treatment? A treatment is a general narrative description of the learner’s overall experience of the module you propose to design. It is used primarily to communicate the look and feel of the project to other design team members and to the clients. It may be thought of as a “blow-by-blow” description of the application you are designing. While it does not describe every word, picture, screen, etc., that the user will encounter, it should describe the main phases (e.g., introduction, main sections, basic content overview, practice items, interactivity, assessment, etc.) of the program. It also describes the overall approach you plan to take in delivering the instruction (e.g., the metaphor or context you will use). The treatment should give the reader a good idea of what the final product will look, feel, and act like from the learner’s perspective including color, composition/screen elements, navigation options, menus, etc. What goes into a treatment? A treatment should address the following areas: 82 Van Eck, TOC Through Chapter 11 • Visual content (e.g., backgrounds, buttons, transitions, images, text placement and behavior) • Characters (who they are, how they will behave, and what their function is) • Story line (how the program will begin, progress, and finish, and what will happen along the way) • Themes and sub-themes (what they are and how they will be developed) Remember that you do not have to know or describe exactly what every element will look like; often, all you will know is the general types of images, colors, buttons, and other elements you want to use. Just as with an instructional design document, make sure that anyone reading the treatment has enough information to describe it accurately to others or to begin designing it themselves. It is critical to have someone unfamiliar with the proposed project read the treatment. Because you are so close to the project, you will skip steps and ideas without realizing it. Getting feedback from someone else unfamiliar with the content or your project will force you to confront aspects of the design you have not yet considered, which can save you time and stress later. Treatments need not be much more than one to three pages, even for complex topics. Here is an example for a module on learning to use the PADI dive planner to plan S.C.U.B.A. dives: Background/designer notes 83 Van Eck, TOC Through Chapter 11 This project adopts a largely behavioral approach because of the subject matter. Although several techniques and ideas from the constructivist/cognitive approach will be incorporated, since there is only one way to read the tables and dive correctly and safely, a behavioral approach is most useful. Behavioral contributions to this project include: • Chaining (diving is easily intuited as discrete behavioral units chained together, and reading the card is similarly constructed) • Feedback (knowledge of correct results) on a CR schedule • Reinforcement on a FR schedule (access to underwater video segments for three consecutive correct responses) Examples of cognitive/constructivist elements in this project include: • Acronyms to remember sequence of steps • Difficulty of practice items varies with familiarity • Use of underwater metaphor for consistency The project itself will be comprised of six units: introduction, terminology, PADI Dive Planner orientation, planning single dives, planning multiple dives, and closing credits/disclaimer/references. Description of project 84 Van Eck, TOC Through Chapter 11 The program opens with a black screen, music (new age/Andreas Wollenweidertype?) slowly fades into hearing while black dissolves to full screen image of ocean. Smaller images of marine life and scuba diving appear one after the other in different parts of the screen’s periphery until perimeter is filled. Title fades into sight in middle of screen (working title is “Charting Your Way to a Safe Dive”). Title fades and is replaced in order by credits and warning/disclaimer. Music continues as screen fades out and is replaced by main graphic/image of cross-section of ocean, including a narrow strip of sky at the top, narrow strip of ocean floor at bottom, and blue water in between. Where possible, actual images of sea floor and/or sky will be used. The international diving/PADI flag appears in the upper left corner and will indicate through text the user’s position in the program at all times. A quit button appears at the bottom left of the screen (looks like a PADI flag or a buoy), and forward and backward buttons appear at the bottom right of the screen (they look like barracuda). Instructions appear regarding their use. This is the background for the majority of screens in the program, and may be assumed to be the background for all scenes unless otherwise stated. Music fades as goals and objectives of the program fade into center of screen accompanied by narrator voice-over. When the user clicks on the forward button, these are then replaced in turn by a brief description of why this program is necessary, also with voice-over. Finally, again when the user clicks on the forward button, the description fades out and is replaced by a screen of navigation instructions for use in the program, also accompanied by voice-over. 85 Van Eck, TOC Through Chapter 11 When the learner indicates she/he is ready to proceed, the terminology title fades into view, and is then replaced by a description of what will follow (definitions of terminology) and the rationale (have to know the terms before can used the planner). Audio voice-over continues here, but no music. When the user moves forward, a series of terms appears to the left side of the screen, along with instructions to click on any term to see its definition. Voice-over narration is present for the instructions and is followed by a background music loop. Acronyms will be used where possible to facilitate association. Clicking on each term brings up a definition immediately opposite it on the right side of the screen. The learner may click on each term as often as he/she likes, and may advance when ready by clicking on the forward arrow, which fades the background music out. The terms remain in the same location, while any remaining definitions fade out. A definition, generated at random, appears in the lower half of the screen. Instructions to drag the definition to its appropriate term and a reminder that a 100 percent correct response rate on this activity will allow the learner to view underwater footage are presented as text and audio. The background music appears again after the narration. When an incorrect match is made, the definition returns to its starting point and the learner is told she/he made an incorrect response (text). When a correct match is made, the definition disappears and the learner is told he/she made a correct choice (text). This is the basic structure for all responses in the program. If the learner makes all correct responses, a button 86 Van Eck, TOC Through Chapter 11 will appear along with text and audio congratulating and telling him/her to press it if she/he wishes to see video footage. The second section is an introduction to the PADI Dive Planner and is entered in the same manner as the terminology section (fade in to title, objectives, rationale, no music, voice over, etc.). Moving forward brings the user to a screen with the PADI chart on the left half of the screen. Instructions (audio and text) tell the user to watch the card and the text which appears to the right side of the screen to learn about the different elements of the card. No music is present. The first element is highlighted already on the card (yellow square) and connected to a description at the right by an arrow. The description is read aloud. Instructions to press the video button to see the highlighted item on the actual card, or the forward button when ready to move on are at the bottom center of the screen. Each time the user clicks forward, a new element is highlighted and a new description appears. This continues until all elements of Table 1 have been covered. Buttons and instructions to continue to Table 2 or review Table 1 are presented. This process is repeated until all three tables have been reviewed, at which point the user can review any table or continue to the test. The tables are again presented in order (left side of screen) and labels/descriptions of table elements appear (right side of screen) along with instructions (audio and text—bottom center of screen) to point-click on the elements on the card which match the labels/descriptions at the right. The user is also reminded that 100% correct response rate gains access to more video. Correct and incorrect responses 87 Van Eck, TOC Through Chapter 11 result in feedback (text) as in Section II. When finished, the user enters the single dive and decompression section. This section is entered as all the others are (fade in to title, objectives, rationale, no music, voice over, etc.). The second screen includes an animation of a diver making a single dive from the surface, to the bottom, and back again. The card with Table 1 is presented (left side screen) along with instructions (text and audio) to click the forward button to see the successive steps involved in planning a single dive. Learners will also have the option of viewing video of each step being performed as well. Each time the continue button is clicked a description of the corresponding step appears at right and is accompanied by audio. As the description occurs, a highlighted, animated square moves on the card to illustrate proper use of the table. A button to view the corresponding step as video then appears, giving access to the video clip. This continues until all steps have been reviewed, at which point the learner may repeat the process or continue to the test. If she/he continues, all text fades out. During the test, the time and depth figures of a hypothetical dive appear in the upper right corner of the screen. An animated scuba diver “floats” at the surface of the water. Instructions (audio and text) tell the user: “In this next section, you will be asked to determine whether a hypothetical dive requires a safety or decompression stop. To answer these questions, you will need to access the dive planner from the menu above to plan each dive. When you have done this, you will click on the dive 88 Van Eck, TOC Through Chapter 11 button to begin the dive. You will be asked upon ascending whether a decompression or safety stop is required. At that point you may again access the Dive Planner to check or determine your answer. If you get all of the questions right, you will be able to view more underwater video footage.” These directions may be accessed at any time during the test. If the learner makes all correct responses, a button will appear along with text and audio congratulating and telling her/him to press it if he/she wishes to see video footage. If the learner does not get them all correct, the screen fades and is replaced by: Davey Jones’ Locker This screen appears any time an incorrect response in entered in a test, and is accompanied by dire music (Beethoven’s Ninth, etc.). It is an ocean floor scene with no sky visible and many skeletons and bones littering the floor. Barracuda, shark, and other creepy critters abound. A sign in the foreground says “Davey Jones’ Locker,” while text across the upper center of the screen reads “Sorry, but it looks like you won’t be doing any more diving! (click anywhere to return to the program).” Clicking anywhere returns the user to the last point they were in the program via a slow dissolve. The next section teaches and tests repeated dives in the same manner as single dives (tables with highlighted squares illustrating steps which appear at right, followed by review if desired), the only difference being that all three tables of the dive planner must be used together, and the animated graphic for repetitive 89 Van Eck, TOC Through Chapter 11 diving shows a single dive by the scuba diver with a pause at the surface and then a second dive. Again, after each step is animated, the user has access to a video clip showing that step. After all steps have been reviewed, the user may access a video sequence that demonstrates all steps as one temporally contiguous action. This video may be reviewed as often as the learner wants. The test and directions are identical otherwise. All correct results in more video; any wrong results in Davey Jones’ Locker. The last section is further (scrolling) credits, another disclaimer, and the address for PADI for further information, all with the same background as the main body of instruction. As you can see, enough detail is provided to give the reader a good sense of what will be happening without going into excruciating detail about each screen. Heads Up: The treatment above was for a 1-2 hour program. Yours, for your first project, should be significantly shorter! Storyboards As mentioned earlier, storyboards also come from the world of film production. Storyboards tell what will happen on each “screen” of the instruction. They are not an exact one-for-one representation of what every element of your CBI/CBT will be; each storyboard may require tens or hundreds of programming icons to implement. Instead, it may be helpful to think of storyboards as “scenes” in a movie. Each scene may be comprised of multiple characters, each with his or her own dialog, background scenery, 90 Van Eck, TOC Through Chapter 11 sound effects, etc., yet each can be represented with a single storyboard that encapsulates all the action (e.g., “Frank realizes he’s been betrayed and confronts Don”). As in film production, the storyboard presents the main components of the scene so that decisions about content, style, etc., can be made prior to creating the final product. The storyboards can be used in formative evaluation by SMEs, as approval documents for sign-off by the client, and as design documents by the individual designers/developers. Perhaps their most important benefit is that they force the designer to think through each aspect of the module ahead of time. Novice developers of CBI/CBT often fail to see the relevance of storyboards except in retrospect. This is understandable, as it takes a great deal of time to develop them. In combination with the design document itself and the deadline, the time spent prior to actual development can be frightening. The payoff comes during development and revision, which in my experience are conservatively cut in half by the judicious use of storyboards. The experience on the part of the developers is vastly different as well. By doing the planning and arrangement up front, developers are able to devote all of their mental energy to fine-tuning, polishing, and troubleshooting. The end result is a less stressed developer and more polished product in less time. Storyboards are largely dependent upon the beliefs and preferences of the designer. They vary greatly in look and content. There are some elements that are common to almost all CBI/CBT storyboards, however. Most storyboards include a title, date, scene sketch, and media elements. What follows is a brief description of these and other common, useful elements to include on a storyboard. 91 Van Eck, TOC Through Chapter 11 Title, Date, and Branch Point The title is an optional description of the scene based on the topic or section of the module. For instance, the project could have an introduction, help, glossary, 4 main instructional topics, and assessment. It is sometimes helpful to have a prose description of the section and content. The date is simply the date the storyboard was created. Branch points are less familiar to novice developers of CBI/CBT but play a critical role in the development process and, in particular, the revision process. Branch points derive their name from the ability of the learner to navigate from place to place within the instruction according to the controls the designer places in the instruction. This can be from page to page (in linear tutorials) or from one section to any other section. Branch points are the points at which the learner can “branch” to another location. Branch points serve two purposes in CBI/CBT. First, they allow the designers and developers to keep track of how the program is supposed to behave. This not only speeds up the programming, it allows the designers and clients to view the storyboards with the same sort of functionality that will be available in the final product. It is not uncommon when making these kinds of “dry runs” to find gaps that need to be filled (transitions, introductory screens, etc.). Second, they are also helpful when working with clients who are less familiar with CBI/CBT, as they can get a feel for the interactivity and flow of the program. The second thing that branch points do is to greatly reduce the time and frustration associated with making modifications and revisions to the program. This is because they are used not only to identify the storyboards but also the corresponding elements in the 92 Van Eck, TOC Through Chapter 11 CBI/CBT. When a graphic or audio file needs to be placed in a previously developed section, knowing the branch point allows you navigate quickly to the correct location. The naming/numbering scheme you develop for branch points is largely a matter of personal choice, but whatever you choose should be hierarchical. You should be able to tell by looking at that name/number if it is a sub-section of something else. For this reason, I usually start with the first 2 letters from the relevant section (e.g., GL for glossary, AS for assessment, IN for intro, etc.). If it is a group project, I may start with two characters for the group name (e.g., G1, G2, etc.) followed by 2 letters from the relevant section. I then follow this with a decimal-based numbering scheme (e.g., 1.1, 1.2, 2.1, etc.). This way, I know that 2.1.1 is a subsection of 2.1, and that 2.1.2 comes after 2.1.1. This particular numbering scheme is infinitely adjustable through the incrementation of numbers and/or the addition of decimal places. If I find that I need to create another storyboard in between two others, I can add .1 (or .4,5,6, or whatever increment comes next in the sequence) to the number of the first storyboard. Tip: Using the numbering system from your objectives as the basis for your branch points will also help you identify components associated with each individual objective/assessment item. Power Tip: You can use your branch points as naming schemes for your supporting files (text, audio, video, graphics, etc.). This will help you identify where each file is supposed to go when it comes time to place it into the project. 93 Van Eck, TOC Through Chapter 11 Branch Point Information If each storyboard has its own branch point, then there has to be a way in the program for the learner to navigate from one branch point (scene) to another. Branch point information differs from the branch point itself only in that is an area on your storyboard for you to specify all the places the learner can branch to from the current storyboard/branch point. For instance, if I am looking at a storyboard for group 1 (G1) on the third “scene” of the first section (1.3), the branch point for this storyboard would be G1_1.3. My branch point information might contain G1_1.2, G1_1.4, G1_MN, and Quit, indicating that the learner can get to the prior page (which has its own storyboard whose branch point is G1_1.2), next page, menu, or quit, respectively from here. Graphics/Animation/Video Depending on the title being developed you may or may not have animation or video. This section is a place to describe any kind of graphics or animations that need to be developed for this scene, along with the name and location of the files, if relevant. Audio Just as you would expect, audio is where you describe any sound effects, music, voiceover narration, etc., that will be used in the scene. Remember that a scene is not necessarily just one static screen; different sounds may occur based on how the learner interacts with this scene, so you need to describe all the sounds, even though they may not all occur at the same time. Interactivity 94 Van Eck, TOC Through Chapter 11 This section allows you to describe what kinds of interactions the learner can have with the scene, and under what conditions. This is useful not only because during development you can get right to work creating without having to brainstorm interactivity, but also because it forces the designer(s) to think in CBI/CBT terms. Novice designers tend to forget all about interactivity when designing because they get caught up in the instruction itself (much as designers often forget about instructional strategies when designing other types of instruction). Text Depending on your preferences, this may contain the entire text sequence for the scene, or it may simply contain the name and location of a separate text file. As you will learn later, Authorware can bring in text files automatically and generate the relevant icons for you. Because of this, many designers prefer to create text in a word processor rather than write it out on the storyboard and then re-type it in Authorware. Scene Sketch Again, depending on your preferences, this may take up the largest portion of the storyboard, or it may be no more than a three by four box. In any case, it contains a rough sketch of the scene as it will appear to the learner. This is particularly useful when the designer is not the developer, as it aids greatly in communicating the vision of the designer. Even when the designer and developer are one and the same, you might be surprised at how many times you can’t figure out what you had in mind when you designed that storyboard earlier. 95 Van Eck, TOC Through Chapter 11 Notes to Programmer This is where you make any special notes about the scene that you think are not conveyed clearly by the other elements on the screen. Most commonly, I find myself making references to variables and special coding that may be needed to make this scene work, either on its own or with other parts of the instruction. In any case, you should identify the elements that make sense to you and arrange them according to how you think and work. I change storyboard format for almost every project I work on, although by now they all have the elements mentioned here in one form or another. Two examples of storyboards can be seen in Figure 1. Figure 1. Examples of two different types of storyboard. Style Sheets 96 Van Eck, TOC Through Chapter 11 A style sheet is a document that specifies the look and feel of your final product. In Chapter 2 you determined much of the information that goes into a style sheet, including the fonts you will use, color choices, and the names and placement of on-screen buttons and elements. The style sheet documents these earlier decisions in more detail (e.g., which fonts, sizes, and colors will be used for different elements such as titles, body text, section headings, etc.). Style sheets play three roles in the design and development of interactive CBI/CBT. During design, they force you to make decisions about the project early enough that you can make changes based on evaluations before you have invested too much effort in the project. During development, they serve as a job aid so that you do not have to make decisions on the fly and are able to focus on the development itself. Finally, they ensure consistency throughout the project. You may think it is no big deal to keep be consistent, but it is easy to make small errors along the way that you don’t catch until the quality control review. And when you are part of a team, consistency among team members is harder to manage. Just as with storyboards, there are many different ways to develop a style sheet, depending upon personal preferences, past experience, and the needs of the specific product under development. While there are no hard and fast rules about what should go into a style sheet or how it should look, there are some basic concepts and principles that you may find helpful when you are first starting out. Clarity, Brevity, & Usability 97 Van Eck, TOC Through Chapter 11 Above all, your style sheet should be usable. Long, prose descriptions of each of the elements are not easily processed. Keep your descriptions short and to the point. Use bullets, lots of white space, and clear headings or section titles in bold with larger fonts. You should be able to find any information you need in five seconds by scanning the document. Likewise, try to keep the length of the document within reason; flipping through ten pages to find things takes time. You may even want to consider using index cards with just one element on each card, which you can then bind together using ring clips to make a sort of flip book. This is portable (fits in a pocket) and less likely to get lost in all the other papers you often have around you. You can also rearrange the cards if a different order seems to make more sense later on. Text Styles It is helpful to name each text element on your screen for ease of communication and reference. Some common examples include Title, Sub-Title, Body Text, Captions, Button Text, etc. If you use shadows to make your text stand out, you will need to name each of those as well (e.g., Title Shadow, Body Text Shadow, etc.). You should list each by name, followed by the font, size, color, placement on screen, and a description of when it should be used. You may also want to provide a sample of that style in the document as well. As you will see later, these elements will help you set what are called font styles in Authorware. Colors You may find it helpful to specify the exact colors that can be used. While it is true that you can safely choose any of the colors from the palette you have specified (see Chapter 98 Van Eck, TOC Through Chapter 11 2 for more information on color palettes), you will undoubtedly spend some time in graphics editing programs like Photoshop or Fireworks creating elements for your project. Knowing the exact color you are using for different screen elements will save you time when you are creating or modifying other elements in a graphics program that you want to match to what you have created in Authorware. 99 Van Eck, TOC Through Chapter 11 Quality Control Quality control is, of course, part of the development process for all forms of instruction. It is made somewhat more difficult by the non-linear nature of CBI/CBT and by the complexity of the final product as compared to print-based instruction, for instance. Too often, quality control, like formative evaluation, is left until late in the project, when changes are expensive (in time and money) to make. Establishing a quality control plan early on helps you minimize the amount of changes needed later on. Part of the quality control plan is addressed by the creation of the documents described earlier in this chapter. If those documents have been carefully designed to be complete AND usable, and if all design and development team members know what they are, how to use them, and what their importance is, your quality control plan may be little more than “use the existing documents when developing.” There are, however, some additional considerations for quality control that have not been addressed to this point. Your quality control document should start by detailing when and how the quality control process should be conducted, and by whom. It should specify exactly how each of the documents created should be used to look for consistency and accuracy throughout the project. Quality control should be assigned to one or more people specifically; making it “everyone’s” job is a recipe for trouble, as it will undoubtedly be relegated to a lower priority than the other tasks for which they are responsible. If, as is often the case, you are the entire development team yourself, you should attempt to enlist someone outside the project in the process—we are our own worst editors because we are too close to the project. If you have a spouse or friend who is willing to help out, have them work on 100 Van Eck, TOC Through Chapter 11 quality control. If you don’t, consider paying someone to do it. In a classroom setting, it is often possible to swap quality control duties with someone else in the same situation. Regardless of who conducts the quality control, it is critical that you specify exactly when to conduct the quality control, and in what manner. If you have established a timeline, it should specify who will conduct the quality control and when they will do so. Failure to do so will result in leaving it until too late in the project, resulting in wasted time and extra effort. You may even find that there are things you should change that you no longer have the time (and perhaps the budget) to modify, as this would require too many changes in the project. Like formative evaluation, quality control should be conducted early and often. It is important for the quality controller NOT to simply go through the instruction as the learner would but to attempt to make use of all options and navigation within each scene. They should try all the buttons, menus, and interactions possible in that scene. There may be different things they need to look for based on the stage of development of the project. For instance, content can be evaluated from the storyboards for spelling and grammar long before the project is developed. In the early stages of development, it is common to focus on navigability and functionality of the program, which may not even contain any real content at that point. As the program development proceeds, the controller may examine all these issues again as all the elements are brought together in the product. The other part of quality control consists of the creation of the documents that will be used to document and manage the process. You should develop checklists and guidelines for the quality control person to use during the process. These documents should again be 101 Van Eck, TOC Through Chapter 11 short and easy to use. The quality controller should be able to use the quality control document both as a guide and as a means of documentation throughout the process. The document should list what to look for (placement and location of elements, text styles, navigation, colors, spelling, grammar, etc.) and make frequent reference to the relevant documents created earlier (storyboards, style sheet, etc.). The document should contain places for the quality controller to indicate where the problem occurred (for example, at which branch point and title), and what the nature of the problem is (doesn’t navigate as described, element is out of place, spelling/grammar error, etc.). The document should also provide a space to indicate the status of the problem (e.g., resolved, unresolved, pending, etc.) and who made the revisions and when. Tip: One way to cut down on the number of documents and promote easy tracking of quality control issues is to combine them with the storyboards. This can be done either by printing the quality control checklist on the back of the storyboards or attaching the quality control form to each storyboard. An example of a quality control checklist can be seen in Figure 2. Figure 2. Quality control checklist. 102 Van Eck, TOC Through Chapter 11 Working as a Team Working as a team to develop CBI/CBT requires tremendous attention to detail and process. While team development is the norm in the corporate training and development world, it is not recommended for those just starting out. The reason for this is that you are just learning the authoring tool and CBI/CBT development process yourself, and, until you have enough experience with all of the different roles you must play and the requirements of CBI/CBT, you cannot devote enough time to project and team management. Once you have worn all the design and development hats yourself, and after you have mastered the basics of the authoring process, you will find it beneficial to work in teams, 103 Van Eck, TOC Through Chapter 11 both as preparation for real world development and as a means of creating more sophisticated and complex titles than would be possible on your own. There are several benefits of working as a team. First of all, each person can focus on a smaller portion of the project, which not only cuts down on the development time but also allows the creation of higher quality products. Secondly, each person can make the best use of his or her own particular talents. We all experience the pain of working outside our skill set when working as a one-person team; for me, it is creating graphics and artwork, for others it may be Authorware or sound editing. Having one person to whom to refer the things we ourselves are not good at frees us to do what we do best. Thirdly, working as a team often results in a better product by virtue of the interactions and brainstorming that occurs. As an individual designer/developer, we are limited by our own vision. But each team member has their own perspective and ideas which, when shared during design and development, generates a rich body of ideas to incorporate into the product. Most team-developed projects result in a final product that is greater than the sum of each individual’s original conception. Like too many things in this world, these benefits do not come without a price. While there are many issues involved with team development, most come down to communication and project management. Because more than one person is involved, the potential for inconsistency is much higher. It becomes critical that each team member be aware of what is being done by others, themselves, and where this all fits in the overall process. 104 Van Eck, TOC Through Chapter 11 The design documents discussed to this point become absolutely critical as communication tools. The more time you spend on those documents, the less likely it will be that people will develop conflicting aspects of the CBI/CBT. Team members should be familiarized with the purpose and use of each of the documents. One person needs to be responsible for the team/project management, and that should be ALL that they do. It is a full-time job to manage communication among team members and monitor the progress of the project. Regular meetings need to be held in which all team members report progress and discuss where the team is in the overall progress. Another challenge presented by team development is in the form of document management. As the project coordinator, you cannot afford to have multiple versions of storyboards, media, and CBI/CBT modules or sections under development by more than one person. When a storyboard is “checked out” by someone, it cannot be modified by anyone else or you’ll end up with multiple versions that are difficult to reconcile. Likewise, when documents are not in use, they need to be stored someplace that is accessible to anyone who might need to work on them, and the project coordinator should know at all times who has checked out which document. This issue can be extended to the management of electronic documents as well. Once development has begun, each developer will be creating documents related to his or her own portion of the project. If you don’t have a means of collecting, naming, and archiving these files, you can easily lose track of them. You need to establish a rigorous backup procedure (whether working as a team or not) so that each person has individual backups and there exists somewhere an archive of the latest versions of the files in the event that a team member loses the working version and their backup. These files need to be named in a manner that reflects 105 Van Eck, TOC Through Chapter 11 the date of creation; do NOT rely on the time and date feature of each file, as it relies on individual computer calendars, which may not be correct. Instead, incorporate the date into the name of each file. Finally, there is a tendency on the part of individual developers to create things as they need them (e.g., a graphic, a sound, etc.). We figure, “this is just a basic sound effect; no need to hold up development while someone else creates it, I’ll just do it.” This is the legacy of one-person CBI/CBT development that we all are most familiar with. Unfortunately, this results in a file management nightmare; what do they name it? Where do they save it? Will they remember to provide a copy for the archive? Is it royalty free? The easiest solution to this is to put one person in charge of all media procurement. Anything needed during development is submitted as a request to the media person, who is responsible for creating or locating the needed element, naming it according to agreed upon convention, logging it into the media use log sheet (see media use and copyright issues below), updating the storyboard as needed to reflect this, and placing a copy in the main archive and sending it out to the requestor. Likewise, any changes that need to be made MUST be done by the same person, or you’ll end up with multiple versions. Client Interaction It is not uncommon to serve as your own client when you are first learning to develop CBI/CBT. At some point, however, you will become proficient enough with Authorware to begin taking on projects for outside clients or for your workplace. Because CBI/CBT is expensive to develop and difficult to change, some of the procedures for client interaction become more important than in other forms of instruction. 106 Van Eck, TOC Through Chapter 11 Power Tip: CBI/CBT developed in Authorware can be designed to be upgraded and updated by using external text and media files. Making changes to content is then as simple as providing new text or media files to replace those in use by the program. Authorware will then make the appropriate substitutions automatically. Chapter 4 will discuss this in more detail. The Wow Factor Many clients want CBI/CBT because they think it is “cutting edge.” Clients are rarely the best judge of training needs, however, and it is the designers’ responsibility to ensure that the solution matches the problem. If a client comes to you requesting CBI/CBT, be very skeptical until you fully understand the problem they want solved. If you feel that CBI/CBT is not warranted, or that there are other equally appropriate training measures, it is your responsibility to educate the client about other options. In cases where CBI/CBT will be just as effective as other options, you need only make the client aware that they could save money by going with other options. In cases where CBI/CBT is not justified or appropriate, you need to make the client aware that CBI/CBT may not solve the problem and will certainly cost more money than other alternatives. So why spend all this time trying to talk the client out of CBI/CBT (and yourself out of the extra money involved in developing this type of training)? Clients often don’t realize how expensive and time consuming CBI/CBT is until they get halfway into the project, at which point they may decide a) they can’t afford it or b) that you are over-charging. In either case, they will NOT blame themselves for the error. Even if they continue to fund 107 Van Eck, TOC Through Chapter 11 the project, if your solution does not solve their problem, they will hold the training and you responsible, not their decision to use CBI/CBT. Sign-offs and Documentation Of course, some clients will insist on CBI/CBT when it is not necessary or is inappropriate. At that point, you have two options: turn down the work, or develop it anyway. In cases where CBI/CBT is inappropriate, you are better off walking away. If you can’t afford to turn down the money, or if the CBI/CBT will be AS effective as other (more inexpensive) options, you need to protect yourself through careful documentation and sign-off. You need to put your concerns and communications about the project in writing and get the client to sign off on it. If there are other options that will be just as effective, indicate what those options are along with some indication of the cost savings. Make sure that you include your best estimate of the cost of the CBI/CBT. If CBI/CBT is not likely to solve the client’s problem, spell that out in writing. In both cases, conclude with a statement that indicates you have made them aware of the issues and that they want to proceed anyway. Here is an example of one possible statement: “I have read this document and understand that in [your name]’s opinion, CBI/CBT will be more expensive to develop/is not appropriate for this situation. I request that CBI/CBT be developed anyway, and authorize [your name] to develop CBI/CBT for me. My signature below indicates that I have read and understand the contents of this document.” 108 Van Eck, TOC Through Chapter 11 You need to continue this kind of process throughout the design and development process as well. As you develop drafts of your design documents (goals & objectives, strategies, learner analysis, storyboards, etc.), have the client sign off on each of them indicating they have been approved. This will prevent the unpleasantness that occurs when a client decides during development to make a change to something that was already agreed upon during design. You may still make the change, but with the sign off there is no argument about the extra time and compensation you will need to do so. Of course, you need to manage the sign-off process carefully; don’t bury clients with documentation or they may adopt a siege mentality about the project and refuse to sign anything. Only present them with versions that have been formatively evaluated and are ready to go as far as you are concerned. White Paper The term white paper comes from the world of commercial engineering, design, and R&D. A white paper is a document that specifies exactly how something should behave under the conditions for which it was designed. An example of how and why a white paper may be designed can be found in the world of computer microprocessor engineering. Assume that a company has successfully captured the majority of computer chip manufacturing industry. Their chips are the heart of 95% of all computers sold. Another company decides that they want to break into that market. They can’t just take one of the first company’s processors and copy it because there are patents that make this illegal. Instead, they take one of those chips and give it to a group of engineers whose task is to 109 Van Eck, TOC Through Chapter 11 develop a document that explains exactly what the chip will do under all the conditions for which it was designed, but not how it does it. This document is called a white paper, and is then given to a different group of engineers who then attempt to build a chip that has all the functions of the first chip. Since they have not studied how that first chip does what is detailed in the white paper, the solutions they are likely to come up with will differ enough , in theory, to avoid patent infringement. Of course, it is not likely (or recommended!) that you use this same process for the development of your CBI/CBT. The white paper, however, can be an invaluable document when it comes to designing and developing your project. Specifying in advance how you expect your CBI/CBT to function under all expected conditions forces you to think through the process early on; you’ll be amazed at how many things you thought you understood about the product’s behavior will change as you try to spell it all out on paper. It is like the phenomenon where you swear a paper you have written for a class assignment is error-free, only to discover many seemingly obvious and egregious errors upon reading it out loud. The white paper will also aid you or your developers during the development phase. It serves as the blueprint for the overall structure of the program. Contrary to what most novice CBI/CBT developers believe, the best way to begin developing the product is NOT at the beginning. Instead, you should begin by building the overall structure of the program, including elements (Introduction, Lesson 1, Lesson 2, Practice, Assessment, Glossary, etc.) and functionality (navigation, menus, question types, and variables). The white paper IS the overall structure, and speeds the development process greatly. The white paper also serves as the basis for developing your variable list. While this sounds 110 Van Eck, TOC Through Chapter 11 like a massive undertaking, remember that you are not saying how you will accomplish these things, nor are you describing every instance. Your purpose is to talk about the overall structure at a high level of abstraction, the bird’s eye view, if you will, of the program. The white paper is rarely much longer than the treatment, in my experience. Variable List Variables have specific meaning in Authorware. They serve as “containers” for information that you want to track and use throughout the program. Common examples include feedback information such as learner scores on assessments or how much time learners spend in the instruction. Less obvious uses for variables include tracking how many times learners have attempted a question, whether they have visited certain sections of the program, or what their names are. Then you can use those variables to control what the program does (e.g., presenting different kinds of feedback, making certain sections of the program accessible or inaccessible, and personalizing the instruction by referring the learner by name throughout). We will discuss variables in more detail in Chapter 11. For now, all you need to know is that the white paper helps you determine what kinds of variables you will need, and where you will need to use them. This is only true after you have worked with Authorware enough to understand what it can do on its own and what you will need to do for it (through the use of variables). You may want to revisit this chapter again once you have learned the basics of Authorware and are ready to begin developing more complex products. Media Use and Copyright Issues 111 Van Eck, TOC Through Chapter 11 The importance of media and copyright management in CBI/CBT cannot be overstated. Without a good plan for managing and documenting your media use, you will quickly lose track of what media you have used and where it is. This can spell disaster for you down the road when you have to make modifications to different media elements and don’t know where the originals are or whether you own the rights to distribute them. We discussed earlier how you need one team member who is responsible for media procurement and distribution, and that they need to develop some kind of log to keep track of media. Whether you have someone doing this or are doing it yourself as part of your own one-person team, you need to develop a media log. The media log must be updated religiously, accurately, and without exception. The first time you say “I’ll just use this file now and update the log later” is the point at which you lose control of your media use. This log should document the following information: • The name of the media file (exactly as it shows up on the computer) • What the format of the file is • Where the original of that file can be found • Where that file can be found in the project (branch points or libraries) • The copyright status of that file This latter consideration is potentially the most critical; not knowing the other information will merely increase your development and revision process (by 50-100% in my experience). Not knowing the copyright status of your media opens you up to major 112 Van Eck, TOC Through Chapter 11 lawsuits, especially if you are developing a product for commercial resale. If you cannot point to the status for every media element in your file, you cannot distribute the product. There are many misconceptions about copyright, fair use, and electronic media. This area of the law is changing rapidly and is extremely complex. In no way should the advice listed here be taken as legal advice or as a substitute for legal counsel. Having said that, there are some basic principles you can follow which will minimize your copyright infringement risk. • When in doubt, don’t use it - If you don’t know or don’t understand completely whether you can use a piece of media, don’t use it. • Grow your own - You are always safe if you have created your own media • The modification myth - Many people assume that if you take existing media and change it “enough” it is yours. This is NOT true. While some guidelines for this process exist, they are blurred and differ by content, state, and context. To be safe, NEVER use any media that you do not KNOW you have the rights to. • It’s copyrighted and cannot be used unless it SAYS it can be used 113 Van Eck, TOC Through Chapter 11 - Many people think that you have to apply for a copyright and that if something doesn’t say it is copyrighted, then it isn’t. This is NOT true. As soon as you (or anyone) creates something, it is automatically copyrighted. All copyrights belong to the creator until and only when they specifically give them away. • There is no such thing as “fair use.” - This is not strictly true, of course, but it is a principle you should adopt to be safe. What constitutes fair use depends on the context, use, and a variety of other factors which you don’t have the knowledge to determine without legal counsel • The internet is NOT public domain - In fact, you should assume that NOTHING is in the public domain. Many people believe that once you put something on the Internet, it is open for use by anyone anywhere. Again, the principle stands that if you are not expressly and specifically granted rights to the content, you CANNOT use it. • “Royalty-free” is not a get out of jail free card - Creators of content can grant specific kinds of rights and attach conditions upon the use of the content. Many people assume that the phrase royalty free means they can do whatever they want. 114 Van Eck, TOC Through Chapter 11 - Some of the rights that can be assigned include: ⇒ The right to copy (but not distribute, modify, sell, or use) ⇒ The right to distribute (but not copy, modify, or sell) ⇒ The right to modify (but not sell, or distribute) - Some of the conditions which can be imposed include: ⇒ Not being allowed to sell the media itself, but to use the media in a product that can be sold ⇒ A limit on the number of items used, or copies distributed ⇒ Not being allowed to make any use of the content for commercial purposes ⇒ Being required to give credit to the creator in any number of ways If you use collections of “royalty free” media, make sure to read the conditions for its use carefully. If you do not see specific reference to the type of use you will make of it, assume it is illegal or get permission in writing from the creator for your specific use. If you have somebody create media specifically for your use, make sure they sign a release form that specifically states that they release ALL copyrights to the work in question to you, including the right to copy, distribute, modify, sell, and repackage the media in any way you see fit. Keep good records of all such releases and don’t lose them. Case Study 115 Van Eck, TOC Through Chapter 11 As a beginning doctoral student in instructional design, I took a two-semester sequence in CBI/CBT using Authorware. I took these classes so early in my studies that I had not had the instruction design principles courses. As a result, I did not have any experience with goals and objectives, let alone treatments, storyboards, and the other documents association with the design and development of CBI/CBT. My first project was, I thought, fairly modest; I would develop a tutorial on how to use the PADI dive planner card to plan single and multiple dives. This seemed reasonable in scope to me, as the dive planner consists of three tables. Because I was new to instructional design as well as to CBI/CBT, it took me longer than others to develop my documentation. By the time I got to the storyboards, most other students had already started developing their projects. While I felt that I could ill afford to take more time on my storyboards, they were part of the class assignment, so I began developing them. One week later it was painfully obvious to me that I had too large a project. I had developed 60 separate storyboards and had only gotten through planning single dives. I decided to abandon the multiple dives and focused on finishing the storyboards for the video portion of the project. By the time I had finished my storyboards (87 total), the other students had been developing their CBI/CBT for three weeks, and more than half of the quarter was gone. It seemed I had spent too much time in design. Two weeks later I was done with basic development and ready for troubleshooting; further along than several other people in the class. If it hadn’t been for some difficulty with the graphic for the PADI card itself (I had tremendous difficulty making it fit on screen and still be readable), I would have finished before most others, despite starting 116 Van Eck, TOC Through Chapter 11 three weeks later. This had nothing to do with my abilities (I was a novice) and everything to do with my goals, objectives, treatment, and storyboards. My CBI/CBT experiences since have echoed these results, whether working as one of a team of 12 at a multimedia development company or as an independent contractor. The time you spend on documentation is more than made up for during development. Summary CBI/CBT is expensive and time consuming to develop. Designers need to be certain that both they and the client know what they’re getting in to and that CBI/CBT is appropriate for the situation. Once you are committed to developing CBI/CBT, the importance of good instructional design and careful, conscientious planning and documentation are critical to the success of CBI/CBT. The timeline is critical for establishing for the designer and client how long the process is likely to take. Goals and objectives help ensure that the focus of the project meet the needs of the client’s situation and minimize the chance of significant revisions based on misidentification of the content (assuming you get sign-off from the client, as you should with most documentation). The treatment, white paper, and variable list all serve to force you to think through the basic design and functionality of your project. The treatment is also a communication tool for the client to get a view (and approve) the overall approach. The white paper and variable list not only help when building the overall structure of the program during development, but also promote consistency as communication vehicles for the developers. 117 Van Eck, TOC Through Chapter 11 Storyboards are invaluable as planning documents and communication tools for the designer and client. Changes can be made quickly and painlessly to storyboards, saving time over making such changes during or after development. Style sheets, quality control, and media logs all ensure consistency and quality during the development process. All documentation should be used for formative evaluation wherever possible, as changes to documents are always faster and cheaper than changes to the CBI/CBT itself. Working with clients and design/development teams requires special skills and documentation procedures to ensure good communication and consistency throughout the project. Your documentation promotes good communication, consistency, formative evaluation, and can dramatically decrease development and troubleshooting time. Exercises 1) Design your own storyboard for a project you plan to develop. Consider which elements will emphasized (scene sketch, text, etc.). Use this storyboard to design a sample screen for your instruction. How will it work for you? Do you have enough space for each element? Make revisions as needed. 2) A client has approached you about developing “a multimedia CD-ROM” for sales training. Describe what steps you would take prior to taking on the job and during design and development to ensure a successful project. Make specific reference to documentation and procedures you would use as part of this process. 3) Design your own style sheet, quality control form, and media log forms for a project you plan to develop. Trade forms with a peer and review each others forms. Make changes as needed. 4) Develop your goals and objectives, treatment, and white paper for your project. Get feedback from the client or a peer and make revisions as needed. Pay particular attention to your treatment; does your client/peer adequately understand what the project will be? Ask them to describe it back to you in their own words. Ask them follow-up questions about the project to make sure they understand the aspects they do not describe back to you initially. 118 Van Eck, TOC Through Chapter 11 Chapter 4: Beginning with Authorware Overview Prior to beginning a project, there are several settings and steps you need to address in Authorware to set the stage for your project. These will be explained in a step-by-step fashion so that you can follow along with your own project if you desire. We will then talk about interface design, including metaphor and screen design before moving into an overview of the Authorware program interface. Finally, we will examine the process and pitfalls of adding text and graphics to a program, and how to control the pace and flow of text and graphic elements in Authorware. Objectives At the end of this chapter, you will be able to: 1) Identify the main elements of the Authorware interface 2) Describe the purpose and function of the basic icons in Authorware 3) Describe the purpose of the toolbox, presentation window, and design window 4) Appropriately modify the properties of an Authorware program prior to beginning development 5) Create a library for an Authorware program 6) Create and modify Display icons, including importing, creating, and modifying graphic elements and adding/modifying text 119 Van Eck, TOC Through Chapter 11 7) Use pause and Erase icons to control the flow and presentation of an Authorware program. Getting Started with Your Program You’ll remember from Chapters 2 and 3 that there are a lot of decisions and tasks that must be accomplished prior to the design of your program. It is the same with the development phase as well. Decisions about screen size, elements, colors, and file locations will all impact the development time of your program. The reasons and procedures for making and implementing these decisions prior to beginning to work on your program are discussed below. Keep in mind that much of what you do in Authorware is a reflection of the individual developer’s preferences for workflow and management. There is always more than one way to accomplish something in Authorware. As I discuss what you should do to set up your project in the next few sections, remember that these suggestions are based on my own preferences, which may not be yours. My preferences are for the most part, however, based on years of trial and error, and they reflect what I have found to be a streamlined process that minimizes errors and revisions in the long run. Setting File Properties The first place to begin with any Authorware program is with the file properties. These settings are accessed by selecting the pull-down menu labeled Modify, then selecting the File sub-menu, and finally the Properties menu. Figures 3 and 4 present the menus and dialog box for accessing and setting the file properties. 120 Van Eck, TOC Through Chapter 11 Figure 3. Accessing the file properties dialog box. Figure 4. File properties dialog box. Heads Up: For the sake of brevity, whenever menu commands are discussed the following convention will be used. The path through the menu and sub-menus will be presented in the order they are selected with arrows in between. In addition, menu names 121 Van Eck, TOC Through Chapter 11 will always be capitalized. For example, the menu sequence for accessing the File Properties dialog box described above would be written ModifyFileProperties. It is important to note one of Authorware’s interface conventions here. At first glance, it might appear that there are 12 options that can be set in this dialog box. Closer examination reveals that what we are looking at is actually only the options for the Playback tab; there are also tabs for Interaction and CMI. The settings for the Interaction tab allow you more advanced control over your program and will be discussed in more detail in Chapter 10. The CMI tab controls how your program interacts with knowledge tracking and management systems and will not be discussed in this book. The first window at the top of the dialog box contains the name of your file. There are several options immediately below that window that bear some discussion. Note that many of these options are not immediately required when you are just beginning to learn Authorware. Accordingly, many of these will not be discussed until Chapter 10. If you are already familiar with Authorware or are beginning what you feel may be an advanced program, you may want to read ahead to see if you will need to modify any of those advanced settings. Background Color As you might suspect, this option sets the default color for all of your program screens. You can modify this setting by clicking once on the square (which is white by default) and selecting a new color from the palette that appears. Note that you are using the Windows system palette here, so if your intention is to create a cross-platform piece or to 122 Van Eck, TOC Through Chapter 11 use a custom palette, you need to choose your colors carefully (see Chapter 2 for more on system colors and cross-platform considerations). You can always choose a background color later, of course, and you may elect to use an image for your background (this will be discussed later—it is not done through the file properties dialog box), but it is often helpful to select a non-white color here so that your file doesn’t have that “blank page” look. Tip: Setting your background color to black allows you to create “fade-to-black” and “fade-from-black” effects which are familiar to us from movies. When we discuss transitions and Erase icons later, you will learn about dissolves. Dissolves cause the screen to fade in or out. The catch is that they fade to or from whatever color you have chosen as your default color. Black has the advantage of creating nice transitions AND being completely cross-platform. Size This option is the first critical option you MUST set prior to beginning your piece. If you have not determined your target platform characteristics, now is a good time to do so. Your target platform is the minimum required computing setup your end-users must have in order to run your program. If you have ever purchased a computer game, look at the System Requirements section on the box; they represent the target platform. OS, processor, RAM, hard drive, video and sound requirements, and CD speed are the most common elements of the target platform. The target platform is not just helpful information provided to the end user as a service; they are also your means of ensuring that the system you are developing and testing on is what the end user will be using. This 123 Van Eck, TOC Through Chapter 11 can be critical when developing for an outside client, as their organizations may have tens or hundreds of different machines with different characteristics. Your target platform is your contract with the end user or client that you only guarantee the program to run on machines that meet the minimum requirements. Once you have specified your target platform, you can use the video specifications to help determine your screen size. In principle, you want to use the highest resolution supported by your target platform in order to give you the most screen room to work with. As with all such decisions, there are trade-offs, however. Higher resolutions mean fewer people can use the program. If you are sure of your target platform and that you will not be likely to re-purpose the content for others later, this may not be an issue. Higher resolutions also mean that text and graphics will be smaller (they take up less room at higher resolutions), which may make them harder to see or read. Computers sold today commonly support resolutions in excess of 1024 x 768, so you are probably safe selecting 800 x 600 as a resolution. To do this, click once on the drop down menu for size and select 800 x 600. You will probably have noticed that there are several resolutions to choose from including one called Use Full Screen. This last selection does what it implies: it attempts to use the full screen resolution on the target computer regardless of what resolution the monitor is set to. While it is tempting to just select this option, doing so can cause unpredictable (and undesirable!) results. The only way to be sure that your program meets the target platform specifications is to develop for them specifically. This means choosing a specific screen resolution. 124 Van Eck, TOC Through Chapter 11 The reason it is so important to set this prior to beginning your program is illustrated by the following scenario. Let’s say you left your screen setting at the default 640 x 480. You have titles placed in the upper left corner of the screen, navigation buttons in the bottom corner, and the quit menu in the lower left corner of the screen. These positions are based on the assumption that there are 640 pixels from left to right across the screen and 480 pixels from top to bottom. You then decide that you need more screen space, and so set the size to 800 x 600. Because there are now 800 (160 more) pixels from left to right across the screen and 600 (200 more) pixels from top to bottom, what was the upper left corner of the screen is now 80 pixels in and 100 pixels down from the upper left corner of the screen. The same is true for the rest of the screen. You must now physically move every object on every screen of the entire program to the “new” corners of the screen. The opposite is true when switching from higher to lower resolution, except that now what fit nicely on the screen is suddenly too large for the new (lower) resolution. Power Tip: Knowing this about resolution, you may be able to extrapolate to the situation where your end user plays your program back at a higher or lower resolution than you specified. Either your program will take up less of the screen than is available (allowing the user to see your program and to see their desktop at the same time) or will be too big for the screen (controls and screen elements will be inaccessible because they are off screen). To avoid this, you can use the ScreenWidth, ScreenHeight, and or ScreenDepth variables to have your program check the user’s settings prior to running the piece. If they do not have the correct settings, you can prompt them to quit and make the appropriate modifications. See Chapter 11 for more on variables. Screen Placement 125 Van Eck, TOC Through Chapter 11 Screen placement goes hand in hand with resolution. In the above example where the user plays the program back at a higher resolution than it was developed for, the program does not take up all the space on the monitor. Screen placement allows you to specify where the program should appear in such cases. By setting the screen placement to “center on screen,” you can ensure that regardless of the resolution, the user will see your program in the middle of the screen at all times. Title Bar The checkbox for the title bar determines whether the end user will see your program in a window or by itself. Leaving this option checked (the default) means that the end user will always see the title bar of the window your program runs in. Some people feel that this detracts from the immersiveness of the experience. More importantly, the title bar takes up space on the screen. If you have your resolution set to 800 x 600, and leave the title bar on, you actually have 800 by approximately 580, because the title bar is 20 pixels tall (about 1/4 inch). While this may not seem like much space to be concerned about, there is one caveat; if you design your program for that space and then decide later that you don’t want the title bar, you will now have a 20 pixel blank space at the top of your screen (no images behind it, no text or objects in that space, etc.). Unless you are sure you want the title bar, I recommend you leave it off and try not to put anything critical (buttons, etc.) in the top 20 pixels of the screen. That way, if you decide to add the title bar later, it will just cover up the top 20 pixels; if nothing critical will be covered up, you won’t have to make any modifications. 126 Van Eck, TOC Through Chapter 11 Menu Bar The menu bar is just that, the bar at the top of your screen that contains menus. By default, all Authorware programs display a menu bar with the menu “File” in them. If your program does not make specific use of pull-down menus, you should elect to turn off the menu bar. If your program uses any menus at all, you must have the menu bar turned on, or the end user will never see your menus. Building Font Styles This is the most critical step and the most often over-looked. I cannot emphasize the importance of setting your font styles enough. You may remember from chapters 2 and 3 that failure to set font styles and use them consistently results in, at best, a multitude of useless font styles that can cause programming bugs and glitches, and at worst can set your program back days or weeks if you find you must change your fonts later. To understand why this is so, keep in mind that an average program can contain two to three thousand different icons. Because most instruction is predominantly made up of text and graphics (at least 50-75% in my estimation), the majority of these icons will be Display icons (icons used to display text and graphics). Let’s say you type each piece of text and format it using the font, size, and style options individually (which you can do) instead of font styles. Doing so will cause Authorware to create new styles each time you make a change to a font, size, or style option. You then decide during your one-to-one evaluations that the font you chose is not as readable as you would like, and you want to change your font. If you go now to your font styles dialog box, you will see lots (50 to 100 is not uncommon) of font styles, each of which is named things like “Times 12,” or 127 Van Eck, TOC Through Chapter 11 whatever Authorware chose for it. You have no idea which of these fonts apply to which parts of your screen (are the titles, body text, captions?), so you have not way of know which ones to change. Instead, you would have to open up every single one of those Display icons (some of which will be nested 2 or more levels deep), select each piece of text with the text tool, and apply the font change one at a time. In contrast, if you used styles, you would open up the style dialog box, change the style one time, and apply it to the entire file. Fortunately, setting your styles is relatively easy to do. Open the define styles dialog box by clicking TextDefine Styles. The dialog box will appear (see Figure 5). Figure 5. Define styles dialog box. You will automatically see one style called “(Default Style).” To add a new style, click the Add button. The default name of your style, New Style, will appear in the window immediately above the Add button. Name the style (e.g., body text, title main, etc.) 128 Van Eck, TOC Through Chapter 11 according to your style sheet by selecting the text and typing in the new name. Once you have done that, set the style characteristics using the check box options in the middle of the dialog box. Note that you MUST place a check mark by any attribute that you want to have applied to your style. It is a good idea to set these options in the order they appear, from top down (e.g., font, size, bold, italic, etc.). Check the box next to the font menu (top of the middle column) and select the font you want to use. You will only be able to choose fonts that are installed on your system. Heads Up: Keep in mind that not all fonts you have will be available to the end user of your program, and that not all fonts are available on all platforms. Next, check the box next to the size menu and choose the size you want for this style. A preview of your choices will appear in the box in the upper right corner of the dialog box. You will have to select “Other” to see the full range of choices. Continue setting your options in a similar fashion by working your way down the middle of this dialog box. When you get to the color option, you will need to click on the colored area to pull up the color palette choices (see Figure 6). 129 Van Eck, TOC Through Chapter 11 Figure 6. Color palette for setting font styles. Heads Up: This palette is subject to the same color palette restrictions discussed in the previous chapters. If you have created a custom palette for your piece and loaded it, this palette will reflect that. Tip: It is a good idea to assign a color to all your font styles, even if you are taking the default black. This is because you may want to base some styles on others but use a different color. A common example is when you want to emphasize your text by placing a “shadow” under it as described in Chapter 2. In such cases it is common to set a style that uses a light colored text for the main text (the part that is in the “light” above the background) and to create a new style based on that style, but which is black (i.e., is the shadow cast by the text above it). If you create a style and include the color name when you name the style (e.g., body text black) you will find it easier later to keep track of the different versions and styles that you use. Heads Up: The section to the right labeled “interactivity” will be covered later in Chapter 7 as a specific kind of navigation option. For now, just think of this section as the way you add “hot text” to your file. Hot text allows you to click on a word or phrase and have the program perform an action such as going to another place in the program. 130 Van Eck, TOC Through Chapter 11 Tip: You can modify your styles later by going through the same process, except you simply select the style you want to change, change your options, hit the Modify button, and then the “Done” button. Authorware will then go through every icon in your file and change every instance of that style automatically. Once you are done setting the options for your font style, you must hit the “Modify” button, or none of your changes will be saved. This will move the named style you just created up into the window under [Default Style]. You can then hit the “Done” button to exit the dialog box. Color Palette As mentioned in Chapter 2, the Windows and Macintosh operating systems display colors differently. Authorware’s default palette does a good job of mimicking the colors on the Macintosh OS, with the exception of 20 colors. These 20 colors are reserved for the Windows OS so that Authorware’s interface (buttons, scroll bars, window titles, etc.) appear correctly. Unfortunately, that means that if you select them, they may not show up correctly when your program is played back on the Macintosh OS. To ensure that your colors will appear on both platforms correctly, you need to tell Authorware not to include these 20 colors in its palette. To do this, go to ModifyFilePalette and uncheck the box that says “preserve system colors.” Authorware will then ‘abandon’ the system colors so that your color palette is virtually identical to that of the Macintosh OS. There is one unfortunate cosmetic side effect to doing this, however. Because the Windows system colors are no longer part of your palette, Authorware’s windows, scrollbars, and other interface elements will not display correctly (in my experience, they 131 Van Eck, TOC Through Chapter 11 turn pink and yellow, although it is possible that this may vary from computer to computer). This problem affects the entire Windows interface when you have your monitor set to 256 colors, and you have the Authorware window open (colors display normally when Authorware is minimized or not running). To avoid it you need only set your monitor to 16-bit color or higher. Heads Up: Since this problem affects the Windows interface components themselves, this includes the title bar, menu bar, scroll bars, and buttons in your packaged piece as well. If your final program makes use of these elements, they will not display correctly if the end user’s has their monitor set to 256 colors. There are several options to avoid this. You can avoid using menu bars, title bars, and scroll bars, and you can use custom buttons instead of the system defaults. In this case, you should also make sure your program resolution is the same as the end users. If your program runs at a lower resolution than that of the end user’s monitor, they will be able to see the desktop in the background, and it will be affected by the color change. If you need to use these elements, you can use functions and variables to verify the end user’s color configuration and change it or request them to change it prior starting the program. You can create a custom palette (Chapter 10) that contains the colors you need and preserve system colors. Adding Text & Shapes Much of what your instructional product will do is present text and or images in prespecified sequences. In both cases, you need to use a Display icon. Adding text is accomplished by dragging a Display icon onto the flowline and running the piece (ControlRestart). When Authorware hits this empty Display icon, it will stop, open up 132 Van Eck, TOC Through Chapter 11 the Display icon (shift into authoring mode), allow you to type or import graphics, and wait for you to close the window (by clicking on the “x” at the upper left of your tool palette), at which point it will continue on in the program as normal. Heads Up: There is a very important rule concerning Display icons that will impact your ability to erase, animate, and to create drag & drop interactions. Anything that you want to control by itself (erase, animate, drag, etc.) must appear in its own Display icon. For example, if you want to erase the title of your presentation, the title must be in its own Display icon with nothing else. This is because Authorware erases everything inside a given Display icon. If you were to put the title in a Display icon along with some credits, you would be forced to erase both the title and the credits. Beginning programmers have trouble with this concept because they tend to build screens (what the user sees) all together in one Display icon, making it impossible to erase or animate just one part of that screen. The Toolbox Text (and drawings and shapes) are added to a Display icon through the use of the tool palette (see figure 8). Taken in order from left to right and top to bottom, there are 8 tools in the tool palette. The first tool, with the arrow, is your default cursor tool. This is used for clicking on objects (such as text objects or graphics) already created inside your Display icon and moving them from place to place. You can use this tool to drag any object on your screen, including text, graphics or shapes you have drawn. 133 Van Eck, TOC Through Chapter 11 Figure 8. Tool Palette for editing Display icons when in authoring mode. TIP: The name of the tool palette is derived from the name of the Display icon currently being edited. When you first drag any icon to the flowline, Authorware immediately names it “untitled.” This is not very helpful for remembering what you want to type or place inside this icon, however! The first thing YOU should do after you drag the icon to its place is to name it for what it is. If you have set up branch points in your storyboards, you can use those to name your icons. But you should also probably include enough in the title of the icon to jog your memory for what should appear there. If you build good habits with this from the beginning you will find you spend much less time in the authoring, troubleshooting, and fine-tuning stages later. The second tool is the text tool (A). The vast majority of your time inside Display icons will be spent using the arrow pointer or your text tool. We will discuss this tool in its own section momentarily, as it is more complex than the other tools. The other remaining tools are used to draw lines or shapes. The cross hairs (+) allows you to draw perfectly straight lines up and down or across. The line tool draws straight lines in any direction (you can force it to draw perfect 45 or 90 degree lines by holding the shift key down). Starting at the left of the bottom row of tools, the circle/oval allows you to draw circles and ovals; the square/rectangle allows you to draw squares and rectangles; and the rounded corner square/rectangle allows you to draw rounded corner squares and 134 Van Eck, TOC Through Chapter 11 rectangles. The last tool allows you to draw irregular shapes by clicking each time you want to “anchor” the line and “stretching” each line to the desired length and position. When you are done and want to “close” the shape, you double-click on the desired end point. Adding Text/Text Tool The text tool (A) is used to add text to your screen or make modifications to text you have already created. In both cases, the first step is to click the text tool, then click on a blank area of the screen (to type text) or inside some text you have already created (to edit it). Power Tip: While any amount of text can be added to your program in the fashion mentioned above, Authorware has a unique, powerful feature for adding large amounts of text to your program. This technique requires the use of a framework, which will not be covered until chapter 7, and it is best suited for use when you have multiple pages of text that you want to appear in the same place on your screen. If you add a framework to your flowline, drag one Display icon to the framework, open it, select FileImport and point to a word processed file (e.g., Microsoft Word) that has been saved as Rich Text Format (rtf), Authorware will bring in all the text. You have the choice of telling Authorware to add a new Display icon for every page of text or to ignore page breaks and bring the file in as one text object. Authorware looks for hard page breaks (those that you insert manually in your word processor) to determine when a new page starts. 135 Van Eck, TOC Through Chapter 11 Once you begin typing using the text tool, or when you click on an existing text object using the text tool, you will see a line across the top of your text object with two squares and three triangles on it (see Figure 10). Figure 10. Indentation and Tab Markers of a Text Object. The white squares at the outer limits of the line represent the text object handles used to determine how big your text box is. You drag these as you would the object handles described earlier in this chapter to re-size the object. When you drag these, the size of the entire text object is changed. They are roughly equivalent to the left and right edges of a page in a word processor. The triangles allow you rudimentary control of your indents within your text object, and are roughly equivalent to the margins in a word processor. When you drag these, you change how much space within your text object can be occupied by text. For instance, if you drag the solid triangle at the right end of the line toward the middle, you are telling Authorware that the text object should remain the same size, but that you want the text within that object to wrap around to the next line before it hits the edge of the text object (e.g., you are setting the right margin of your document). Likewise, when you drag the bottom triangle on the left in toward the center, you are telling Authorware to start the text a certain distance in from the edge of your text object (e.g., you are setting the left margin). 136 Van Eck, TOC Through Chapter 11 When you drag the top triangle on the left in toward the center, you are setting your first line indent (e.g., you want to indent the first line of every paragraph). No matter which triangle you move, the change will only be applied to the current paragraph, NOT the entire text object, so if you have more than one paragraph (i.e., you have typed text and hit the return key at least once) and you want to change the indentations of all paragraphs in my text object, you have to first select all the paragraphs and then adjust the indents (triangles). You can set tabs in your text document by selecting the appropriate paragraph(s) and clicking once on top of the line. When you do so, another triangle will appear, this time pointing down toward your text. This represents a left tab, meaning that when you hit the tab character, the text you then type will start at a point in line with that triangle and continue as normal toward the right side of your text object. If you click on that triangle one more time, it will change to an arrow pointing down. This represents a right tab, meaning that when you hit the tab character, the text you then type will start at a point in line with that arrow but then continue toward the left toward the left margin of your text object as you type. Tip: If you need to align text within your text object (e.g., an indented section of text, or a list), you must use the procedure outlined above. If you attempt to line things up using the space bar, you will never get things perfectly aligned, and it will show. Even in the rare cases where you can get it to look ok, any change in font size, font type, or size of the text object will completely alter your alignment. Font Styles 137 Van Eck, TOC Through Chapter 11 Once you have typed text (or imported it from a word-processed file), you then need to assign a font style to it. This will ensure that you do not inadvertently change fonts or sizes from one screen to the next and, more importantly, that should you wish to make a change (to another font, size, color, etc.) you can do so in one step and have it applied to the entire file. When you begin typing using the text tool, Authorware automatically assigns a style called “default” to the text. Font styles can be applied to text in one of two ways. There is a drop-down menu in your toolbar at the top of the screen which, when accessed, provides a list of available font styles from which you can select. Alternatively, you can go to TextApply Styles and a window will pop up listing all available styles along with check boxes to the left of each style name. Clicking on the check box to the left of a style will apply it. In both cases, you must first have selected the text to which you want the style applied. Tip: I recommend the latter method of applying styles for two reasons. First, when using the drop-down menu to apply styles, it is often difficult to scroll through the available styles. In earlier versions of Authorware, some styles would not show up through this method (this bug appears to have been addressed in Authorware 7). Secondly, it is possible to accidentally assign more than one style to a piece of text during the course of developing your program. In such cases, the drop down menu will show a blank instead of the styles (since it can only display one style name at a time). Using the Apply Styles window ensures that in such cases you will be able to see that more than one style has been applied by looking at the check boxes. Scrolling vs. Non-Scrolling 138 Van Eck, TOC Through Chapter 11 Sometimes you may have too much text to fit in the space you have set aside in your interface on a given screen. If you cannot solve this through editing or breaking the text up into two screens, it is possible to have the text display with a scrollbar to allow the learner to scroll through the text. This is accomplished by selecting “scrolling” from the text menu (TextScrolling). In general, I do not recommend using scrolling text for three reasons. First, it may make the text difficult to access for learners with motor impairments (scroll bars require fine motor skills). Second, learners generally don’t like scroll bars for the same reasons and because they interrupt the flow and may “interrupt” the interface metaphor. Thirdly, if you have too much text for one screen, you either have not allowed enough space in your interface for text elements or you have too much text for learners to easily attend to and process. It is worth a second thought in any case before you add scrolling text. Anti-Aliasing Although most items on the Text menu are self-explanatory and their function easily intuited, some readers may not be familiar with the term anti-aliasing. When text is drawn on a computer screen, it is made up of tiny, individual squares of color (pixels). Because of this, any part of a letter that is curved is actually made up of solid squares arranged in a curved pattern. While this pattern looks like a curve from a distance, it appears to be “jagged” when viewed up close or when the text is large. Anti-aliasing is a technique that uses squares of color at different shades and intensities to create a smoother appearance. Figure 9 presents a close look at text with and without anti-aliasing. Notice in particular the lines of the W, A, and s. This effect is more pronounced at larger sizes and in some fonts (e.g., courier) more than others. 139 Van Eck, TOC Through Chapter 11 Figure 9. Text with and without anti-aliasing. To make your text anti-aliased, you select or highlight the text object, then go to TextAntialiased. Unfortunately, there is currently no way to build this into your font styles, so you must apply it one at a time (are you listening, Macromedia?). The RTF Objects Editor At the risk of getting somewhat ahead of ourselves, a brief mention of another means of creating and editing text, the RTF Objects Editor, is appropriate here. Note that in order to make use of the RTF Objects editor, you must first use the RTF Knowledge Object, and knowledge objects will not be covered until Chapter 9. Nevertheless, it is relevant to our discussion now. The RTF Objects Editor represents one of the most significant and long-awaited upgrades in Authorware 7. Up until Authorware 7, it was only possible to make rudimentary edits to your text (e.g., bold, italic, underline, size, alignment, and font). Bullets and numbering were not possible, spell check was only possible by searching through the entire program one icon at a time. Tabs, while technically supported, were almost impossible to implement in practice. The Rich Text Editor in Authorware 7 changes all that. While not a true word-processor in its own right, it nevertheless comes very close by incorporating almost all the features 140 Van Eck, TOC Through Chapter 11 you really need to create and edit basic word-processed documents. The RTF Objects Editor will look very familiar to users of Microsoft Word Pad or Word. The RTF Objects Editor gives you access to traditional word-processor options such as font, size, paragraph, line-spacing, alignment, tabs, super-/sub-script, bullets and numbering, inserting images and fields, search and replace, spell-check, and even limited database connectivity. Importing Graphics Before we discuss importing graphics, you need to understand the difference between internal and external storage of media. In Authorware, you can store a graphics internally or externally. If graphics are located internally, you will have fewer files to keep track of since each object will become an actual part of the program. This also means that your program will be larger in size. If you store them externally, the program will be smaller, but you will have to distribute each piece of media with your final program, which means you will have to keep good track of each file. Storing media externally tells Authorware to simply make a reference, or pointer, to the file. When it comes time for the media to be displayed or played in the program, Authorware will go to the place you tell it the media and play that file. The best way to make this decision is to ask yourself if you will need to make frequent changes to the media themselves, both during the development AND after it has been distributed to the client. If you expect to frequently edit the files based on client feedback and formative evaluation, you may want to store the media externally. That way, you can simply open the sound or image in the program of your choice, make your changes, and 141 Van Eck, TOC Through Chapter 11 your Authorware program will display the new version automatically (as long as it is still named the same thing and located in the same place). Also, if you expect the content to change after you deliver it the client, storing your media externally will allow you to edit the media and send only the media to the client. Luckily, Authorware stores all media internally by default, which is the best option to use when you are first learning Authorware. I say luckily both because it makes it easier for beginners and because you can actually export your media later if you change your mind. These procedures will be discussed in more detail later in Chapter 10. If you are unsure at this stage whether your media will be stored externally, or if you are just learning Authorware, store your media internally. If you know that you want to store your media externally, you must specify this every time you import media. Once you have decided how to store your graphics, the process of importing them is quite simple. Again, you drag a Display icon over to the flowline, run the program, and wait for Authorware to shift into authoring mode. You can then select the FileImport command, select the file you want to import, and Authorware will bring the file into the Display icon you have open. You can then use the arrow tool to position the graphic or resize it by dragging the “handles” at the corners and on the sides (handles are gray-black squares that show up once you have selected the object). Power Tip: You can import multiple graphics files in a single step by selecting the graphics files you want from the disk they reside on and dragging them onto your flowline in Authorware. Authorware will automatically create a new Display icon for each graphic, place the graphic in the Display icon, and name each icon exactly what the 142 Van Eck, TOC Through Chapter 11 graphic file is called. In order to do this, you must resize the Authorware window so that you can still see the desired location on the flowline and arrange your screen so you can see both the Authorware window and the window that contains the graphics files you want to bring in. Note that you can do this with sound and movie files as well. This is an excellent way to quickly build a library for your program. We will discuss libraries later in this chapter. Aligning Objects Aligning Objects Within icons Once you have brought in your graphics and created your text objects in a Display icon, it is often the case that you need to align them. You cannot really eyeball this; it will drive you crazy over a long period of time. Fortunately, Authorware provides an easy solution. If you first select all the objects you want to line up, you can then select ModifyAlign to bring up the following window: At first glance, this does not seem very intuitive, but there is a logic to the display. Clicking the different squares will, from left to right, top to bottom, align the selected objects by left edge, top edge, vertical center, horizontal center, right edge, bottom edge, 143 Van Eck, TOC Through Chapter 11 equalize the horizontal space between them, or equalize the vertical space between them. You can apply as many or as few of them in a row as you like. Aligning Object Between icons Aligning objects between icons is a little less straightforward but manageable if you have adopted the approach to authoring I suggest (build it first, fill it in later). The reason it is harder to align objects between icons is that doing so requires that you be able to see what is in both/all icons at the same time. Yet when you open up an individual icon, you can only see what is inside that icon. There are two solutions to this dilemma. The first, and preferred, solution is to add icons to the flowline that you will fill in as you run the program. That way, you can see everything on the screen from before as you add and adjust the contents of the new Display icon. This is true even when you decide to add one or more elements to a part of the program that you have already set up in this manner; simply drag an empty Display icon to the flowline where you want the new element to appear, run the program, and create the new element(s) when Authorware stops at the empty icon. You will be able to see everything that has come on screen up to that point. Tip: Filling in content as you go by running the program is the preferred method for working in Authorware. The problem is that once your program begins to get larger, it may not be practical to wait for the entire program to run each time. In order to run just the part of your program you are currently working on, you can use the Start and Stop Flags. These are located at the bottom of your tool bar; the white flag is the start flag, and the black flag is the stop flag. Drag the white flag to the point in your program that you 144 Van Eck, TOC Through Chapter 11 want Authorware to start at for now, and drag the black flag to the point in your program that you want Authorware to stop for now. You can then hit run button (which now contains a picture of the white flag) or use the menu (ControlRestart from Flag) to run only the part of your program between the start and the stop flag. There is another method of seeing what has come before while you edit another icon. If you open up one icon, close it, and then hold the shift key down while you open another icon, you will be able to see the contents of the first icon while you are inside the second icon. There is no practical limit to how many icons you view at once using this method, and there are occasions when it may be necessary to use it. In many cases, you may not need to worry about seeing the contents of earlier Display icons. If you have created spaces for text, titles, and graphics in your interface, then placing these items is just a matter of lining up the object with the space you have created. Tip: You can use the arrow keys on your keyboard to “nudge” text and graphic objects in a Display icon one pixel at a time to make precise adjustments. Inspectors When you create graphic shapes or lines in Authorware, the default color is black on white, and all lines are the same size. This is rarely the desired result for all graphics in your piece. To change these properties, you must use what Authorware calls Inspectors. There are four Inspectors: Lines, Fills, Modes, and Colors. Each are accessed through WindowInspectors, and each brings up its own window. Lines brings up a window that 145 Van Eck, TOC Through Chapter 11 lets you choose from a variety of dashed, dotted, and arrow-head lines in differing thicknesses. These can only be applied to lines and shapes you have drawn in Authorware using the tool palette. Fills brings up a window that lets you select from among several different patterns to have inside shapes you have drawn. Fills do not affect color or lines. Modes and colors are probably the two most frequently accessed inspectors, and require a more lengthy discussion. Modes There are four different modes to choose from; Opaque, Matted, Transparent, Inverse, Erase, and Alpha. These modes can be applied to any object or graphic in Authorware, whether created with the tool palette or imported from an outside file. The modes determine how that object is displayed when it overlaps (or is overlapped by) another object on the screen. Opaque means the object will obscure whatever it overlaps. Erase attempts1 to set the object color to the same as the background color you specified for Authorware. Objects set to Erase will block out any object underneath them, making it look like part of them has been erased. Inverse will set the color of the object to the inverse of whatever is underneath it (try it to see what I mean). Alpha allows the object to retain its color attributes but become transparent so that we can see through it to some extent. This works only with 24-bit images created in a program like Photoshop or Fireworks in which you can specify an alpha channel. 1 I say attempts, because in the case of graphic images you have imported, it cannot do so perfectly. This mode is primarily intended for shapes you have drawn in Authorware. 146 Van Eck, TOC Through Chapter 11 You may have noticed that I skipped Matted and Transparent modes. This is because they are harder to understand from their names. Transparent mode actually means that only the parts of the graphic, picture, or text that are pure white will become invisible (not transparent, like Alpha), leaving only the non-white colors visible. This is particularly useful for clip art, which often comes as an image on a white square background. A less obvious use for it is with text. As you will see in the next section, text has a color for the letters themselves AND for the background of the letters (the text object). By default, all text objects have a background of white. This creates a problem when your program uses other colors. Making your text box transparent allows only the letters themselves to show up, with any colors or images underneath them being allowed to show through. Matted, on the other hand, functions in the same way as transparent, with the following exception: any white color that is surrounded by another color will stay white. For example, if I had a picture of a snowman on a white background and I set it to Matted, the white background would become invisible while the snowman himself would stay white (because he is comprised of three circles of white with black lines surrounding the white). Tip: Transparent and Matted only work with pure white. One of the most common problems people have with these modes is that a graphic will appear to be eye to be white, but is in reality not pure white, resulting in these impure white areas to remain visible despite setting the graphic to transparent. Pure white is defined as having a value of 255 for the Red, Green, and Blue channels. You can set this within your graphic editing program. If it is off by even 1 number (e.g., 254, 255, 255) Authorware will not be able to make the white transparent. 147 Van Eck, TOC Through Chapter 11 Colors We’ve already discussed how to specify colors for your text when you define your font styles, and that is the only way you should modify text color in your program. If you want to change the color later, you need only go to TextDefine Styles and modify the color for the desired font style to change every text object in your program to which you assigned that font style. The Color Inspector (WindowsInspectorsColors) allows you to specify the colors of any drawn graphic in your program. Remember that drawn graphics are those you create with the tool palette. You cannot use the color inspector to make changes to images or graphics you have imported into your program from outside Authorware. Figure 11 presents the Color Inspector window. Figure 11. Color Inspector Window. As with all such modifications, the first step in changing color is to select the object you want to modify. Color changes are effected by clicking on the square containing the color you want. 148 Van Eck, TOC Through Chapter 11 Heads Up: You may remember from Chapter 2 that your color palette and system colors depend upon the OS you are developing on, the platform you are developing for, and whether or not you use a custom palette. The Color Inspector will display the default color palette for the OS you are on unless you have loaded a custom palette (see Chapter 10 for more on this). There are three aspects of color change in the Color Inspector. Underneath the color palette in the inspector, you will see a pencil, an A, and a color square at the left and a paint bucket with two overlapping squares at the right. Clicking on one of the three squares tells Authorware what aspect of the current object to which you want to apply the color. The pencil/A square color will tell Authorware to apply the color change to a text object. Since you should always use font styles to change text color, you do not need to use this element; the minute you change the color of text using the color inspector, you have created a new style, and changing it back will not undo this. The two squares next to the paint bucket control the color of lines (top box) and fills (bottom box). The lines color box will affect lines of drawn objects as well as plain lines. For instance, if you draw a square (or select a square you have previously drawn), click once on the top box next to the paint bucket, and select pink, the line around that box will turn pink, but the inside of the box will remain whatever color it was when you drew it. If you then click once on the lower box and choose pink, the inside of that box will turn pink. The lower/fills box can also be used to change the background color of a text object (e.g., so that your text appears on top of a blue background rather than white or transparent). 149 Van Eck, TOC Through Chapter 11 Changing the background color of a text object does not affect your styles, and is the only color change you should make to a text object using the color inspector. Controlling the Flow Once you have built several screens to display to the learner, you need specify how and when they should be displayed. By default, Authorware displays everything it finds on the flowline one on top of the other as fast as the computer is capable of, and leaves them on the screen until it is told specifically to remove them. Computers are so fast that if you were to create five different screens in a row (e.g., five Display icons) and run the program, you would only see the last one, since the computer will have shown the first four faster than you can see, and each is covered up by the one before. Tip: You should get in the habit of thinking in terms of screens, and not of Display icons, as they are not necessarily related in a one-to-one fashion. A screen is defined from the learner’s perspective, not the programmer’s perspective. For example, imagine a screen in which some background music begins to play, a title glides in from the bottom of the screen, pauses, then disappears to be replaced by a graphic in the center of the screen, and the learner is presented with a voice over telling them to click the forward button when they are ready to proceed. To the learner, this is one screen, but to build this screen the programmer must use eight different icons. This is another area in which storyboards play a role, since they correspond to screens in a one-to-one fashion. In order to control how each object on a given screen is displayed, and to determine how your program will progress from screen to screen, you use transitions and pauses. In Authorware, transitions are controlled by modifying the properties of Display icons and 150 Van Eck, TOC Through Chapter 11 by using Erase icons. Pauses are controlled by Wait icons. Each technique is described below. Setting Transitions Transitions are what happen between one Display icon and the next on screen; objects appear and disappear on screen according to transitions. To control the way objects in a Display icon appear on screen, you set the transition for the Display icon through ModifyiconTransition. This will produce a window in which you can select from a series of transitions. You can set the duration of the transition (how long it takes) and the smoothness of the transition. The higher the smoothness, the better it will look but the more processing power it takes (video card and computer processor). You can experiment with each to see how they work by hitting the Apply button to preview the transition you have selected. Keep in mind that these transitions control only how the Display icon appears, not how it will disappear. Heads Up: By default, Authorware pre-selects [internal] transitions. These are transitions that are built in to the Authorware runtime engine and do not require external files (called Xtras) to run. If you choose any of the other types in the left hand window, you will need to distribute the Xtras that control that transition, or your transitions will not work. Luckily, Authorware 7 makes this much easier to do. You can read more about this in chapter 8. The other type of transition occurs when you want the contents of a Display icon to disappear (as opposed to specifying how another Display icon appears). These kinds of transitions are accomplished by using Erase icons. Remember that everything that shows 151 Van Eck, TOC Through Chapter 11 up on the screen will remain there until it is specifically erased using an Erase icon. This is true even when the contents of one Display icon appear over the contents of another and cover it up. You may no longer see the earlier objects, but they are still there. It is not uncommon to discover this late in the program when you erase something on screen only to suddenly find an object from the beginning part of the program. Erasing objects is accomplished placing an Erase icon on the flowline at the point at which you want to erase the contents of a Display icon. Although the Display icon you want to erase must have come prior to the Erase icon, it is not necessary to place the Erase icon immediately after the object you want to erase. In fact, you could place an Erase icon at the end of the program and tell it to erase the first icon in the program. You may recall from the first part of this chapter that the your success in creating an Authorware program is largely determined by the method you use to develop it. Novices tend to want to place icons on the flowline one at a time and make all of their changes to that icon before moving on. This process increases the number of actions you have to take for each icon by at least a factor of three and makes it very difficult to position different elements on screen (i.e., to line up the contents of one Display icon in relation to another). If, instead, you place all the icons you need for one screen (see the earlier definition of a screen) on the flowline, name them for what they will contain, and then run the program, Authorware will pause at each icon; open it for you; allow you to draw, type, or import graphics; position them on screen; and continue to the next icon once you close the screen (by clicking the ‘x’ in the corner of your tool palette). Not only will this require 152 Van Eck, TOC Through Chapter 11 fewer steps, but you will be able to see the image/text/graphic you placed in your first Display icon while you are creating your second (or third, or fourth, etc.). This technique will also simplify the use of Erase icons. Let’s say that you have created an introductory screen with a title, an animated set of credits that appear while the title is on screen, and a logo that fades in at the top left of the screen. Now you decide that you want to erase the title text you placed in the first Display icon and the credits you placed in the second Display icon.2 You can simply place the Erase icon at the end of the introduction (which is when you want the title and credits to be erased), run the program to watch your introduction, and wait for Authorware to hit the new Erase icon, at which point, (all together now:) Authorware stops and opens the Erase icon, presenting you with the window seen in Figure 12. Figure 12. The erase window dialog box. 2 They are in separate Display icons because you remembered reading the Heads Up in this chapter regarding controlling individually screen elements. 153 Van Eck, TOC Through Chapter 11 At this point you can simply take your mouse and click once on the element(s) (text, graphic, image) you want to erase, and it will be erased. One Erase icon can erase an unlimited number of Display icons. If you click on the button to the right of the transition: menu, you can select from the same transitions that you have when you are setting entry transitions for a Display icon. The “Prevent Cross Fade” check box specifies whether Authorware should erase the contents entirely before displaying whatever comes after the Erase icon or not. Keep in mind that many times you will be erasing one (or more) Display icons prior to having another Display icon transition in. In this case, what you are erasing transitions out before (“Prevent Cross Fade” is checked) or during (“Prevent Cross Fade” is un-checked) the transition of the next Display icon. When you are satisfied, you simply close the dialog box and Authorware will continue as normal. If you are modifying your Erase icon later, you can verify which icons it has been set to erase by opening it up (double-clicking) and selecting the “icons” tab. This will bring up the window in Figure 13. Figure 13. Icons tab view of the erase dialog box. 154 Van Eck, TOC Through Chapter 11 The icons you have set to erase will be listed by title in the white box in the center of the dialog box. You can tell the Erase icon not to erase one or more of them by selecting them and hitting the Remove button. You may also have noticed the radio buttons labeled “Icons to Erase” and “Icons to Preserve.” In general, you will not need to change this setting from the default. Occasionally, however, you may have more icons to erase than you care to erase by clicking on them individually. If you ever want to erase everything that has come before, you can change the setting to “Items to Preserve” and then make sure nothing is listed in the white box. In this case, it is not necessary to run the program as indicated earlier. You need only drag the Erase icon to the desired place in the program, open it up, switch to the icons tab, and change this setting; Authorware will automatically apply it to everything. The Wait Icon The other most common way to control what is happening on screen is to pause the program at different points. Many times this happens naturally, as in Interactions and Frameworks (Chapters 6 & 7). Other times, however, you may need to tell Authorware to wait for a specified time or until the learner clicks the mouse, a button, or a key on the keyboard. These actions are all accomplished through the use of the Wait icon. You add Wait icons to your program in the same manner described for display and Erase icons. When Authorware hits the Wait icon, it will stop and open up the dialog box seen in Figure 14. 155 Van Eck, TOC Through Chapter 11 Figure 14. Wait icon dialog box. Power Tip: You can change the default button used by Wait icons by going to ModifyFileProperties and clicking the Interaction tab. You can then change the button to any button in your button library, including custom buttons (covered in Chapter 12). By checking the “Mouse Click,” “Key Press,” or “Show Button” boxes, you can specify whether Authorware should pause until the learner clicks the mouse, a key, or a button on screen. The window next to “Time Limit” allows you to specify an amount of time to pause (in seconds) before continuing. Any or all of these options can be checked simultaneously. Working with Libraries Libraries are secondary (separate) files you can create to store media and objects. One of the main purposes of libraries is to collect and organize commonly used elements. If you want a certain sound to play back every time the learner gets a correct or incorrect answer, you can place that sound in a library. Then you can use it in your program over and over without making the file any larger (normally, adding media to your file 156 Van Eck, TOC Through Chapter 11 increases the file size by the amount of that media). The other advantage to libraries is similar to that provided by font styles; should you ever determine that a sound, image, text, or video needs to be changed, you need only make that change once in the library to have it applied to the entire file. To create a library, you select FileNewLibrary. This will open up a new window into which you can drag display, interaction, sound, video, and calculation icons. You can then open them up by double-clicking and make whatever changes you want to them. Anytime you then want to use them in your file, you simply drag them from the library to the flowline. Authorware will make a shortcut that points to the actual icon in your library. Conversely, if you have created an icon you then want to place in a library, you need only drag that icon to the library. Authorware will place the original icon in the library and put a shortcut in its place on the flowline. Heads Up: While libraries are powerful and commonly used, there are a few drawbacks. The most significant is that you MUST have that library in the same folder as your program every time you open your program.3 If you do not, you run the risk of breaking every link in your library, which means that anywhere you used a library shortcut, it will now be missing from your program. In theory there are ways to fix this, but in practice it is often permanent. See the troubleshooting section for more information on this. 3 Technically, you can have it elsewhere, but you will be forced to locate it prior to opening the file and, in my experience, many students inadvertently make errors doing this. 157 Van Eck, TOC Through Chapter 11 Power Tip: If you have an existing collection of sounds, images, and/or movies that you want to have access to in Authorware, there is a quick and powerful way to turn them into a library. Simply resize and arrange your Authorware and computer windows so that you can see your library (even an empty one you just created) and the folder on your disk where the media are stored, select all the media, and drag them over to the library window. Authorware will automatically create an appropriate icon for each one, name it for the name of the media, and place the media in its icon. Case Study I was assigned to work on two games for the first Project CATE disc. One of the games was a variation of the Chutes & Ladderstm game called Bridges & Waterfalls. There were thirty questions in this game that were supposed to be presented randomly to the learner. I had had several scenarios recently in which I had regretted not using libraries and font styles, so even though each question would only be used once (and hence was not a good candidate for a library), I decided to put each question in its own Display icon in a library. I also created a font style called “question font.” After I had developed a beta of the game, we decided to move the questions to a new part of the screen. We also decided to go with a different font (we had used Skia and decided instead on Comic Sans). Changing the font was a simple matter of changing the font style, and took approximately 30 seconds. Without the font style, it would have taken much longer, as I would have had to open each icon in the library, select the text, and change the font. 158 Van Eck, TOC Through Chapter 11 Changing the placement of each question was greatly simplified by having the questions in a library. Instead of having to go to each question in the file and move it manually (something that font styles cannot help with), I was able to open each icon in the library, move it to where it should go, and it was automatically updated in the file. This was doubly appreciated because each question was nested four levels down in the file, meaning I would have had to open and close 4 different windows to get at each question. There was an unanticipated benefit to having taken this approach that I did not realize until recently, when working on one of the games for the second Project CATE disc. The same structure for delivering the questions could be used to deliver questions in the current game. The only caveat was that I would have to change each question, as the content was different for this game. I also needed to place them in a different spot on the screen. Once again, having used the library proved beneficial. I was able to change the placement of the questions in the library in about ten minutes. If I had had to track each down through four levels, it would have taken me close to an hour. Time saved like this may not seem like much, but the task I just described probably accounted for 2% of all the work I had to do on that game, and the project is full of such examples. Over the course of the project I would estimate I saved between five and ten hours by using font styles and libraries alone. Summary Authorware, like other programs, has its own way of looking at things. If you don’t understand how Authorware thinks, or if you work in a way that does not take that into 159 Van Eck, TOC Through Chapter 11 account, you can easily double or triple your development time. Learning to work with Authorware may be confusing up front, but pays off in the long run. Authorware wants you to think in terms of the flowline, not in terms of individual icons. Learn to translate what you want to happen into Authorware’s language of icons, build the structure of your program by dragging those icons to the flowline, and then run the program and fill in the blanks as it goes. Use Display icons to present text and graphics on screen, but never forget that anything you want to control individually (erase, animate, etc.) MUST be in its own Display icon. Control how your objects appear by using the align objects panel and the inspectors (color, mode, and lines). Make objects appear by setting the transition for the Display icon, but make them disappear by using the Erase icon. Control the flow and pace of your program by using Wait icons to make the program pause for a certain amount of time or until the learner clicks the mouse, a button, a key, or all three. Before you begin any project, determine your mode (tutorial, game, simulation, ELE, simulation game) and build your interface and metaphor accordingly. Set your properties for screen size, placement, and title and menu bars before you start developing. Set your font styles, even if you think they might change later, and create a library. If you follow this process, you will be well on the way to becoming a proficient Authorware programmer. Exercises 1) Do the following: 160 Van Eck, TOC Through Chapter 11 a) Drag a Display icon onto the flowline. Open it and type “This is the title of my program.” Arrange it on the screen so that it is centered at the top of the screen, and make it 36 point, Times New Roman, and bold. b) Set the properties of that icon so that it fades in. c) Next, drag a Wait icon to the flowline. Open it up and tell it to pause for 3 seconds. d) Drag another Display icon to the flowline. Open it and type “This is the sub-title of my program.” Arrange it on the screen so that it appears just below your title, and is 18 point Times New Roman, and in italics. e) Drag another Wait icon to the flowline, open it up, and have it pause for another 3 seconds. f) Then drag an Erase icon to the flowline. Open it and set it to erase everything using a fade out/dissolve. g) How many actions did it take you? Open up your Define Font Styles dialog box; how many font styles do you have? 2) Now create a new file, and drag the following icons to the flowline in the order specified: Display icon, Wait icon, Display icon, Wait icon, Erase icon. a) Name the first icon “Title” b) Name the second icon “Pause 3 seconds” c) Name the third icon “Subtitle” d) Name the fourth icon “Pause 3 seconds” e) Name the fifth icon “Erase Title and Sub-title” f) Create a font style called “Title” that is Times New Roman, 36 point, and bold. g) Create a second font style called “Sub-title” that is Times New Roman, 18 point, and italic. h) Run the program and fill in each icon as the program pauses according the specifications in question 1, above, making SURE to use your font styles as you go. i) How many actions did it take you? Was it easier to create the program? How about arranging the title and subtitle, and erasing everything? Open your font styles dialog box; how many font styles do you have? Astute readers may realize that the number of actions taken is similar in both cases, since you must create font styles for the second question, but remember that once created, those styles 161 Van Eck, TOC Through Chapter 11 can be applied over and over throughout the program; the first way requires you to adjust the font and size every time you create text. 3) Why is it important to set the Title Bar, Menu, and screen size prior to developing your Authorware program? 4) How many icons, of what type, and in what order are needed to do the following: a) Create an program that has a title come in, followed 5 seconds later by a picture of the Grand Canyon filling the screen, followed 5 seconds later by a sub-title which disappears along with the title 5 seconds after that? 5) Create a new program called “My Program” and set it up according to the following: a) Program will be displayed at a resolution of 800x600, and black background for default screens. b) Program will have no title bar but will have pull down menus and should be centered on screen c) Program will have four kinds of type: Title (Yellow, 36 point, Arial, Bold), Subtitle (Yellow, 18 point, Times New Roman, Italic), Body Text (Yellow, 14 point, Comic Sans, Bold), and Caption (Yellow, 10 point, Times New Roman). Each type will also have a drop shadow (Black), so there will be a total of eight styles. d) Program begins with blue screen with the title (centered, 36 point, Yellow) “Welcome to My Program,” which fades in. The title uses a style called Main Title and has a drop shadow. The sub-title (also a style, 18 point, Yellow), which says “My First Attempt to Program in Authorware,” fades in 3 seconds later just underneath the main title, and also has a drop shadow. Both fade out 5 seconds later. e) Create a library and put all the Display icons you have used in the file into it. 162 Van Eck, TOC Through Chapter 11 Chapter 5: Motion & Media, Part I Overview Aside from displaying text and graphics, the most common elements in multimedia are animation, sound, and video. This chapter will show you how to add and control basic animation, sound, and video in an Authorware program. Chapter 13 extends these skills to include more complex (and less common) animations, sound, and video. Motion and media allow you to address three important components of instruction; illustration of complex processes or concepts, demonstration of motor skills, and, through enhanced visual appeal and variety, motivation. Animation can be used to illustrate processes that cannot be adequately described using text. An example might be the pumping of the heart, which is a complex process difficult to envision from verbal description alone. Video can also accomplish the same thing with higher fidelity, and is particularly useful for teaching motor skills. A lesson on teaching the basics of the serve in tennis might use video over animation for reasons of fidelity. Similarly, a lesson designed for physical education students to learn how to critique and teach others the same content might use video examples of good and bad serves and ask the students to critique the performances. Aside from the ability to deliver content that is sound-dependent (such as music appreciation), sound can also be used in addition to text for delivery of content, making your instruction more accessible and interesting to the learner. Together, all three components have the ability to increase the diversity of the learner experience as they 163 Van Eck, TOC Through Chapter 11 navigate through your instruction, which can make your instruction more appealing to the learner. The icons used for these processes are, predictably, animation, sound, and movie icons, and adding them is a matter of dragging the appropriate icon to the place in your program you want the animation, sound, or video to occur, and running that section of the program to set it up. Animation is a little more complicated than sound and video, in that it requires the use of more than just the animation icon. In all three cases, how the animation, sound, or video is presented depends on the options you select within each icon’s dialog box. Objectives At the end of this chapter, you will be able to: • Animate a text or graphic object from one point to another on the screen • Add sounds and control when, where, and how they play • Add movie clips and control when, where and how they play Types of Animation Adding animation to your CBT can be fairly simple or maddeningly frustrating. The key to determining which it will be lies in three rules: • Animations are created by placing what you want to animate inside a display icon, placing an animation icon someplace after that display icon, and running the piece to set the properties of the animation 164 Van Eck, TOC Through Chapter 11 • You can only animate the contents of a display icon that has come before the animation icon • Animation icons affect everything inside a given display icon, not individual objects within that display icon The first rule should be familiar to you from the earlier chapters, and will appear in later discussions about target area responses and interactions. The second and third rules should be familiar to you from the discussion of erase icons in the last chapter; you can only erase icons that have come before the erase icon, and the erase icon will erase the entire contents of display icons, not individual objects within display icons. Although you can animate movie clips as well as text and graphics, the process is the same for both, and since it is more common to animate text and graphics than video, this chapter will only discuss text and graphics animation. Basic animation One way to help you remember the optimal way to create an animation is to remember the acronym D.A.R.T. (just think of an animation of a thrown dart). D.A.R.T. stands for Display, Animation icon, Run, and Test. Lets look at each of these steps in detail. Display The first step is to drag an empty display icon onto the flowline. This icon is for the text or graphic object you want to animate. Because you studied the previous chapter in great depth, you remember that you don’t actually create or import that text or graphic object yet—that happens after you run the program. You also remember to name the display 165 Van Eck, TOC Through Chapter 11 icon something that reflects what will go into it (so that when the program stops and opens that icon, you will remember what should go in it). The only other thing that you have to remember is that, because of the third rule presented above, you must put the object (i.e., text or graphic) that you want to animate inside its own display icon; if you put it into a display icon with other objects, they will all be affected by the animation. For example, if you want to create a screen in which some text fades into the middle of the screen, followed by a graphic that animates in from the right of the screen, the graphic would have to be in its own display icon; otherwise, both the graphic and the text would animate at the same time, in the same direction. Heads Up: If you are using the Direct to Point type of animation (defined later), you will need to make sure that you place the graphic or text object you want to animate in its starting position (i.e., the place you want the object to animate from). Animation Once you have created or imported the object you want to animate, you next drag an animation icon onto the flowline after the display icon and name if for what it should do (e.g., “animate title text”). While it is not absolutely necessary to place the animation icon immediately after the display icon, you should probably get in the habit of doing so until you are more comfortable with the process. There are several settings you need to make in order to control your animation, but you don’t do that yet; once again, that happens when you run the program. 166 Van Eck, TOC Through Chapter 11 Run Now you run the program (you may want to use the start and stop flags to isolate just this portion of your program), which immediately stops at the empty display icon, opens it up for you, and patiently waits for you to create shapes, type text, or import text or graphics. Once you have done this and arranged these objects on screen in the places you want them to start animating from, you close the display window. Authorware immediately stops again when it hits your animation icon, opens up the animation dialog box, and waits for you to tell it what to do. There are several options for animating an object on the screen which are contained in this dialog box. For now, because I think it is helpful to become familiar with the basic process of animating an object before exploring this options, just click on the object you want to animate and drag it to the place you want it to end up. This will tell Authorware to animated the object from where it first appears on screen to the place you have just now dragged it to. Close the dialog box, and you are done. Test To view your animation as you have created it, you simply run the program again and watch what happens. Assuming that it behaves the way you want it to, you are done and can continue working on your program. It is more likely that there are things you don’t quite like about the way your animation is set up, however; perhaps it is too fast or slow, or it doesn’t move in a straight line like you wanted, or you want it to move on a curved path or to several points on the screen. 167 Van Eck, TOC Through Chapter 11 Chapter 13 will cover animations involving multiple points, and along straight or curved paths. These types of animations are not necessarily much more complex, but there is enough to learn about Authorware that it is better to leave these types of animations for later so that you can focus on other things like sound, movies, and interactions (Chapter 6). There are some adjustments that you can make that are worth examining now, however. To do that, we will examine the animation dialog box in more detail. Dialog box (motion tab) Figure 15. Animation Dialog Box. The title of your animation icon appears in the box at the top. The type of animation, Direct to Point by default, appears in a drop down menu from which you can select any of five different types of animation. These types will be discussed in more detail in Chapter 13. The next box allows you to set the layer for your animation. Each icon (and the objects it contains) occurs on a different layer than all other icons. By default, the layer box is empty, meaning that the contents should appear “on top” of everything that came before, and “underneath” everything that comes after. In some cases, it may be necessary to 168 Van Eck, TOC Through Chapter 11 manually assign a layer number to a given icon in order to get it to appear as desired on screen. For now, don’t worry about (or adjust!) layers, as they can be tricky to manage. Chapter 12 will address layers in more detail. The timing box is a pull-down menu that allows you to modify the unit of time used to specify the time it takes your animation to complete. It is used in conjunction with the next box, which by default has a “1” in it. The unit of time Authorware uses by default is called “Time (sec),” which means that the number in the following box represents the number of seconds it takes your animation to complete (by default, 1 second). The other unit of time you can select is “Rate (sec/in),” which represents the ratio of seconds per inch of travel for your animation (by default, 1 second per inch). Although there are times when you may need to use Rate (e.g., when two objects are supposed to move at the same speed but over different distances), most animations you set will be measured in time. Heads Up: Although it may sound obvious, you’d be surprised how many people have trouble when they attempt to speed up their animation. The time unit is time to complete the animation, so higher numbers mean slower animations. The rate unit is seconds per inch, so higher numbers also mean slower animations. Also remember that you are not limited to whole numbers; it is possible to set the number of seconds or the rate to .0005! By far the most important element of this dialog box right now is the Concurrency dropdown menu. Your choices here are Concurrent (the default) and Wait Until Done. To understand these terms, we need to return to an earlier rule about Authorware. Authorware takes every icon on the flowline in order, from top to bottom, and left to right, until it reaches the end of the flowline. Along the way, Authorware is required to 169 Van Eck, TOC Through Chapter 11 display anything it finds inside display, sound, or movie icons, and perform any actions specified by any other icon, including animations. Icons like animation, sound, and movie, are all time-dependent in the sense that it takes time to play an animation, sound, or a movie. By default, Authorware assumes that you want it to wait until an animation or sound is done playing before it should move on to the next icon. This is the meaning behind the term “Wait Until Done” in the concurrency menu. Concurrency refers to how the current icon should be displayed in relation to the icons that follow (Wait Until Done apparently means “no concurrency”). In the case of animations, Authorware will, by default, wait until the animation has finished before moving on. In some cases you may want the animation to occur while something else is happening (another animation, a sound, an erase icon, etc.). In these cases, you need to set the concurrency to “Concurrent.” Tip: For reasons only known to Macromedia, movie icons are set to “Concurrent” by default. Adding media, part I Sound Sound is a part of most CBI/CBT, whether as opening or closing music, sound track, narration, feedback, or button effects. With the exception of the latter (which will be covered in Chapter 10), all of these are accomplished through the use of the sound icon. The process involves (you guessed it) dragging a sound icon onto the flowline at the place you want it to occur, running the program, and selecting the sound you want. There 170 Van Eck, TOC Through Chapter 11 are issues that require some discussion prior to examining the options for adding and controlling sound, however. Power Tip: Because there is no visual component to sounds, it is not strictly necessary to run your piece in order to select the sound; double-clicking on a sound icon after dragging it to the flowline accomplishes the same thing without much risk of error. In fact, one of my favorite features of Authorware and libraries (first mentioned in Chapter 4) is the ability to drag a collection of sounds (sound effects, generic positive and negative feedback, voice-over narration for text screens) which I have named according to my design documentation onto a new library. Each sound is automatically placed in a sound icon which is then named after the name of each sound file. This process also works if you drag the sound file onto the flowline itself, although the advantages may be outweighed by the need to arrange your desktop and Authorware windows to do so. Formats Just like images and movies, sounds come in a variety of file formats. Each of these formats have its own strengths and weaknesses, and it is helpful to know something about them before you add them to your file. Authorware supports AIFF, MP3, PCM, WAVE, or SND file formats. If these sounds are stored internally, they should all play back on any platform, regardless of whether they are native to Windows or Macintosh computers to start with. AIFF stands for Audio Interchange File Format, and is the standard sound format for Macintosh computers. It tends to produce high quality sounds that are fairly large, 171 Van Eck, TOC Through Chapter 11 although much depends on bit rate, channels, and compression. WAVE files are native to Windows, and yield files of similar size and quality to AIFF. If your target platform is Windows only and you want to store your files externally, you should choose WAVE over AIFF. MP3 files are MPEG 3 formatted sound files. This format creates significantly smaller files that WAVE or AIFF (90-95% smaller) with little noticeable loss in quality. MP3 files are also cross-platform (they are supported by QuickTime on the Macintosh, Windows Media Player on Windows, and by all browsers). They are your best choice for cross-platform authoring where file size is an issue. PCM stands for Pulse Code Modulation and is normal, uncompressed sound. As such, the file sizes are large and the quality is excellent. There is little appreciable difference in quality from MP3, however and even less from WAV or AIFF, so unless high-fidelity requires it, you are probably better off with any of these formats. SND files are native Macintosh files, and should probably be avoided even if your target platform is Macintosh (AIFF is a better choice in that case). Voxware Voxware is a compression utility included with Authorware 7 that allows you to take WAVE files and compress them to VOX files. This utility creates small file sizes, and is primarily intended for use with spoken sound rather than music or sound effects. While the file sizes are small, the quality is not nearly as good as MP3, which will also handle music. Nonetheless, if you don’t have a sound editor, have voice-over material in WAVE format, and don’t mind a slightly “tinny” sound, Voxware is free and effective. 172 Van Eck, TOC Through Chapter 11 Compression. Compression is a concept that will be discussed again in the video section. There are many different compression schemes, but they all accomplish the same thing; making any existing file smaller. Almost all compression schemes are “lossy,” in the sense that they “throw out” information in the file in order to save space. Some do a better job than others of predicting what information can safely be jettisoned without affecting the overall quality of the sound. This is largely a matter of personal taste however, and there are no hard and fast rules about which are best. In my opinion, you should avoid using compression with your sounds in all cases unless you have so much sound that file size becomes a big issue. If you do use compression, try several compression schemes out with the different types of sounds (music, voice, and effects) prior to settling on one. Heads Up: Whether compressing audio, video, or images, you should always preserve the original (uncompressed) formats someplace safe. This is because compression is a one-way street; once the compression scheme has thrown data away, it cannot put it back. If you change your mind later (e.g., if the client tells you they don’t like the quality of the sound), you can always go back to the original and use a different compression scheme (or none at all). The same is true for file formats as well—once you go from WAVE or AIFF to MP3, for example, you will not be able to get back to the exact same sound later. Always make sure you do a “Save As” whenever you modify your file format or apply a compression scheme—that way, the original file will be preserved. Loading sound. 173 Van Eck, TOC Through Chapter 11 When Authorware encounters an empty sound icon (or when you double-click on any sound icon), the sound dialog box opens up (see Figure 16). Figure 16. Sound Dialog Box. The first box in the middle of the dialog box contains the title of the sound icon. The second box is identical to the Concurrency box in the animation dialog box, and again determines whether Authorware should wait until the sound is done playing before moving on (the default) or not. The next drop-down menu is connected to the one below it in much the same way that time/rate in the animation dialog box was connected to the box below it. By default, Authorware assumes you want to play the sound one time (Fixed Number of Times=1). You can select another option, Until True, which lets you use variables to control how and when the sound should play. This option will be discussed in Chapter 11. For now, just remember that you can tell Authorware to play the sound more than once by changing the number from 1 to however many times you desire. 174 Van Eck, TOC Through Chapter 11 The next box is Rate which, like its cousin in the animation dialog box, controls how fast the sound should play. You can speed it up or slow it down by increasing or decreasing the number from its default of 100 percent of normal. The next box is used to control when the sound should start playing, and is again used in conjunction with variables and will be discussed in Chapter 11. The checkbox at the bottom of this dialog box is important to understand now, however. By default, Authorware is going to play a sound one time (Fixed Number of Times=1) at it’s normal speed (Rate=100% of Normal), and wait until the sound finishes before moving on (Wait Until Done). It will start playing as soon as it hits the sound icon. Normally, this is just what you would expect and want it to do. But there may be occasions where a sound that has come before may not be done playing (remember that you can set a sound to play “Concurrently” so Authorware starts playing it and moves on immediately to the next icon). In some cases, the earlier sound may not be finished before you reach the current sound (e.g., slower computers run your program at slower rates). To ensure that the current sound does not start until the previous sound is finished, you can check the box next to “Wait for Previous Sound.” Authorware will wait until all previous sounds are finished before playing the current sound. Tip: This issue has become less important with the addition of media synchronization in Authorware 7. This process will be discussed in Chapter 13. To load the actual sound file using the dialog box, you click on the Import button at the lower left of the dialog box. This will bring up a navigation window similar to the one presented in Figure 17, below. 175 Van Eck, TOC Through Chapter 11 Figure 17. Sound Import Navigation Window. This window functions like all navigation windows in that you are able to navigate to different locations on storage devices connected to your computer and select from the files in the display window area. There are two options that are unique to this window, however; Link To File and Show Preview. Show Preview, when checked, will create a preview panel in which you can play (and stop) any sound that you have highlighted. This allows you to make sure you have the right sound before you actually import it. The preview panel also display format and file size information specific to the highlighted sound. Heads Up: The Windows OS is pretty dumb when it comes to file types. Windows relies exclusively on the three-letter extension of the file. There are several problems created by this. If the file was created without an extension, Windows will not know what it is, and programs like Authorware will not display that file as a result. For instance, in the 176 Van Eck, TOC Through Chapter 11 navigation window above, it says to show Files of Type “All Available,” meaning any sound file supported by Authorware should be listed. But if there is no extension, or if that extension has been mis-typed (e.g., while renaming a file), it will not appear even though it is a supported file. What’s more, Windows hides extensions for all known files as a default, so you can’t see what the extension is to verify if it exists at all or if it has been mis-typed (you can change this option in Windows by double-clicking My Computer selecting ViewFolder Options, selecting the View tab, and un-checking the “Hide file extensions for known file types). The other check box is labeled “Link To File.” This check box is deceptive, because what it really does is specify whether the sound file should be stored internally (unchecked) or externally (checked). Why Authorware does not refer to this process as internal vs. external storage is unclear. When a sound file is stored internally, your Authorware file size is increased by the size of that file. When it is stored externally, the size of the Authorware file is not increased, but you must provide the original sound file with your program, so you do not save any space overall. The advantage of external storage is that your program does not take up as much RAM (not disk space) when running, and you can update the sounds by simply replacing the sound file with another file with the exact same name. This allows for fast updating of files (you can just send the new audio files to the client or, if web-based, ftp the sound to the directory and the client need not do anything!) as well as the ability to edit sounds quickly (just open the original file, edit it, and save it—Authorware is automatically updated). The downside is that you must be extremely conscientious about tracking your files and keeping them organized, or your program will not function correctly when you package and distribute it. I have found that 177 Van Eck, TOC Through Chapter 11 it is best to store your media internally in a library (as MP3 files if space is an issue); if changes are needed later, I edit the original file and reload it into the library and its done. Extra steps, but much easier to keep track of. A final note about sound Now that sound cards are standard, microphones common, sound recording software built-in, and adding sound to programs like Authorware is so easy, it is tempting include sound everywhere in your CBI/CBT (e.g., as voice-overs, music, sound effects like applause for correct responses and buzzers for incorrect responses). This is similar to what happened in the late 70s with the advent of desktop publishing. Once the technology advanced to the point where anyone could layout a page using different fonts and sizes, people began to do their own flyers, newsletters, and brochures. What people failed to realize then was that there is a difference between the technology and the expertise needed to use it; while anyone could use the tool, few new the best way to do so. This resulted, initially, in documents with so many different fonts in so many different sizes that they were harder to read (and more annoying!) than a typewritten page would have been! We are at a similar position now with regards to multimedia—the tools have become easy enough to use that the question is no longer how to create multimedia, but what is the best way to create multimedia. Just because we can add sound everywhere doesn’t mean we should. Aside from accessibility issues, sound should be used sparingly and should add something to the program. For example, there is little point in creating voice-overs that are word-for-word renditions of what is on the screen unless you anticipate learners with 178 Van Eck, TOC Through Chapter 11 hearing disabilities.4 Instead, consider using audio to extend and elaborate upon the screen content. You might also use voice-over to help address common errors or misconceptions you have identified through user testing—you can save screen redesign in some cases by addressing these errors through the addition of audio advice. Advisement itself is a good candidate for spoken audio—built-in help throughout the piece might be presented as spoken audio. Sound effects can play a vital role in good interface design. Providing a clicking sound when a user clicks on a button helps solidify the illusion of three dimensionality and interactivity in a two-dimensional medium. On the other hand, sound effects are often greatly overdone. It may seem like a clever idea to include the sound of Bart Simpsontm saying “Cool, man!” for every correct answer, but it quickly becomes annoying to your learner. The thing to keep in mind is that you are designing for the learner, not yourself. It may be tempting to build-in lots of media to your early projects, but ask yourself how the learner will feel after an hour in your program. And because you may not be the best judge of this initially, I suggest that you adhere to the following two principles: Place any audio you feel is necessary under learner control whenever feasible, and pay careful attention to your formative and one-to-one evaluations. If the learner has the ability to 4 There are better solutions to doing this now that make use of Microsoft Agent technology. Microsoft Agent is built in to Windows ME and above, and is capable of reading aloud any text you specify. Third party solutions exist for making use of Microsoft Agent from within Authorware, and are much more cost-effective solutions than recording your own audio. 179 Van Eck, TOC Through Chapter 11 turn off any existing sounds, or to select sounds when they want them, there is less likelihood they will become irritated by them. And if they do become irritated during your formative evaluations, you have a chance to modify the sounds prior to delivering the final product. Video Few media have generated as much excitement in CBI/CBT development as video. In fact, video is probably the single most important driving force in the development of multimedia in the 80s and 90s; full-screen, full-motion video has been the holy grail for many years. Technology has finally been able to deliver on the full promise of computer-based video in the last five years. This has been accomplished by software and hardware advances on several fronts. The problem has always been that video was inherently analog, and computers are digital. Without going into a lecture on electronics, suffice it to say that these are not compatible formats. To solve the problem, hardware manufacturers began making digitizers, cards that plugged into your PC that would convert an analog signal to a digital signal. These were expensive and produced poor quality videos, often of less than full-screen size. They eventually became better and cheaper, and it began to look like they would solve the problem. As with many innovations, however, the answer came from a different direction, one that focused on the other side of the equation. Instead of converting analog signals to digital ones, why not record digital signals in the first place? Thus was born the digital video revolution. 180 Van Eck, TOC Through Chapter 11 Digital video cameras now record movies in a digital format called digital video (DV) that can be read by a computer via means of Firewire. Firewire is an Apple Computer branded technology that allows computers to import and export data at a rate of 400 to 800 megabits per second (equivalent to 50 to 100 megabytes per second). This is good, because it turns out that digital video creates HUGE files; 1 minute of raw digital video takes up nearly 2 gigabytes of space. Luckily, digital video cameras are able to compress this down to a more manageable 10 gigabytes per hour of video without any appreciable loss in quality, but the files are still much too large to fit on anything but a hard drive. The reason Firewire is necessary is that in order to get these large files onto your computer, you need a large pipeline. If it were just a matter of file size, you could use USB, or SCSI connections; the only difference would be the time it takes to copy the digital data. USB can transfer data at approximately 1.5 megabytes per second, so would take almost 2 hours to transfer one hour of DV (USB2 is significantly faster, but not yet widely available). SCSI is faster, with transfer rates of between 4 and 40 megabytes per second, depending upon which card and hard drive you have. While the top SCSI card (Ultra Wide) could transfer one hour of video in just under 5 minutes, cards and drives are expensive. It turns out that of these, only high-end SCSI would work because digital video cameras play back video in real time, meaning that the computer must be capable of supporting the data rate that DV plays back at (approximately 15 megabytes per second minimum). In any case, SCSI Ultra Wide interfaces are not practical to build into cameras, while Firewire is, which has thus been adopted as the standard for all DV cameras and computers that work with DV. 181 Van Eck, TOC Through Chapter 11 The other side of the equation is software; it does no good to have a computer capable of DV if there is no software to work with it, or if that software is too difficult for nonprofessionals to use. Although video editing programs abound, there are three big players in the market today: iMovie, Final Cut Pro 3, and Adobe Premiere. The first two are native to Apple Macintosh computers, while Premiere is cross platform. Final Cut Pro and Premiere are professional level editing programs and are not good candidates for novices to adopt as their first editing program. Of the two, Final Cut Pro is winning a lot of converts in the professional market with its non-format dependent input and output capabilities, is native color correction tools, it’s ability to generate video for any platform or medium, and it’s ease of use (CNN and ESPN both use it for production). Adobe Premiere is getting long in the tooth, having gone many years without significant upgrades, but a new version is due out soon that should bring it to a more competitive level. iMovie is shipped free with all Macintosh computers since at least 2000, and is available for purchase for less than $50. It’s ease of use and ability to generate video for Windows, Macintosh, and the Web have quickly made it the program of choice for beginning DV editors. If you have access to a newer Macintosh computer, it is worth the purchase price. In fact, it may be worth the purchase price of Macintosh computer itself if you plan to make use of video in your CBI/CBT projects. You can get a basic set up for around $1000 that will allow you to produce high-quality DV in a variety of formats without a significant investment in learning time (three hours is sufficient to get you making movies). At least as significant is that all Macintosh computers come pre-configured for DV (hard drives, RAM, Firewire, etc.) and work right out of the box. Although pre182 Van Eck, TOC Through Chapter 11 packaged PCs that support DV exist, because the companies that produce them include DV as a marketing strategy rather than as an integral part of their computers as Apple does, problems are common and getting competent support with these problems can be difficult. If you don’t have access to a Macintosh and can’t afford or justify the purchase, it is possible to accomplish the same thing on the PC, albeit with more potential difficulty. The problem on the PC side is that the hardware and software needed to work with DV is produced by several different companies, even when bundled as a single solution in a PC. The process of adding cards and software to your own computer can be problematic. You need a Firewire card, an Ultra ATA 100 card and 40GB 7200rpm drive on its own bus (no OS software installed on it and no other drives connected to the same cable), and software that is compatible with the card. Getting different Firewire cards to work under different OSes (e.g., Windows 98, 2000, and XP) and with different software and hard drives can be a nightmare. The software available on the Windows side is not of uniformly good quality in terms of power and ease of use, although Pinnacle bundles a good program with their Studio DV 7 card. As you can see, there is a lot about working with DV that requires careful attention. While space does not permit a more detailed analysis, a discussion of some of the more pertinent details as they relate to Authorware is warranted. Formats & CoDecs. All digital video must be compressed in one way or another for us to be able to work on it on a computer. Even when we refer to “uncompressed” video, such as that taken with a 183 Van Eck, TOC Through Chapter 11 digital video camera, we are still talking about compressed video. The video is “compressed” down in size using an algorithm, and when it is played back it is “decompressed” for viewing. This all happens in real time, so we never notice it. The ways in which video is compressed are determined by the tool that does the compressing. These tools, or different standards for compressing digital video, result in different formats. To make matters more complicated, each format can use multiple versions of CoDecs, which stands for Compressor-Decompressor—the algorithm mentioned earlier. Authorware supports a variety of video formats, including Bitmap sequences, FLC/FLI (Autodesk), PICS, Director, Flash, MPEG, Video for Windows (AVI), and Quicktime. While each of these are different standards, the latter three are what we are most used to thinking of as “movies,” and will be discussed here. The other types are more specialized, and will be discussed in Chapter 13. MPEG stands for Moving Picture Expert Group, which is an organization that sets standards for digital video and audio compression. Other companies, in turn, can make use of the MPEG standards to formulate their own CoDecs. While all of these movies are MPEG movies, they will differ in quality and size, depending on which CoDec is used to create the MPEG movie. There are currently four MPEG standards named, predictably, MPEG-1, MPEG-2, MPEG-3, and MPEG-4. MPEG-1 was developed for video and audio applications on CD-ROM. CD-ROMs are slower than hard drives, which results in smaller available bandwidth/pipeline. MPEG-1 allows CD-ROMs to display audio and video, albeit at a 184 Van Eck, TOC Through Chapter 11 smaller size and quality than on a television or videodisc. It is not used as much as MPEG-2, which is the standard for encoding digital video for DVDs. It produces very high-quality video. MPEG-3 never really got off the ground in regards to digital video because MPEG-4 came out so quickly on its heels. MPEG-3 was originally targeted to update MPEG standards to work with High Definition Television (HDTV), but it turned out the MPEG 1 & 2 could be used with some modification. MPEG-3 is now best known for its implementation as MP3, which stands for MPEG Audio Layer 3. MPEG-4 is a new standard which will allow use in phones, games, interactive appliances, and a plethora of other new electronic products. It is not yet widely implemented, however. For our purposes, it is sufficient to know that if we are working with MPEG movies, they are probably MPEG-2. Video for Windows, now called Windows Media, is Microsoft’s standard for video on the Windows platform. Originally, these were all AVI files, which is still the format preferred by Windows Media Player. AVI files tend to be lower quality files and are not easily cross-platform. They do, however, play back on any Windows computer without the need for the end user to install anything. Quicktime is the most common digital video format in cross-platform video development, second perhaps only to Real Video in web application. Quicktime movies make use of many different CoDecs to create video of varying quality and file size. Sorenson 3 is one such CoDec which creates exceptionally high-quality video and very small file size, but there are several available. Authorware understands Quicktime now on either the Windows or Macintosh platform (although the free software must be initially downloaded by Windows users in order for Quicktime movies to playback). iMovie can 185 Van Eck, TOC Through Chapter 11 save your movies as streaming Web movies for playback in an Authorware piece over the web, and is automatically formatted for use on Macintosh or Windows computers. Additionally, Quicktime allows you to create different versions of your movie for different bandwidths, and will automatically download the version appropriate for the end users connection (as long as they correctly identified their bandwidth when prompted during installation). Quicktime also can control html content in a Web page, calling up different scrolling text on a page at key points during playback of the video, for example. Power Tip: To take the headache out of learning about each individual CoDec and format, I recommend you purchase Terran Media Cleaner. This product does nothing but create video for different applications and platforms. It has a built-in wizard that prompts you for information about your video and makes adjustments accordingly. More advanced users can adjust these settings manually as well. Size and storage. The size of your digital video is determined by the CoDec you use and the physical dimensions of your digital video. A common term used to describe video is full-screen. Full-screen means the video is at least 640 x 480 pixels (a peculiarity of the DV standard is that it is actually 720 x 480, but who’s counting?). It is extremely rare that you would be working with this size video in CBI/CBT, as the storage and bandwidth issues are too significant to make this practical. The largest video dimension you are likely be working with is 320 x 240, also referred to as half-screen video. Even though it is technically halfscreen (640 divided by 2 =320; 480 divided by 2=240), it only fills up one quarter of a 640 x 480 screen because you divide both dimensions by 2. If this does not make sense, take a blank sheet of paper and place a mark in the middle of the top and left edges. Use 186 Van Eck, TOC Through Chapter 11 those marks to begin drawing straight lines toward the middle of the sheet until they meet. You will have drawn a box the covers one quarter of the sheet, even though you started out from the halfway point on both edges. The smaller the dimensions of the video, the smaller the file will be, regardless of which CoDec you use. You may need to experiment with different CoDecs to get the size and quality you want. These CoDecs are selected during the export process from whatever tool you use to edit your video (or from Terran Media Cleaner 5). Regardless of how large your video is, you should always store it in the same folder as your Authorware program. It is tempting to create lots of sub-folders to organize your different sounds, images, and videos, but doing so can cause problems. It is true that Authorware allows you to specify where it should look for these files when it is time to play them, including different sub-folders, and this will be discussed in more in Chapter 10. At the beginning stages of learning Authorware, if you store your video (and all external files you use) in the same folder and level (i.e., not in sub-folders) as you have your program in, Authorware will automatically find it when it is needed. This is because Authorware first looks for the place you originally loaded the file from, and then automatically looks in the same place the program is running from. This means, of course, that you should copy any video or files that you intend to store externally into the same folder as your program. Loading video. So how do you go about loading video in Authorware? It turns out that the process depends on the type of video you want to import. We’ll start with the formats that allow 187 Van Eck, TOC Through Chapter 11 you to use the movie icon, and then discuss Quicktime and Flash, which both require the use of what is called an Xtra. The easiest way to add video (that isn’t Quicktime or Flash, that is) is to drag a movie icon over to the flowline, run the piece (perhaps using the start and stop flags), and load the video when prompted. Authorware will present the dialog box in Figure 18 when it opens the movie icon for you. Figure 18. Movie Icon Dialog Box. The first box under the title of the icon is where the name of the file you actually load will appear once you have selected it. Note that the box underneath that, labeled Storage, says External by default. This is because all video is stored external to your piece with the one or two exceptions that will be discussed in Chapter 10. There are only 3 options that need to be covered at this point are Prevent Automatic Erase (which in this case prevents your movie from being erased by anything except an actual erase icon--it is 188 Van Eck, TOC Through Chapter 11 possible for some icons and processes in Authorware to erase content without the use of an erase icon); Erase Previous Content (which will cause everything else to be erased prior to your movie beginning), and Audio On, which allows you to specify whether to play the audio associated with your movie or not. The other options only apply to internal movies or to situations not normally encountered in a beginning project; they will be discussed in Chapter 10. Controlling video. Once you have imported your video, you need to specify how and when it should play. This is accomplished through the Timing tab of the same dialog box. Clicking once on the Timing tab will bring up dialog box in Figure 19. You may recognize some of these options from the Sound dialog box, and these options all perform similarly. Concurrency specifies whether Authorware should start the movie and move on or wait until it is done playing. Play determines if the movie will play a fixed number of times, and if so, how many times. You will notice many other options 189 Van Eck, TOC Through Chapter 11 under Play, however, that were not part of the Sound dialog box. Most of these are not commonly used and in any case do not apply to external movies, which is what we are discussing in this chapter. The Play options Repeatedly, Controller Play, and Pause Play will cause the movie to play over and over and show a play/pause button for the learner to use to start and stop the movie. Rate is similar to the Sound dialog box as well, but is measured in frames per second (fps). Specifying a number here will cause the movie to play faster or slower. Full-motion video is 30 fps (DV is really 29.97, but who’s counting?), so unless you saved your movie at a different frame rate during compression (a common way to save space), you can assume 30 fps is 100% of normal. The bottom two boxes are among the more interesting and often under-utilized features of Authorware. Start Frame and End Frame allow you to specify which part or section of a movie to play. Suppose you had a video clip of someone demonstrating one correct way and three incorrect ways of doing something. You want to use this clip for feedback to the learner about the choices they have just made about how to accomplish that task. Instead of breaking the video up into four clips, you could specify the start and end frames for each part of that clip so that you would play a different section; to the learner it looks like four clips, but is in reality just one. More often than not, it probably makes sense for you to actually divide your video up into individual clips, but in cases where you are using clips that have already been compressed by someone else (i.e., you don’t have the orginals) using start and end frames may be the best solution. That’s because you should never re-edit clips that have already be compressed; doing so reduces the quality tremendously, in many cases yielding unacceptable results. 190 Van Eck, TOC Through Chapter 11 If you want to add Flash or Quicktime movies, the process is a bit different, and while you can control these videos as you do those loaded into a movie icon, the process for doing is more complicated and will not be discussed until chapter 13. For now, you should assume that the movies will be played at a normal rate and in their entirety. The process to add Quicktime or Flash movies involves clicking next to the part of the flowline you want the movie to appear. A hand will appear pointing at the place you have selected. If you want to reposition the hand, click somewhere else and it will move. Once you have chosen the place to put your movie, select InsertMediaQuicktime or InsertMediaFlash. This will bring up the dialog box shown in figure 19. Figure 19. Insert Media Dialog Box. A Final Word on Video 191 Van Eck, TOC Through Chapter 11 The same cautions for use of sound in your instruction apply to video. Just because you can put video in does not mean it will make your instruction any better. Video is expensive to develop and requires more resources on the part of your learner (disk space and RAM) than animation, so it should be used only when it is most appropriate. Video is best used to illustrate motor skills and processes where fidelity is important. There is no point in using video to display essentially static content, nor to illustrate simple motion that can be accomplished through animation. In fact, even in cases of complex motion and motor skills, the use of several still images may be just as effective (if not as flashy) as video. Case Study Two of my Authorware students wanted to integrate video into their projects. One, Dana, was far enough ahead of schedule, and the video was simple enough, that I felt she could manage to do so. The other student, Carl, wanted to make extensive use of video throughout his project. He professed to understand the extra time he was taking on and planned to purchase a digital video camera, software, and hardware. Dana, an interior design instructor at a University, had access to a digital video camera and editing software on the PC. She roped her husband into playing the part of a museum curator who was “hiring” the learner to help identify different furnishing from different periods in order to set up the displays for the museum correctly. This simulation was her final assessment for instruction she had developed in Authorware to teach learners about home furnishings. She filmed the clips she needed, edited them down, and exported them at the size she wanted. 192 Van Eck, TOC Through Chapter 11 Upon integrating them into Authorware, however, she found that they would not play; Authorware kept saying it could not find the appropriate Xtra to play back her movies. While this is normally a problem related to the actual presence of the Xtras folder (you’ll learn more about that later), in this case no amount of troubleshooting could get the video to work. It turns out that her hardware/software combination had used a CoDec that was proprietary and thus not understood by Authorware. Because her clips were relatively un-edited and short, she brought her camera and video in to class where we connected it up to one of our Macintosh computers. We brought the video in to iMovie, made the basic edits, and exported the video as streaming video so it would be visible from CD and the Web. The entire process took about an hour, at which point she brought the video back in and it worked immediately. Carl purchased a firewire card and an external hard drive so that he could work on his video at home and at school, which was important as his project made use of 30 minutes or more of video, all of which had to be edited and exported. His video worked from the very beginning, even though it was AVI format just as Dana’s had been. Carl spent a lot of time working on his project, doing all the video at home. In order to get help with his Authorware program specifically, and to make efficient use of class lab time, Carl brought his project to school once per week. Unfortunately, his program failed to display the video almost half the time when he was at school, resulting in lost development time (since he could not see the video, he could not make modifications to the parts of his program that relied on the video). This had nothing to do with the format of the video, however. 193 Van Eck, TOC Through Chapter 11 It turns out that the program Carl used to edit his video would store the video in a default folder on his hard drive. Carl knew that he needed to keep the video in one place, so he created a folder for his video inside his project folder and tried to make sure he saved his video to that folder. Occaisionally, he would inadvertently save the video to the wrong place, however. When he would then later go to load a new clip and it wasn’t in his project folder, he would go to the default folder on his hard drive and, sure enough, it would be there. He would then load the video from there, and make a mental note to copy it over to the other folder later. To make sure he had done so, he would always launch his Authorware program (in which he had loaded his video clips into icons) from the external hard drive to make sure that the video still worked. Upon reaching school, however, he would find that many of the clips would not play. This was because Authorware knew where the clips were located on his hard drive at home, and so would play when needed. But when he then opened the file at school, Authorware would look for the video on the local hard drive, not find it, and so not play the video. Carl had to develop and strict procedure for copying all his files over to his hard drive and reload all the movies that were not working. This was time consuming and frustrating, but not nearly as much so as the problems he would have when the video would not play. In both cases, the difficulties they experienced with the video had nothing to do with shooting or editing the video itself, and everything to do with planning and organizing the video so that it could be worked with effectively with Authorware. Running tests and 194 Van Eck, TOC Through Chapter 11 developing stringent media management procedures can help you avoid these issues somewhat, but integrating video into Authorware is a non-trivial endeavor, and you should adjust your timeframe accordingly if you plan to make use of DV in your project. Summary Animation, video, and sound are what define multimedia, and they are common elements of CBI/CBT. Each of these elements are incorporated into Authorware in a similar fashion through the use of different icons. The means of modifying and controlling these media are more complicated, but not as complicated as creating, editing, and producing audio and video in particular. The three rules of animations help to simplify their use in CBI/CBT: An animation is created by placing the object to be animated inside a display icon, placing an animation icon after the display icon, and running the piece; you can only animate the contents of a display icon that has come before the animation icon; and animation icons affect everything inside a given display icon, not individual objects within that display icon. The first rule can be remembered using the acronym DART: Display, Animation icon, Run, Test. The way an animation is controlled is through the motion tab in the animation dialog box. Speed is controlled in terms of rate or time, and whether the animation starts and moves on or waits until it is complete is determined by its concurrency. Authorware can bring in a variety of sound formats, each with its own strengths and weaknesses. The quality and size of a sound is the product of its format and the compression scheme (if any) used. Sound is also controlled through concurrency options and rate, but you can also modify the number of times the sound should play, when it 195 Van Eck, TOC Through Chapter 11 should begin, and whether it should wait for any previous sounds to stop before it plays the current sound. Authorware can also bring in a variety of video formats, some of which can be interactive and stored internally, others of which can only be stored externally. The size and quality of your video, like sound, is dependent on it format and compression, or CoDec in this case. Quicktime is the most common format for video in Authorware and on the Web, and is completely cross-platform. Unless it is stored internally (and most video is not), you should always keep your video in the same folder at the same level as your Authorware program. The process for loading video in Authorware depends on the type of video used. AVI, Director, and MPEG movies are all loaded through the movie icon. Quicktime and Flash movies must be loaded through the Insert menu (InsertMediaQuicktime or Flash). In the former case, video is controlled through the Movie and Timing tabs of the Movie icon dialog box, where concurrency, rate, number of times to play, number of frames to play can all be modified. In the latter case, the movies must be controlled through the Xtra itself. For now, it is best to plan to play all of the movie at the time it is called for rather than attempting to control how much of the movie plays, etc. Making the Connection What you’ve learned in this chapter has relevance to four factors of instructional design and development: presenting information, guiding the learner, learner control, and motivation. Understanding how these factors relate to sound, video, and animation will help you make intelligent use of them in your instruction. 196 Van Eck, TOC Through Chapter 11 Presenting Information While all forms of media can be used to present information, to be effective, the information should match the strengths of medium you use to present it. Kozma (1991) calls these the “cognitively relevant characteristics of their technologies, symbol systems, and processing capabilities.” Animation can make use of text and graphics, and as such can present the same kinds of information as a display icon. But the key distinguishing element in animation is motion. The extent to which the content you are presenting matches the motion element determines whether your animation enhances or distracts from the learning process. If I am trying to illustrate a concept which involves motion (the operation of a bicycle pump, for instance), my animation can enhance my verbal description of the different steps and components of the process concrete. Video’s strength lies in representing motion as well, but with higher fidelity than animation. In cases where realism is critical, video is a better choice than animation (although perhaps not always a better choice than still images). While video can be used to present content (e.g., a talking head), it is rarely a better choice than text alone, which is faster and cheaper to create, more under learner control, and easier to edit and modify. One exception to this is when social, humanistic, and affective elements are important. Some learners prefer a human element in their CBI/CBT, and providing content via talking head is one way to provide that. Even so, video like this should be used sparingly, and not as the main deliver method. If it is, you are better off developing video-based instruction. 197 Van Eck, TOC Through Chapter 11 Audio can present content as well as text and may be appropriate for auditory learners, at least as an option. Sound alone is rarely a good method for presenting content, however, because it is linear, meaning the learner can only process it in the order it was recorded; if they miss something and want to repeat it, they must listen to the whole sound again. Text can be scanned and re-scanned at will, and allows for more learner control. Audio’s real strength lies in representing content that is purely sound-based. Musical pitch training, engine diagnostics by listening to the sounds of an ill-tuned engine, or identification of birdsong are good examples of content that must be delivered by audio. Guiding the Learner Animation can be used to guide the learner in many ways. Your program will undoubtedly have a section that provides and overview and orientation to your program interface. Animation can be used to move a mock cursor around on screen to illustrate processes for interacting with your program. Animation can also be used to draw attention to different components of a complex display to ensure that learners are attending to relevant portions of the instruction. Animation can also be used to help the learner manage their learning. For instance, it is possible to help the learner build a mental model of the content being learned one component at a time using a concept map with several components to represent the mental model. As the learner completes a section, you could provide an animation showing that component being added to the overall model. Video can be used to provide guidance by creating advisement. While using talking heads exclusively to present content does not make effective use of the medium, the ability for 198 Van Eck, TOC Through Chapter 11 video to gain attention cannot be ignored. When there are elements in your instruction that require special attention (such as common misconceptions that learners form), you can use a talking head to gain attention and to help learners focus on specific areas. In these cases, the video should refocus the learner’s attention to the content rather than providing new content. Talking heads can also serve a similar function in regards to metacognition, by providing information about the learner’s progress through the instruction, suggested paths to follow, opportunities for remediation, etc. While these can more easily and cheaply be accomplished via text, for some populations and content video may also be appropriate. Sound can provide the same kinds of guidance as video, but has an added ability. Adding sounds to buttons provides feedback to the learner that their attempt to press a button was successful. Buzzer sounds can be used to indicate that the learner’s action was registered by the computer but is not allowed (such as when you try to close a window while a dialog box is open, for instance). In the case of advisors, you may not want to force the learner to view the advisement available. In that case, you might use a sound to indicate that advisement or extra information is available to the learner; they can then choose whether to access the that information. Learner control Video and audio can be used to help learners manage their instruction as with the advisement options described above. But there is another aspect of learner control and media that is too often overlooked. You should always strive to give the learner control over the media you incorporate in your instruction except when doing so would 199 Van Eck, TOC Through Chapter 11 compromise your learning objectives. While it may seem neat to put lots of sound feedback, audio versions of screen text, and video pop-ups throughout your instruction in an attempt to reach all learners, doing so virtually ensures that your instruction will irritate most of your learners at some point, since few of us prefer all modalities equally. When you put these elements into your program, give the learner control over how many mediums they get and how often they get them. The default should always be the least number of mediums presented, with instructions to the learner on how to access additional media when available. Motivation While intrinsic motivation is predominantly determined by multiple design components (e.g., challenge, fantasy, control, and curiosity, Malone, 1987; Attention, Relevance, Confidence, and Satisfaction, Keller & Suziki, 1988), the use of video, audio, and animation can serve some of these functions through learner guidance, management of learner control, and gaining attention. Making appropriate and judicious use of these elements throughout your instruction can help make your instruction more motivating. Using animation and video advisement to draw attention to critical attributes of the instruction can help manage the level of challenge for learners so that they do not end up frustrated. Using animation to signal the end of one section and the beginning of another also helps the learner recognize when they are finished with one section and moving on to another. The use of animation, sound, and video to gain attention in and of itself may in some cases justify their use even when the same information could be conveyed in another way. 200 Van Eck, TOC Through Chapter 11 Exercises 1) What does D.A.R.T. stand for? Describe what each stage of the process means and why the sequence is important. 2) I want to create a scene where the main title of the program “flies” in from the right side of the screen, followed 3 seconds later by my subtitle that “flies” in from the left side of the screen. a) Why won’t the following structure work? b) Why won’t the following structure work? 3) If I want my title and subtitle in the description in question 2 to animate at the same time (i.e., they come from different parts of the screen, move in different directions, but do so at the same time), I need to set concurrency option of the first animation to: a) wait until done 201 Van Eck, TOC Through Chapter 11 b) concurrent 4) I want to speed up my animation. Should I: a) Change the rate or time to a higher number b) Change the rate or time to a lower number c) Change the rate to a higher number, or the time to a lower number d) Change the rate to a lower number, or the time to a higher number 5) Why is it important to save your original sound files after you have placed them in your Authorware program? 6) I want to play two sounds in a scene in my Authorware program. The scene I am concerned with looks like this: 7) The first sound should start playing and continue right away to the next icon, which displays some text in it. The second sound should start playing only after the first sound is done playing, and should not continue on until the sound has finished. Which of the following describes the correct settings for these two sound icons: 202 Van Eck, TOC Through Chapter 11 a) First sound Concurrency=Wait Until Done, second sound Concurrency=Wait Until Done b) First sound Concurrency=Concurrent, second sound Concurrency=Wait Until Done c) First sound Concurrency=Concurrent, second sound Concurrency=Wait Until Done, Wait for Previous Sound checkbox is checked d) First sound Concurrency=Wait Until Done, second sound Concurrency=Wait Until Done, Wait for Previous Sound checkbox is checked 8) True or False: When adding video to a project, it is a good idea to store all your video clips in a separate folder from your program so that you can copy them back and forth from machine to machine. 9) Open the file you created in chapter 4. Add the following: a) Download one of the introductory music sound files from the website and have it accompany your title screen. This music should start before your titles appear on screen, and continue while the titles appear. b) Animate the main title so that it “flies” in from the right side of the screen. At the same time, make your subtitle “fly” in from the left side of the screen. HINT: Remember that the starting point of any object (like your titles) in an animation is determined by that object’s location inside it’s display icon). 203 Van Eck, TOC Through Chapter 11 c) Download the sound file called “Welcome.wav” from the web site (you may also record your own if you have the tools and desire to do so). Have this sound play after the musical intro is done. Have your program pause for five seconds, and then erase everything on the screen. d) Download the movies “Flash_Intro” and “AVI_Intro” from the web site. Have the Flash_Intro movie play in the middle of the title screen. Your title (when if finishes animating) should end up just above the movie, and the subtitle should end up just below the movie. Have the Flash_Intro movie erase after 5 seconds, to be replaced by the AVI_Intro movie. 204 Van Eck, TOC Through Chapter 11 References Keller, J. M. (1983). Development and use of the ARCS model of motivational design. (ERIC Document Reproduction Service No. ED 313 001). Kozma, R. B., (1991). Learning with media. Review of Educational Research, 61,(2), p 179-211. Malone, T. W., & Lepper, M. R. (1987). Making learning fun: A taxonomic model of intrinsic motivations for learning. In R. E. Snow & M. J. Farr (Eds.), Aptitude, learning, and instruction: III. Cognitive and affective process analysis (pp. 223-253). Hillsdale, NJ: Erlbaum. 205 Van Eck, TOC Through Chapter 11 Chapter 6: The Basic Interaction Overview Once you have completed this chapter, you will have learned approximately 75% of what you need in order to develop interactive instruction in Authorware, and chapter 8 is almost a no-brainer, so this number is really closer to 90%. Of course, there is a LOT more to Authorware, and you will quickly find that you want to do more than you will be able to do after completing the first 8 chapters of this book. Nevertheless, everything you learn from chapter 9 on will be more or less an extension of what you have already learned. You are now able to add text, graphics, sound, and video to an Authorware program. You are also able to animate objects on the screen, cause them to appear and disappear with different effects, and at different times. Up until now, Authorware has not provided any unique capabilities—any multimedia authoring program can accomplish what you have learned so far, even Powerpoint! What has been missing to this point is interactivity. Without interactivity (i.e., the ability for the learner to interact with, respond to, and control the program), it is not possible to create meaningful instruction. We are all familiar with large lecture-based classes in which 100 or more students attend lectures for 50 minutes at a time. Although the information is presented to us, without the opportunity ask questions and apply the concepts, it is much harder to integrate the knowledge in ways that are likely to result in long-term learning gains. 206 Van Eck, TOC Through Chapter 11 Yet even in large lecture classes, we normally demonstrate knowledge through tests and papers, which are opportunities for us to take an active role in working with the knowledge (e.g., applying it to real-world scenarios, re-organizing and making connections between concepts in order to support a position or hypotheses, etc.). These two types of interactivity, practice during learning and assessment of learning, are critical to the design and development of effective CBI/CBT. There is a third kind of interaction in CBI/CBT as well; interactions that help the learner navigate from place to place in your program (e.g., forward and back buttons). Interactions are the heart and soul of Authorware; this is where the program distinguishes itself from it’s many competitors. Interactions are icons that allow you to build in opportunities for the learner to responds to your instruction. As practice items, they can allow the learner to answer questions, practice applying concepts and skills, drag terms to their corresponding definitions, etc. As assessment items, they can measure performance on the specific objectives you identified for your instruction. In both cases, the interaction opportunities can include clicking buttons, clicking objects or words on screen, typing in text, dragging objects on screen, selecting menu items, and several other (less familiar) options. Authorware makes the process of creating interactivity far more simple than its closest competitors and, most importantly, makes the process of tracking learner responses (e.g., correct, incorrect, time spent) nearly automatic.5 This chapter will focus on building basic interactions. We will 5 Nearly, in the sense that you must actually tell Authorware when you create different responses that you want to keep track of them. 207 Van Eck, TOC Through Chapter 11 examine seven of the more common response types. The other, more complicated response types will be covered in depth in Chapter 12. Objectives At the end of this chapter, you will be able to: • Add Button, Hotspot, Hot Object, Pulldown Menu, and Text Entry responses to your program, • Set Time Limits and Tries Limits for each interaction, • Create feedback for the learner based on their responses, • Keep track of learner performance (e.g., number of correct vs. incorrect answers) in your program. Terminology There are some terms used in Authorware and this chapter which are important to understand prior to studying interactions. The first term, interaction, has already been partially defined as an opportunity for the learner to interact with your program. One key distinction, however, is that while there is an interaction icon in Authorware, it requires several other icons to build interactivity into your program. In this way, it is similar to animation icons; if you drag only an animation icon to the flowline, and not a display icon to go with it, you will not have any animation. An interaction must have one or more responses associated with it. Responses are the ways that your learners can interact with (respond to) your program. If you want them to 208 Van Eck, TOC Through Chapter 11 navigate to the next scene by clicking a button, you must add an interaction icon and then a button response type to that interaction. Depending on what kind of response you want the learner to make, you select different response types (e.g., hotspot, text entry, etc.). Anatomy of an Interaction As I mentioned earlier, and interaction in Authorware is actually made up of several different icons, only one of which is the actual interaction icon itself. In addition to the different icons that are needed, there are several settings and steps along the way that are required for an interaction. To help you remember these, I have created the mnemonic DIRECT, which stands for Display, Interaction, Response, Evaluate, Control, and Track. It is not strictly necessary to create interactions using all of these options, nor in the prescribed sequence. BUT. Given that • Interactions are key to building CBI/CBT, and • Interactions require several steps and icons, and • Five years of experience teaching students to use Authorware has convinced me that not following this sequence and process when first learning Authorware can produce disastrous results I highly recommend that you stick to this approach until you have developed an entire instructional unit in Authorware and are comfortable enough with how interactions work that you can begin bending the rules. 209 Van Eck, TOC Through Chapter 11 As we go through the basic anatomy of an interaction, I will provide descriptions and explanations of each step. At the end of each section, I will ask you to create that step in Authorware. If you prefer to read this chapter prior to attempting to build an interaction (not a bad idea in any case), ignore these requests until you are at a computer. Otherwise, you may want to stop reading now, move to a computer and launch Authorware so that you will be ready to perform each step as it comes up. Heads Up: Don’t use the program you have been building as part of the chapter exercises to build this practice interaction. Instead, create a new file so that you won’t inadvertently “break” your existing program as you practice. Let’s start by looking at what a completed interaction looks like. Figure 21 is an example of a completed interaction. Keep in mind that this is just one possible type of interaction, in this case a question that the user must answer by clicking on one of four buttons. As we look at different response types later in this chapter, you will learn about other kinds of interactions. Figure 21. Example of an interaction that asks the learner a question and gives them four possible answers to choose from. 210 Van Eck, TOC Through Chapter 11 This interaction is included on the web site; if you have access to the Web or have already downloaded the chapter files for this chapter, you may want to stop here and run the file (Ch_6_Fig_21) to see what the final product looks like. Keep in mind that the example used is designed to illustrate a point, and is thus quite plain and boring; it is NOT intended as good example of what your screens and interface should look like! When you run the program, you see the question itself (“What kind of program metaphor does Authorware use?”) and the four choices to choose from (Card-based, Icon & Flowline, Cast/Timeline/Stage Metaphor, What is a meta for?). The question itself is typed inside the display icon at the top of the flowline; when Authorware encounters the display icon, it displays the text on the screen and moves immediately on to the interaction icon. When Authorware hits the interaction icon, it knows to stop and wait for the learner to perform some action. In fact, Authorware cannot move on down the flowline until the learner makes a response that allows it to do so. The actions that the learner can perform are determined by the response types displayed to the right of the interaction icon. In this case, these responses are buttons that the learner can click. Note that it is the responses themselves that show up on screen, not the interaction icon itself—it is there to signal to Authorware that you want to build in some kind of interactivity. 211 Van Eck, TOC Through Chapter 11 Heads Up: A response is actually made up of two components: the response type (button, hotspot, etc.) and the icon connected to that response type: The response type is represented by the shape at the top of each response on the flowline itself. Each response type has its own shape; in the example above, this is an oblong shape, which represents a button response. The icon connected to each response reflects the feedback or action that occurs when the response is selected (triggered). Most commonly, this icon is where you place your feedback to the learner (“Good work, you got that one right”), although as you will see later, all kinds of activity can take place as part of a response. Together, the response type and the icon connected to it form a response. When the learner clicks on one of the wrong answers, they get feedback that says “No. Try again.” This continues until they select the correct answer, at which point it says “Good work. Click continue to move on.” But how does Authorware know where to go when the learner selects a response? How does it know what is correct or incorrect? And where does that feedback come from? The answer to the first question has to do with the flowline through the interaction. Notice that the response types to the right of the interaction are all connected by a line, 212 Van Eck, TOC Through Chapter 11 and that this line runs across the top of and through each response. This line is an extension of the flowline itself, which now runs through every response in this interaction. Let’s examine this flowline in more detail, because it contains the key to understanding how Authorware works with an interaction. The flowline extends straight out to the right from the point of the interaction across all responses, makes a 90-degree turn up and then another 90-degree turn left and back to the flowline, creating a circle. So Authorware hits the interaction, follows the line out to the right until it has seen (and displayed) all the responses (buttons, in this case), at which point it runs back to the flowline and waits for the learner to select one of the responses. This is key, because Authorware will stay in this “loop” until the learner selects a response that allows Authorware to exit the interaction. To understand how and when Authorware knows to exit the interaction, we need to examine the flowine’s connections to and through each response icon. Tip: Those of you mechanically inclined may find it useful to think of an interaction as an electrical circuit diagram. The interaction itself is a closed circuit, while each of the response icons attached to the interaction represent a switch, or gate. Selecting a response extends the circuit down into the response icon. Depending on which direction the response is set to, it either routes the power back up and around into the interaction (as with Answers 1, 2, or 3) or out of the interaction (as in the case with Answer 4). The lines that extend down from each response type (the shape on the flowline at the top of each response) represent the paths that the flowline can take IF that response is triggered (selected). When Authorware first encounters our interaction in the example 213 Van Eck, TOC Through Chapter 11 above, it makes a loop across the top of each response, comes back to the flowline, and waits. As soon as the learner selects one of the buttons, Authorware immediately follows the flowline down into that response icon, in this case a map, does whatever it finds there (displays text or graphics, plays sounds, or whatever else is inside the map) and then exits out the bottom of the response. Depending on which direction the flowline is pointing (as indicated by the directional arrows), Authorware will then either exit the interaction and go back to the main flowline (as it does with “Icon & Flowline” in our example) or return back through to the top of the interaction where it will wait for another response (as it does with the first three answers). Heads Up: If you were paying close attention to the program when you ran it, you may have noticed that the order of the button on the screen do NOT match the order of the responses on the flowline. This is because you can place your responses on the screen in any order you want, regardless of how they appear on the flowline. Tip: It is not necessary to use map icons for your responses—any icon except the decision icon and the interaction icon itself can use for a response. I use and recommend maps because that way I can have more than one thing happen in each of my responses (e.g., I can play a sound AND display some text feedback by placing a sound and display icon inside my map). In the example here, I could have used a display icon instead of a map, since most of my feedback consists only of text. So now we know how Authorware knows which way to go when different responses are triggered. The last piece of the puzzle is determining whether a response is correct or incorrect. One common misconception people have when first learning Authorware is 214 Van Eck, TOC Through Chapter 11 that they mistake the feedback (“Right,” or “Wrong”) for determining whether a response is correct or not. Your feedback tells the learner whether they were right or wrong, but Authorware can’t read the contents of your display icon to see if it should count that response as a correct or incorrect response. And you want Authorware to keep track of this, because it will allow you to capture performance data that you can use to evaluate your instruction (e.g., number of objectives mastered), provide feedback to the learner in the form of final scores at the end of modules and units, and make decisions about how to proceed (e.g., provide remediation to the learner in areas that they have not fully mastered yet). The way that you tell Authorware how to score responses is determined by the symbol to the left of each response name (+, -, or blank). When you create a response, Authorware automatically creates a title for that response and places it off to the right of the interaction (“Untitled” is the default title until/if you change it). The name of the response closest to the interaction icon itself will be the first title on the list at the right, with each successive response title appearing below. In our case, the titles of each response determine the labels that appear on each button. The symbol to the left of each title tells Authorware whether it should count that response as correct (+), incorrect (-), or not judge it at all (a blank space). So Authorware will count the response “Icon & Flowline” as correct, and all the others as incorrect. By this point, your eyes may be glazing over and you may be seriously considering whether should just stick with powerpoint and not get into CBI/CBT at all. Never fear; this is a normal reaction. If Authorware were super easy to learn, everyone would do it and we wouldn’t get paid nearly so much to create. 215 Van Eck, TOC Through Chapter 11 The reason this section can be a bit overwhelming is that interactivity itself is a complicated process—ask a C++ programmer what is involved in creating the interaction above! Believe it or not, Authorware makes this process as simple as it is possible to make it—the difficulty comes in learning the terminology and thought process behind the way it does it. Remember also that interactivity is the heart and soul of Authorware, and so represents the largest single chunk of learning you must do when learning Authorware. To make it easier to process all this information, let’s revisit each element of an interaction in more detail, using the acronym DIRECT to help us manage the process of building a basic interaction. Display (DIRECT) The first element of a basic interaction is a Display icon. This is where you create the text and graphics objects that you want to display to the learner. In its simplest form, this is where you would type a question you want to have the learner answer along with any instructions about how to proceed (e.g., “click the continue submit when done”). It is important to remember that this will be text only, and that when the learner responds to your request they will be selecting responses on the interaction icon itself, NOT your display icon. In some cases, you may need more than a display icon. For instance, if you want to animate something prior to presenting the question, or you want to have the question read out loud, you would need to add an animation icon or a sound icon, respectively. These actions are accomplished in exactly the same fashion you already know; remember that we are building a basic interaction right now in order to keep the complexity low. 216 Van Eck, TOC Through Chapter 11 Create a display icon that has the following in it: • Text that reads “What color is the square on this page?” • A red square, a yellow circle, and a blue circle, each centered below the question. Interaction (DIRECT) The next step is to place an interaction icon below the display icon. There are several options that you can set to control how your interaction behaves, but you actually don’t need to modify any of them to create the kind of basic interactions we are interested in now. For now, just add an interaction icon to the flowline beneath your display icon. Heads Up: Although I have not asked you to set any of these options (nor do I recommend that you do so at this point), it is prudent to describe the process involved in doing so, because it differs from other icons. If you double-click on an interaction icon, you will get a blank design window. This window represents what is inside the interaction icon. Macromedia suggests that you type your question inside the interaction icon, rather than a separate display icon. While it is certainly feasible to do this, in my experience it can be confusing for beginning learners (in fact, I never do it myself either). I find it helpful to think of my interaction icon separately from my text and graphics objects. Also, there are times when you need more than one element for your question (for target area responses, or if I want to animate two elements of my question, for instance). In such cases, you would have to put one element inside the interaction icon and the other elements in their own display icons, which can be confusing. 217 Van Eck, TOC Through Chapter 11 The main reason I bring this up, however, is that in order to set the options for your interaction, it is necessary to right-click on the icon and select properties from the popup menu (ModifyIconProperties and Ctrl-I also work). For now don’t worry about either the inside of the interaction icon or setting its properties. Responses (DIRECT) What you have created to this point is a place to request the learner to do something (e.g., answer a question, match concepts together) by using one or more display icons, and told Authorware that you want to provide a way for the learner to interact with the program by adding an interaction icon. What you need to do now is tell Authorware how the learner will interact with the program; do you want them to click a button? Drag something on screen? Select something from a menu? You do this by adding responses to the interaction. There are several different types of responses that are possible, some more familiar to you than others. While Authorware allows you to build complex interactions, most people find it a bit overwhelming to master them all when first learning Authorware. Accordingly, I will only discuss seven of the eleven different types of responses in this chapter. These seven types represent the most common types of interactivity most people want to be able to incorporate. Chapter 12 will discuss the additional four types of responses as well as some of the more complex options and settings you can use. It is important to understand what each of these 7 response types is called and what it does. Table 3 presents a description of each type along with examples of how each looks to you and to the learner. Note that for simplicity’s sake, I have used small screen shots 218 Van Eck, TOC Through Chapter 11 from a program with a plain white background color for the “on screen” images; the background colors, text, graphics, etc., will vary with each program. I have also organized them by the description of the response rather than the name of the response type, because Authorware’s naming conventions are not always intuitive. 219 Van Eck, TOC Through Chapter 11 Table 3. Description and names of response types in Authorware. If you want to have the learner… then you use this response type…, which looks like this to… you, on the flowline: click on one or more buttons. you, on screen: Button the learner: Same (Default button: can be customized to look like anything) click on one part of the screen. Hotspot [hotspots are invisible to the learner] or (Same) Hot Object (or any graphic or text object you choose) select something from a menu. Pulldown Menu (Same) (menu is at top of screen) type in their answer (e.g., a short answer or fill in the blank type question) Text Entry get a certain number of chances to answer the question. Tries Limit Not visible on screen (Same) Give the learner a certain of time to answer the question. Time Limit Not visible on screen (Same) (You can choose any color background you want for the text box) The process for adding response types is identical for all types of responses: drag an icon to the right of your interaction icon and release it. The first icon you drag onto you 220 Van Eck, TOC Through Chapter 11 interaction in this manner will “snap” onto a new line that extends out from interaction icon, and you will be prompted to specify which kind of response type it should be. See Figure 22.6 You can add as many responses as you want to any interaction, and they can be of any response type you desire (i.e., you can mix and match as many as you want), BUT; each subsequent response you create after the first one will automatically take on the exact properties and settings of the first one. To change any of these to another response type, you will have to open that response types settings dialog box (done by double-clicking on the symbol at the. Once you add a sixth response to an interaction, Authorware will create a scrolling window wide enough to view 5 responses at a time; to view the others you must use a scroll bar to scroll through the responses. This is done to prevent your interaction icons from taking up too much screen space, thus making it hard to view libraries and other windows at the same time. 6 Remember that there are two components to a response: the response type, and the icon you dragged to the right of the interaction! The response type is what tells Authorware whether to display a button, a hotspot, a hot object, etc. The icon itself represents what should happen when the response is triggered. 221 Van Eck, TOC Through Chapter 11 Figure 22. Dialog box for specifying response type for interactions. You can drag any icon except an interaction icon and a decision icon to the right of an interaction to turn it into a response, depending on what you want to have happen when the learner chooses a particular response. For instance, if I want to have some text appear on screen when they click a button, I could drag a display icon to the right of my interaction. Then, when they click the button, the text I type inside that display icon appears on the screen. Similarly, if I wanted a sound or movie to play when they clicked a button, I could drag a sound or movie icon to the right of my interaction and make them button. If I want the program to jump to another place in the program when the learner selects a response, I could drag a navigation icon to the right of my interaction. Nevertheless, I recommend that you use map icons for your responses so that you have the option of placing more than one icon in a response (e.g., have a sound play, some text appear, and something animate; or even ask a follow up question by putting another interaction inside a response!). While you may not make much use of this feature now, this will help you avoid common problems later when you start working with more complex interactions. Each response type has its own settings, options, and abilities. Although the process for adding each of them is basically the same, it is important to understand the individual options available to you for each one. The following sections will examine the process and settings for each response type. Customizing Responses—an overview 222 Van Eck, TOC Through Chapter 11 There are several settings and options you can adjust to customize how your responses look and behave. All of these are accessed by double-clicking on the response type symbol (see the Heads Up on responses, earlier in this chapter). Double clicking on the response type symbol (you have to click right on the symbol) brings up a dialog box similar to the following: Figure 23. Response Dialog Box. Note that the dialog box in the figure is specific to a button response, which is the first response we will examine. There are several elements that are common to all response type dialog boxes, however, and it may be helpful to examine these common elements prior to looking at specific responses. The top box is the title of the response, and changing the text here will change both the name of the icon on your flowline and the name that appears on the response itself. In the case of buttons, that means the label of the button will change. In the case of other, 223 Van Eck, TOC Through Chapter 11 invisible responses (e.g., hotspots), the label of the hotspot will change, but only you can see that title when authoring your program; to the user, it is invisible. The drop down menu below that box allows you to change the response from the current state (in this case, button) to any other type of response (e.g., hotspot, menu, etc.).The next four boxes allow you to specify the exact size and placement of the response. The value represent x and y coordinates (and you thought you’d never use that high school math!) on the screen, with 1,1 being in the upper left corner. While most re-sizing and placement can be accomplished by “stretching” and dragging the response with your mouse, there may be occasions where you need to be more specific (e.g, you want to make several responses exactly the same size, or line up responses perfectly over several screens). The box labeled Key(s) allows you to specify a keystroke or keystroke combination that will trigger the response. You are already familiar with this process from menu shortcuts in many programs, which allow you to select a menu item by using keys (e.g., control-C copies whatever is currently highlighted to the clipboard). Tip: Using Key(s). Space does not permit a complete listing of syntax and labels used in this box, but typing the letter “k” would allow the user to trigger this response by hitting “k;” typing in Ctrlk will allow the user to trigger the button by holding the control key down and pressing k. Keys are case sensitive, so if you want the user to be able to select either K or k, you must include both by using the symbol “|” which is the universal symbol for “or” in Authorware. You may have also noticed that there are two tabs in figure 23, and that the options we have been discussing are all associated with the Button tab. Every response option dialog 224 Van Eck, TOC Through Chapter 11 box will also have a response tab. Selecting this tab will give you a dialog box that looks like this: In my experience, this dialog box is where most students become confused. There are really only two things you need to change via this dialog box: “Scope” and “Erase.” All the other options can be set more intuitively from the flowline itself. Making the “Scope” Perpetual makes your response permanent; it will always be available to the learner at any point in your program. By default, responses are active for only as long as the learner is in your interaction; as soon as they exit and move on, the responses disappear. Perpetual responses are useful for navigation (main menu, quit, etc.) and accessing help features (buttons or pull-down menus). The Erase setting tells Authorware what to do with the contents of a given response once it is done. Setting your response to erase After Next Entry will cause Authorware to continue to display everything in your response until the learner makes another response 225 Van Eck, TOC Through Chapter 11 (useful for “try again” feedback). Setting your response to erase Before Next Entry will cause Authorware to erase everything in your response as soon as it leaves the response. Setting it to Don’t Erase prevents Authorware from erasing the contents until you specifically place an erase icon in your program that is set to erase the contents. Until you get used to interactions, I recommend that you select After Next Entry. That’s about all the features that are common to most response types. Now lets look at each response and its options in more detail. Buttons. Buttons are probably the most common response type used in interactive instruction, whether for navigation (forward, back, main menu, help, etc.), to access extra content (“click here to see a video example….), or to answer questions for practice or during assessment. They are also the most familiar to us and are thus among the easiest response types to master. The name you give each button response determines both the text that appears on the button (called the label), and the title of the response itself (on the flowline and in the title box—see figure 23). Clicking on the button while the piece is running will cause Authorware to follow the flowline down through the icon attached to that response, perform whatever actions that icon requires, and exit back out the bottom in the direction you specify with the arrow (covered toward the end of this chapter). If the icon is a map, you can specify several things to happen when that response is triggered by placing several icons inside the map attached to that response. 226 Van Eck, TOC Through Chapter 11 Arranging Your Responses on the Screen You can view your buttons and move them around on screen in one of two ways: opening the interaction icon or running the piece. If you open the interaction icon (double-click), you will see every response icon attached to that interaction. By default, they will all be lined up in the upper left corner of the screen. You can drag these buttons around on the screen to arrange them in any manner you wish—doing so has no effect on the order they appear on the flowline to the right of your interaction icon. If you use this method to arrange your buttons (or any response) you will not be able to see any other screen elements you may have built in to your interaction (e.g., screen titles, backgrounds, text boxes, your question, etc.), since you are are really looking at the contents of your interaction icon. The tip mentioned earlier about holding the shift key down while you open each icon you want to see (e.g., the display with your question in it, the display with your background, and your interaction icon), you will be able to see the contents of all those icons while you arrange your buttons on screen. The other way to arrange your buttons is to run your piece, press Ctrl-P to pause the program, and drag your buttons around as needed. There are three areas that are unique to the button response options dialog box: Button library (upper left corner window), Options, and Cursor. The button library allows you to create custom buttons, with rollovers, sound effects, and special graphics. It is a very powerful feature of Authorware, but can be overwhelming when you are still mastering 227 Van Eck, TOC Through Chapter 11 the basics of interactions. For this reason, I will not cover customizing buttons until Chapter 12. There are two settings that can be made to the Options sections: Make Default and Hide When Inactive. The Hide When Inactive option will be discussed in Chapter 12, after you have learned about variables. The Make Default option for a give button tells Authorware that that button is the default for the given interaction. This means that hitting the Enter/Return key on the keyboard will trigger that button. You are familiar with this from dialog boxes in many programs in which there are more than one button to choose from, but one of them has a heavy line around it or is otherwise highlighted. For instance, when you attempt to move a file in Windows 9x to the recycle bin, you are presented with a dialog box asking if you are sure you want to delete the file. Of the two options (Yes and No), “Yes” has a dotted line around it—hitting return triggers that button. The Cursor option allows you to specify a cursor to display when the learner has placed his or her mouse over the response. This is most familiar to you from the Internet, where placing your mouse over a link causes the mouse to change to a hand. If you select the button labeled “…” next to Cursor, you will be able to select from several cursors, including a pointing hand. Power Tip: It is also possible to create a custom cursor using a cursor editing program and selecting the “Add” from the cursor dialog box. The cursor should be no larger than 32 pixels by 32 pixels square, and must be saved in the .cur format. Several good shareware program exist for creating and editing cursors. Icon Editor, by Herman & 228 Van Eck, TOC Through Chapter 11 Associates is a popular shareware program for doing this, and can be found online at any shareware website such as www.shareware.com. Hotspots. Hotspots are invisible boxes or rectangles that you can place on the screen “over” other elements on the screen. An example might be when you have an image of a piece of machinery with several different components that you want the learner to be able to explore. You could arrange several hotspot responses, each over a different component of the machine, so that the learner can select different parts of the image to get definitions and descriptions of that component. Similarly, you could turn an image into a menu in such a way that selecting different parts of the image takes the learner to different parts of the program. Hotspots are particularly common in games, where the player explores their environment with the mouse, which changes when over an object or area with which the player can interact. Clicking then allows the player to examine the object, move to another part of the game, etc. Hotspots can be moved and resized in a similar fashion to buttons, but because they are ‘invisible’ to the learner, you cannot see them while the piece is running. Instead, you must either pause the piece (at which point they show up as dotted rectangles on the screen) or view them by opening up the interaction icon itself. Heads Up: This is one example of why it is important to get into the habit of naming your icons as you create them. If you open up an interaction icon with five different hotspots attached to it, each of which is named “Untitled,” (as they are by default), you 229 Van Eck, TOC Through Chapter 11 will have no way of knowing where each hotspot should be placed on the screen. Remember that the order of icon on the flowline does NOT reflect their placement on the screen, so name each icon as you create it, and make sure that name will mean something to you when you are looking at them on screen! The Hotspot response options dialog box appears in Figure 24, below. Figure 24. Hotspot options dialog box. There are only three additional options to set in a hotspot response: Match, Highlight on match, and Mark on Match. Under the match dropdown menu, you can select from Single-click, Double-click, or Cursor in Area. These settings determine what action the user must take to trigger the hotspot. Setting Match to Single-click means the response is triggered when the learner clicks anywhere in the hotspot. Setting Match to Double-click 230 Van Eck, TOC Through Chapter 11 means the response is triggered when the learner clicks twice anywhere in the hotspot. Setting Match to Cursor in Area means the response is triggered when the learner places the mouse anywhere over the hotspot. You can think of this last option as a roll-over, in which some text, sound, or image appears on screen when the mouse is “rolled over” an area on the screen. Tip: When using hotspots, it is important to remember that the learner cannot see the actual hotspot itself, only the image on the screen over which you have placed your hotspots. With roll-over hotspots, the learner gets immediate feedback when the move the mouse over the hotspot, but with hotspots set to match when clicked once or twice, the learner will have no idea if they are in the right place or not until the actually click and something does or does not happen. This can be frustrating for the learner since they may potentially have to click tens or even hundreds of time on screen in order to find the hotspot. For this reason, it is important to always provide instructions and feedback to the learner about what they should do. The best way to do this is to set a cursor to change when the learner is “over” a hotspot, (like a hyperlink on a Web page). This way, they can “wave” the cursor around the screen until they see the cursor change, indicating they can click in that area. The Highlight on Match and Mark on Match are ways for you to provide additional feedback to the learner about their performance. When Highlight on Match is selected, triggering that hotspot will cause the hotspot area to change color briefly, signaling that it has been triggered. When Mark on Match is selected, a small check box will appear in the upper left corner of the hotspot; triggering that hotspot will cause that box to permanently turn black, indicating that the hotspot has been triggered. 231 Van Eck, TOC Through Chapter 11 Hot Objects. For all intents and purposes, you can think of Hot Objects and Hotspots as nearly identical. As far as the learner is concerned, interaction with either one is the same. The only differences are that Hotspots are invisible and must be square or rectangular, while Hot Objects are actual visible objects (text, graphics, movies, etc.). The main reason you might use Hot Objects instead of Hotspots would be that the area of screen you want to make “hot” is not a square or rectangle, or because you are unable to arrange a series of hotspots on screen without them “overlapping.” In the first case, imagine you have round shape on screen that you want the learner to select. If you used a Hotspot, you could stretch the Hotspot so that the round shape was inside the Hotspot, but the corners of the hotspot would extend beyond the round shape. This would create a situation where the learner could click on the corner area (which extends beyond the round shape) and still trigger the response. In the second case, imagine a series of areas close together on screen that you want to make “hot.” It might not be possible arrange your Hotspots to cover each area without overlapping, meaning the learner could click on one area but accidentally trigger an adjacent hotspot. Hot objects can be any shape or size, determined only by the size and shape of the object itself. What’s more, if you change the size of the object itself, you have automatically changed the size of the response, since they are one and the same. The process for adding a Hot Object differs only slightly from other responses. When you set a response type to be a Hot Object, the dialog box changes to include a message: “Click an object to make it the hot object:” 232 Van Eck, TOC Through Chapter 11 Figure 24. Hot Object options dialog box. For this reason, you MUST create the Hot Object response(s) on your interaction and then run the interaction. When Authorware hits the interaction, it will pause and bring up the dialog box, at which point you can click on the object you want to be the hot object. All other available options function identically to other responses. Pulldown Menus. Pulldown Menus differ from other response types in that their primary use is for remediation or navigation between sections of the program. They are most often perpetual (permanent) kinds of interactions, and usually appear in the beginning of the program. Nevertheless, they can be placed anywhere in the program and can be active only for the duration of the current interaction if desired. While it is technically possible to put Pulldown Menu responses on an interaction with other kinds of response types, it is 233 Van Eck, TOC Through Chapter 11 highly unlikely that you would need to do so. In any case, for now you should think of Pulldown Menus as a separate kind of interaction. The process for creating a pulldown menu item is as follows: 1) Drag an interaction icon to the flowline 2) Name the interaction icon whatever you want your menu to be called; this is what will appear in the menu bar itself. For instance, if you want a menu called “Navigation,” name the interaction icon “Navigation.” 3) Drag one map icon for each menu item you want to have on your menu, selecting Pulldown Menu as the response type. Make each response “Perpetual” in scope if you want it to be available throughout the program. For instance, if I want to have three selections on my “Navigation” menu, I would add three map icons to my interaction. 4) Name each response whatever you want that item on your menu to be called. For instance, I might name my three responses “Section I,” Section II,” and “Section III.” 5) Place whatever you want to have happen when each item is selected inside the corresponding map. This could be a navigation icon (covered in Chapter 7) or any kind of text, image, sound, movie, etc. that you want to occur. The Pulldown Menu response options dialog box appears in Figure 26, below. 234 Van Eck, TOC Through Chapter 11 Figure 24. Pulldown Menu options dialog box. There are no options to set beyond this, but a few words on the dialog box are in order. The title box at the top reflects the name of the response as does the Menu Item box below it, and will be the name of the menu item itself. The box in-between, labeled “Menu,” reflects the name of the interaction icon itself, which forms the basis for the name of the menu on the screen. Heads Up: Everyone gets this confused in the beginning, so it is worth emphasizing that the Menu name comes from the interaction icon, and the items on the menu come from the names of the response icons themselves. Text Entry Responses Text entry responses can be somewhat confusing in their implementation. This is because while every other type of response has one corresponding object on the screen (e.g., one 235 Van Eck, TOC Through Chapter 11 button for each response, one hotspot for each response, etc.), there is only one text entry field on the screen, no matter how many different text entry responses you add to the interaction. There is a kind of logic to this, however, if you think about it. We usually only want to provide one place for someone to type, but we want them to be able to lots of different things in that space. With the text entry response, the responses you add to the interaction represent the different things that you anticipate the learner typing. For instance, in your program on Mt. Rushmore, you might put a text entry response for one of your questions, such as “Who was the first president of the United States?” You might anticipate that the student could type in the name of any of the four presidents or something completely different. Since you can anticipate the names of the presidents, you would put one text entry response (e.g., one map to the right of the interaction) for each president. Since you cannot anticipate ALL possible responses, you would also want to put one additional text entry response that would match anything else they might type. The process for doing this is similar to all response types: you drag one icon (I suggest a map) for each response you want over to the right of the interaction icon. And just as with buttons, you name these responses for the answers they represent. The difference is that instead of the name of the response showing up on screen (as it does for buttons), Authorware uses the name of the response to determine if it matches what the learner typed in. If it does, then Authorware drops down into that response map (where you can provide feedback about the learner’s answer). For this reason, you must name your responses exactly as you expect (or desire) the learner to type in their answer. So, in our earlier example, you would have one response for each president, named George Washington, Thomas Jefferson, Abraham Lincoln, and Theodore Roosevelt. If 236 Van Eck, TOC Through Chapter 11 the learner types one of these names in, Authorware will “trigger” that response and drop down into the response map. But what happens if they type in Herbert Hoover (or any other text that differs from the responses you created)? This is why you need that wildcard I mentioned earlier. Authorware reserves the asterisk character to mean “any text or number.” Therefore, you can place an additional (in this case fifth) text entry response as the LAST response on the interaction, and name it *. Heads Up: You must make this wildcard response the last response because of the way Authorware flows. Remember that it looks top down, left to right. This means that when the learner types in their text, Authorware will look at the first (leftmost) text entry response to see if matches. If it does not, it will continue down the line from left to right until it finds a text entry response that it does match. If you put the wildcard (*) anywhere but last, Authorware will immediately match that response as soon as it sees it and will NOT continue down the line (i.e., to the right). You can set a host of options for the text entry response, including how it should treat partial matches, capitalization, punctuation, and spelling, for instance. These are all set via the response options dialog box, and are fairly self-explanatory. One final note on text entry responses: Whatever the learner types in is stored in a variable called EntryText. You can use this variable in conjunction with another variable to keep track of what the learner types. You will learn how to assign values to variables in Chapter 9, but for now just remember that EntryText is reset everytime the learner types in a text entry box, so if you want to save each thing they type, you have to transfer what is in EntryText to another variable so that it is not lost. A good example of when you might want to do this is when you have the learner type in their name. You can then store their name in a 237 Van Eck, TOC Through Chapter 11 custom variable that you can embed in the instructional text throughout your program (e.g., Rick, now that you have finished section 1, …..). This is a nice way to personalize your instruction. Tries Limit/Time Limit. Tries Limit and Time Limit are unique kinds of responses in that they actually represent limits you place on the learner in regards to the current interaction. If you want to limit the learner to two attempts and/or 30 seconds in an interaction, you would use a Tries Limit set to 2 and/or a Time Limit set to 30 seconds. Tries and Time Limits should be placed at the far right of the interaction, after all possible responses, so that you don’t get them confused with your other responses when setting them to “Correct” or “Incorrect,” (see “Tracking responses,” later in this chapter). The Tries Limit and Time Limit response options dialog boxes appear in Figures 28 and 29, below. Figure 28. Tries Limit options dialog box. 238 Van Eck, TOC Through Chapter 11 Figure 29. Tries Limit options dialog box. As you might expect, determining the tries or time limit you want to set is a matter of typing a value in the appropriate box. With the Time Limit, you have three additional settings to choose from. The Interruption drop down box is used to determine what happens to the “clock” if the learner jumps to another part of the program using some kind of perpetual interaction (like the Pulldown menu described above). You may want the clock to keep running while they are elsewhere (Continue Timing), to pause but pick up where it left off when they return (Pause, Resume on Return), pause the clock and reset it when they return (Pause, Restart on Return), or pause the clock and restart the clock only if it has not already expired (Pause, Restart if Running). Don’t worry about memorizing all this right now; it is unlikely that you will need to change it from the default (Pause, Resume on Return). 239 Van Eck, TOC Through Chapter 11 The two options, “Show Time Remaining,” and “Restart for Each Try,” are easier to understand. Selecting “Show Time Remaining” will cause a small clock to appear on the screen to show the amount of time left to respond. Selecting “Restart for Each Try” will cause the clock to reset itself after each response attempt by the learner. That is all you need to know about response types for now to create the more common, basic interactions you are familiar with. Now we’ll return to examining the rest of the process for creating an interaction. Evaluate (DIRECT) The last section detailed seven of the most common response types. Your selection and modification of responses to your interaction represents the third step in the overall process of building an interaction: Display icon(s), Interaction icon, Responses. The next step is to Evaluate the responses in your interaction, that is, determine which are “correct” and which are “incorrect.” A response in Authorware is counted as correct if it has a plus (+) sign by its name on the flowline. Remember that responses are listed to the right of your interaction in a list form from top to bottom, in the order they appear on the interaction from left to right (got that?) A response is counted as incorrect if it has a minus (-) sign by its name, and not counted as correct or incorrect if it has nothing by its name. Macromedia suggests you set the response status, as this is called, through the response tab in the response type options dialog box. I find it MUCH simpler to use the shortcut they have built in to set this on the flowline. To do so, you need only hold the control key 240 Van Eck, TOC Through Chapter 11 down and click in the space to the left of each response title. Every time you do so, the response will change once; simply keep clicking until the response symbol (+, -, or blank) appears. That is all you need to do to set each response to correct or incorrect (or not judged). Authorware will automatically keep track of all correct and incorrect responses for you. Heads Up: Setting the response status as described above has NOTHING to do with the feedback you provide to the learner; these are two separate events. You must still provide whatever feedback you want the learner to have inside the map icon for each response. Setting the response status only tells Authorware what the status of the response is, NOT the learner. It is possible (although not desireable!) to set the response status to correct (+) and yet provide feedback to the learner that says “No. Try again.” Control (DIRECT) Once you have set the response status for each response(Evaluated them), you need to Control the flow out of each response. You may remember from the section on responses that you can set a response to Continue, Try Again, Return, or Exit the interaction. Return is only used for perpetual responses such as Pulldown menus, so don’t worry about it for now. Each of these corresponds to the direction of the flowline arrow through and out each response. Again, while it is possible to set this through the response tab of the response type options dialog box, it is much easier (and more intuitive) to do so from the flowline. This is accomplished by holding down the Control key and clicking your mouse BELOW each response icon, which in the example we have been looking at are maps. By default, the flowline continues through the response (the map), out the bottom, turns back 241 Van Eck, TOC Through Chapter 11 away from the main flowline and returns to the interaction, allowing the learner to try again. A Control-click on this line will cause it to cycle through the options one at a time; keep clicking until the flowline points in the desired direction. It will take some time before you get used to all of these nuances, but for now you can simplify it by making all wrong responses point back into the interaction (Try Again), and all correct responses point toward the main flowline (Exit Interaction). You will notice a third direction for the flowline as you cycle through the options in this manner; one where the flowline doesn’t actually come out of the response but seems to point straight back up. This is the Continue option, which tells Authorware to continue search for additional response matches rather than just returning to the interaction and waiting for another response. Don’t worry about this for now, as it is less common to need this. Heads Up: There !is actually one additional flowline control you may encounter that is specific to perpetual responses. Perpetual responses have a condition where the flowline drops down out of the response and ends in a small circle like this: This is the state associated with Return, as was discussed earlier. You’ll learn more about this in Chapter 12. Track (DIRECT) You have now performed all the steps necessary to create a basic interaction in Authorware . Technically, you do not have to do anything else to make your interaction 242 Van Eck, TOC Through Chapter 11 work. But because we are talking about developing interactive instruction, pedagogy requires one additional process; tracking the learner’s performance and providing meaningful feedback during and after instruction. To do this, you need to know a little about types of feedback and about variables in Authorware . Feedback & the Teachable Moment While I will discuss feedback in general as it relates to the development of interactive instruction, it is far too complex a topic to be adequately addressed here. If you are interested in the topic (and all serious developers of CBI/CBT should be), see Dempsey & Sales’ 1993 book, Feedback and interactive instruction, published by Educational Technology Publications. Feedback has been classified and defined many different ways, but for our purposes here I will focus on three kinds of feedback: feedback during instruction that relates to specific questions that have been asked answered (Knowledge of Correctness--KC, and Knowledge of Correct Response--KCR), and feedback after instruction that relates to performance on the assessment (summative feedback). KC refers the kind of feedback we are most used to seeing in CBI/CBT; the kind that tells us whether we were correct or incorrect. This minimalist feedback helps the learner assess and manage their learning performance as they work through the instruction. The assumption is that when the learner finds out they were incorrect, they will know that they need more instruction. 243 Van Eck, TOC Through Chapter 11 KCR is similar to KC in that the learner is told whether they were correct or incorrect, but differs in that they are also told what the correct response should have been. KCR is more effective, because the learner is not left in any doubt about what the correct answer is, as could be the case with KC. This assumes, of course, that there are more than two possible answers to the particular question. The problem with both of these types of feedback is that neither one does anything to address the cause of the error itself. There is a concept in education called the teachable moment. That moment occurs when the learner is confident they have the correct answer but find out they are wrong. This creates an affective and cognitive state in the mind of the learner that makes them particularly receptive to learning. When we think we know something and find out we don’t, we are immediately focused on finding out why: “Why isn’t that right? Show me!” If we leave it up to the learner to determine this, as is the case with KC and KCR, we run the risk that they will not find the answers they seek or, worse, that they will form a misconception. The most effective kind of feedback you can provide during instruction is KCR plus explanation (KCRE). Tell the learner whether they were correct or incorrect, explain what the correct response was (even if they got it right), and then explain in a few sentences why that is the correct answer and/or why the incorrect answer is incorrect. Table 4 presents hypothetical feedback of each type for a question about Authorware interactions. You may think this sounds like a lot of work “just for feedback,” but feedback easily can account for 30% of learning when done conscientiously. Unfortunately, the fact that it is more work to do so is why we are most used to seeing only KC feedback in CBI/CBT. 244 Van Eck, TOC Through Chapter 11 Table 3. Hypothetical feedback types and examples. Question Types of Feedback Which of the following represents all the elements needed for an interaction? KC KCR KCRE A. Display icon, interaction icon, response icon, decision icon, evaluation, control, tracking Incorrect. No, the correct answer is B. No, the correct answer is B, because you don’t use a decision icon for basic interactions. B. Display icon, interaction icon, response icon, evaluate, control, tracking Correct. Right! B is the correct answer. Right! B is the correct answer. Remember the acronym DIRECT when you are building your interactions. C. Display icon, interaction icon, response icon, decision icon, feedback icon, tracking Incorrect. No, the correct answer is B. No, the correct answer is B. You are right to be thinking about feedback, but feedback goes inside your response icon; there is no such thing as a feedback icon. The second type of feedback I mentioned is summative feedback. This is feedback that you provide to the learner after they have completed significant portions of your instruction (a set of objectives that form a module, for instance) and at the end of the 245 Van Eck, TOC Through Chapter 11 instruction. Feedback in this case refers to information about overall performance: “You missed 5 out of 25 questions.” Like feedback during instruction, you should try to provide enough information to help the learner identify where they went wrong: “Of the 5 that you missed, 3 were from section 1, and 2 were from section 2. You may want to review these sections again before proceeding.” This kind of feedback is made much easier by Authorware , which automatically tracks information for you. For now, we will focus only on providing overall feedback (i.e., not specific feedback on individual sections), because this can be accomplished using variables that are already present in Authorware . In chapter 11, you will learn about creating custom variables that you can use to provide more specific, targeted feedback. Variables are simply containers that hold information. That information can vary (hence the name variable) depending on many factors. Authorware has some variables built-in automatically. Examples include a variable that tells you when the learner started your program, how long they took in the program, and, more importantly for our purposes here, how many answers were correct or incorrect. You will remember from the Evaluation section of building an interaction that you must set your responses to Correct Response (+), Wrong Response (-), or Not Judged ( ). Authorware keeps track of all correct responses and incorrect responses. It stores this information in variables called TotalCorrect and TotalWrong. Both variables, as is the case with most variables, initially start out at 0. Everytime the learner makes a correct or incorrect response, Authorware adds 1 to the appropriate variable. At the end of the instruction, you can display these variables to the learner to tell them how many they got right and how many they got wrong. 246 Van Eck, TOC Through Chapter 11 To do this, you must embed the variable(s) inside a display icon by typing its name. When you type inside a display icon, however, the text (i.e., what you actually type) shows up to the learner. In the case of providing feedback, however, you don’t want them to see the actual name of the variable; you want them to see what is stored inside that variable. The way that this is handled is to use special characters on either side of the name of the variable to tell Authorware that what you are typing is NOT text, but is the name of a variable. The characters you use to do this are called curly brackets, and they look like this: { and }. So, if I want to show the learner how many correct answers they got, I could type the following inside a display icon: “You got {TotalCorrect} questions right.” If the learner answer five questions right, then they would see this: “You got 5 questions right.” It is critical that you type the name of the variable exactly as it appears, with no spaces and the same capitalization; deviating even one character will cause it not to work. Power Tip: I recommend that you just type these variables out by hand now while you are just learning Authorware , because working with variables can be overwhelming. For now, just think of it as a magic formula that you know how to do. Because it is impossible to remember all the different variable names, and because spelling is so important when using them, Authorware has built in a way to display variables without you typing them. This is accessed through WindowVariables, which brings up a 247 Van Eck, TOC Through Chapter 11 window that lists all variables by name. Clicking on each one provides a description of what it does and how to use it, and allows you to copy it into your display icon (if you have it open at the time have selected the text tool, and started typing) by means of Paste button. You may want to look at this option now to see what I mean, but I do NOT recommend that you try to use it at this point, as you don’t know enough about variables to avoid problems. Note in the example that the variable only contains a number (in this case, 5), so I have to type some text on either side of it for it to make sense to the learner. The process for tell the learner how many they got wrong is the same: “You got {TotalWrong} questions wrong.” Add a display icon now on the flowline underneath your interaction, and type the examples above exactly as they appear. Run your piece a few times, answering correctly and incorrectly, to see how this works. Summary While Authorware has the ability to add text, graphics, movies, and sounds, there are numerous other programs that can do the same. Authorware ’s strength, and reason for existing among other admittedly more polished animation and multimedia products, is its ability to create and track interactivity. This is what makes Authorware the best tool for creating multimedia instruction. The key to interactivity is, of course, the interaction. Despite the fact that there is an icon called an interaction, interactions in Authorware are actually created through the use of several icons. The mnemonic for remembering these 248 Van Eck, TOC Through Chapter 11 icons and the processes necessary to implement them correctly is DIRECT, which stands for Display, Interaction, Response(s), Evaluation, Controlling the flow, and Tracking. The display is used for presenting text and graphics that will be needed for the interaction “scene.” Most commonly, this is where the text and or graphics for the question are presented. It is important to remember the rules about display icons and animation and erase icons (when you animate or erase a display icon, it affects everything inside that icon; to apply animation or erasure to a specific element on your screen, that element must be in its own icon. The interaction icon actually requires the least amount of editing; simply placing it on the flowline after the display icon is sufficient for most types of interactions. More significant is the placement and creation of Responses. Responses are maps that you attach to the right of an interaction icon. Responses can be buttons, hotspots, text entry responses, target areas, pulldown menus, and others. It is important to distinguish between response types and feedback to the learner. Response types are the means of responding (interacting) that you provide to the learner (e.g., buttons to click, places to type text). Feedback to the learner (i.e., what you tell the learner when they have triggered one of your response types) is contained in the map that is attached to that response type. This feedback can be anything you choose, including audio (a sound icon), video (movie icon), and (most commonly) text (a display icon). Once you have added your responses, each one must be set to Correct (+), Incorrect (-), or Not Judged (Evaluated) so that Authorware knows whether to count that response as a correct or incorrect response). Remember that telling Authorware whether a response is 249 Van Eck, TOC Through Chapter 11 correct or incorrect is completely unrelated to what you tell the learner about their response! Finally you must control the flow (where the program should go once the learner has triggered a response). Usually, a correct response points back to the flowline, while an incorrect response cycles back through the interaction so the learner can try again. Tracking responses is actually done automatically by Authorware using variables. You will learn more about variables later, but for now think of them as containers that hold values (number of correct, amount of time spent in the program, etc.). You can also create custom variables to track specific data that you are interested in. In any case, these variables can be saved to a file, printed out, and displayed to the learner at any time by referring to them by name. Most commonly, a display icon is used in which the variable name is typed on the screen between curly brackets ({}). When Authorware encounters these, it displays the contents (value) of that variable rather than the name of the variable. Making the Connection Although interactions allow you to address virtually all four phases of instruction in the Alessi and Trollip model, they primarily address guidance, practice, and assessment. The way in which you design your practice and assessment can impact how intrinsically motivating your instruction is as well. It is important to understand some of the principles for determining the amount and type of practice and assessment to build into your instruction. Practice and Guidance 250 Van Eck, TOC Through Chapter 11 The distinction between practice and guidance is somewhat slippery in that the activities look nearly identical. The difference relies on the amount of instructor guidance that your provide during the interactions. When a learner is first demonstrating something they have just learned, it is a good idea to provide a lot of guidance. The idea is that you want to create a risk-free environment that minimizes error to the extent possible. As the learner progresses and becomes more familiar with the content, the guidance is gradually tapered until the learner is reliably demonstrating the knowledge with little to no intervention. This approach shares much in common with Vygotsky’s (1962) theory of the zone of proximal development (ZPD). In this theory, there are some activities that are completely within the abilities of the learner to accomplish independently, some activities that are impossible for them to accomplish, and some that are possible to accomplish with some guidance and support from someone else. These latter activities are said to be withing the learner’s ZPD, and it is in this zone that learning occurs. Vygotsky called that guidance “scaffolding” because it was the least amount of support needed for the individual to accomplish the task. As we move from guidance to practice, these scaffolds become less and less, until the learner is making more correct responses than incorrect responses, at which point the instructional emphasis shifts from learning the content to building fluency or automaticity. The learner is then practicing applying the information in new a varied contexts, over and over. 251 Van Eck, TOC Through Chapter 11 The only difference between practice and assessment is that practice provides immediate feedback after each practice opportunity in terms of correctness of response along with some form of elaboration and/or clarification, while assessment provide only correctness of response feedback at the end of the entire assessment. Practice is used as part of the learning experience, while assessment is used to provide information about the learner’s progress toward mastery of the objectives. Practice and assessment are types of interactions, but not all interactions are practice. Practice refers to a type of interaction that allows the learner to apply a concept, rule or problem-solving skill they have been presented with. In contrast, interactions can be presented prior the content itself can serve as elaboration or prediction tools. For instance, it is a common technique to ask the learner to predict why some phenomenon occurs, allowing them to select from some possible responses. This kind of advance questioning helps create a cognitive state that promotes learning by activating schemas and mental models associated with the content. Even though this kind of interaction is identical in structure to practice, its placement in relation to the content (before, rather than after) precludes it from being practice. It is a good idea to build multiple practice opportunities into your instruction. Providing one practice opportunity is probably not sufficient for mastery of a concept; learners usually require several practice opportunities. At the same time, however, you don’t want to drive your learner crazy by making them practice everything they learn several times. In general, the more complex the learning, the more practice opportunities are required. Verbal information, discriminations, and concepts that serve as prerequisite skills for rules and problem-solving skills may only require one or two practice opportunities, 252 Van Eck, TOC Through Chapter 11 while the rules and problem-solving skills that are based on them will probably require multiple practice opportunities. Additionally, practice opportunities may need to be distributed over time. Even if a requisite discrimination or concept is simple enough that multiple, sequential practice opportunities are not appropriate, it may be necessary to provide practice opportunities separated by time to ensure that the information has been encoded for long-term retrieval. Practice and Transfer One reason that multiple practice opportunities are required comes from the research on transfer. Transfer refers to the ability to apply prior knowledge in novel contexts. Despite the importance of transfer of learning in education, learners in general rarely demonstrate positive transfer (Asch, 1969; CTGV, 1992a, 1992b; Gick & Holyoak, 1980; Perfetto, Bransford, and Franks, 1983; Reed, Ernst, & Banerji, 1974; Simon & Hayes, 1976; Thurman, 1993; Van Haneghan, 1990; Weisberg, DiCamillo, & Phillips, 1978). One of the reasons for this may be that transfer is context dependent (e.g., Bransford, Franks, Vye, & Sherwood, 1989; Bransford, Sherwood, Vye, & Rieser, 1986; Brown, Collins, & Duguid, 1989; Perkins & Salomon, 1989), and requires multiple practice opportunities over a variety of contexts and settings (Gagné, Briggs, & Wager, 1992). Because CBI/CBT can create learning environments that represent real-world contexts in which the learning will ultimately be demonstrated (transferred), it is possible to create multiple contexts (environments) in which to embed the practice opportunities with little effort beyond that needed to create one context. For example, I once created a math game in which the learner was charged with calculating the amount of paint needed to paint a 253 Van Eck, TOC Through Chapter 11 room in a house. A lot of effort went into creating the structure needed to use a measuring tape to measure walls, doors, and windows, using a calculator and workbook to perform calculations, etc. However, once done, I was able to change the environment from a room in a house to a theater by simply modifying the shape and placement of hotspots and by changing the background graphics and the numbers involved. Assessment Assessment is often a matter of copying and pasting your practice items into a section at the end of your program, changing the numbers and details, and removing the feedback. After all, your practice items should reflect the content and objectives. One thing that is often missing, however, is something that requires the learner to synthesize all of what they have learned into a single application. This culminating activity should be as close as possible to the context in which the learning will ultimately be demonstrated, in order to promote transfer of learning. It is also important to provide feedback to the learner about their performance on the assessment in order to help the learner manage their own instruction. But a simple overall score does not help the learner do this; it only tells them there are some things they don’t know. The feedback you provide should be tied to individual objectives (for the learner’s benefit and for your use in evaluating your instruction) and to specific sections of the program. Ideally, you should tell them which specific questions they missed (describe the item as fully as possible and give them their response), which sections/objectives of the program the content for those items can be found in, suggest a path for remediation for 254 Van Eck, TOC Through Chapter 11 them. You will learn later how to use a decision icon and variables to ensure that they get different questions the next time through the assessment. Motivation The earlier discussion of the ZPD, guidance, and practice is relevant as well to creating intrinsically motivating instruction. Malone & Lepper’s theory (1987) identifies four factors that make for intrinsically motivating instruction: Challenge, Control, Fantasy, and Curiosity. All but Fantasy can be addressed through the use of interactions within your instruction. Challenge refers to making your instruction hard enough that the learner can not just breeze through (and thus get bored) but not so hard that they fail (and become frustrated). As you can see, this correlates with Vygotsky’s theory of the ZPD. Your guidance (which is tied to your interactions) as the learner moves through your instruction is what will allow you to keep the learner in the ZPD by providing remediation and explanation when (and only when) the learner is having difficulty. You should always design the instruction with the assumption that the learner can do it autonomously, but also provide guidance for if and when they cannot. Control can be addressed through interactions as well by allowing the learner to determine their own path through the instruction (menus to navigate to different sections) and control how and when they get extra information (help buttons, glossaries, etc.). Of course, we know that learner’s are not always good judges of what they need and when they need it, so you should also provide guidance reagarding things like the optimal path through the instruction, the number of items most need to attain mastery, feedback on performance and suggested remediation, etc. You should also make them aware of this 255 Van Eck, TOC Through Chapter 11 information periodically throughout the instruction, as research has shown learner’s do not ask for advice often (Dempsey, J. V., & Van Eck, R., 1998; Van Eck, R., & Dempsey, J. V., In Press). Curiosity can be addressed through pre-questioning activities as described earlier. Providing counter-intuitive examples and asking the learner to make predictions based on common misconceptions are examples of ways to promote curiosity, each of which requires an interaction. This is related to another cognitive theory proposed by Piaget, who said that there are three stages involved in building mental models; the model as it exists in the world, the model as it exists in the mind of the learner, and the process of self-regulation (LOOK THIS UP) involved in reconciling the two (which can be done through assimilation or accommodation). Piaget held that learning takes place in the third stage, in the “disequilibrium” between what is and what we believe. According to this theory, we want to keep the learner on their toes, so to speak, in that state of disequilibrium. It is in that state that we arouse the learner’s curiosity; “why isn’t that the right answer?” One way to integrate this into your instruction is to ask the learner to indicate how confident they are in their answer prior to giving them feedback; the more confident they are when they make an incorrect response, the more curious they are as to why they were wrong, and the more amenable they are to attending to and processing the information. It is possible to provide different feedback in cases like this than you would if they were not confident and wrong or confident and right. Exercises 1) Name and describe each of the elements of an interaction. 256 Van Eck, TOC Through Chapter 11 2) How do you arrange responses on the screen (e.g., how do you make your buttons line up or how do you put your hotspots over the right part of the screen) 3) Why is it important to name your responses? 4) What is a “Catchall” Hotspot, and why is it important? 5) I have created a pulldown menu using the following structure: 257 Van Eck, TOC Through Chapter 11 a) What will the name of the menu itself be? b) How many items will be on the menu? c) What would I have to do to make this menu available to the learner at any time in my program? 6) What is the difference between a hotspot and a hot object? 7) What does a tries limit do? 8) What does a time limit do? 9) Where on the interaction should either of the above two responses go? 10) Which of the responses in the following interaction are judged as correct? a) Incorrect? b) Neither? 11) Where does feedback (i.e., what you tell the learner after they select a response choice) go in an interaction? 12) Open the file you have been building as part of the exercises and add the following: a) Add a screen that tells the learner what the topic of your instruction is and what the objectives are (i.e., what they will be able to do once they have finished your piece). Let the learner read that screen until they are ready to move on by clicking a button or a hotspot, at which point the screen will fade out. 258 Van Eck, TOC Through Chapter 11 b) Download the graphics for this chapter, including the four images of Mt. Rushmore. Note that each of this images, when placed next to each other, forms one large image of Mt. Rushmore. Add a series of scenes that teach the learner about Mt. Rushmore using the following facts: i) George Washington was the first president of the United States ii) Jefferson was one of the signers of the declaration of independence iii) Roosevelt was famous for the saying “Talk softly and carry a big stick.” iv) Abraham Lincoln signed the emancipation proclamation. c) Use animations, erase icons and transitions as you see fit when creating this instruction d) Provide a practice test question (interaction) on each of the four facts taught. Use buttons for one question, hotspots for one other question, text entry for one question, hot object for another questions, and limit the learner to two attempts and 30 seconds for each question. Provide KC feedback for one question, KCR feedback for the second question, and KCRE feedback for the third and fourth questions. e) Provide a pulldown menu that appears in the beginning of your program and remains accessible throughout. Name this menu “Help.” This menu should have one item on it named “Mt. Rushmore.” When selected, this item will present a 259 Van Eck, TOC Through Chapter 11 screen with the answers to each of the 4 questions on it, along with instructions for how to return to the program (a button, a mouse click, or whatever you want). f) Keep track of the number of correct responses and incorrect responses. Present final data to the learner at the end of the assessment. 260 Van Eck, TOC Through Chapter 11 References Dempsey, J. V., & Van Eck, R. N. (1998, April). Advisor use in CBT: Modality and placement. Paper presented at the annual meeting of the American Educational Research Association, San Diego, CA. Malone, T. W., & Lepper, M. R. (1987). Making learning fun: A taxonomic model of intrinsic motivations for learning. In R. E. Snow & M. J. Farr (Eds.), Aptitude, learning, and instruction: III. Cognitive and affective process analysis (pp. 223-253). Hillsdale, NJ: Erlbaum. Van Eck, R. N., & Dempsey, J. V. (In Press). The effect of competition and contextualized advisement on the transfer of mathematics skills in a computer-based instructional simulation game. ETR&D Vygotsky, L. S. (1962). Thought and language. Cambridge, MA: The M. I. T. Press. 261 Van Eck, TOC Through Chapter 11 Chapter 7: frameworks Overview You have essentially learned everything you need to know to create interactive instruction using Authorware. Everything you learn from this point forward extends what you already know either by making it easier to accomplish what you want or by allowing you to create products with more complex features. In this chapter you will learn how frameworks can save you several steps and maintain consistency in design and functionality throughout your piece. That’s because frameworks allow you to specify a transition and set of navigational features once that can then be applied to the entire program. Frameworks also allow you to make use of the navigation icon, which allows you to navigate from place to place in the file. Objectives At the end of this chapter, you will be able to use frameworks to: • organize and deliver instruction, • specify transitions for each “page” of your instruction, • build in standard navigation options such as forward and back buttons, • maintain consistency of placement of items within each “page” of instruction, • jump to any page on any framework using navigation icons, 262 Van Eck, TOC Through Chapter 11 • use call and return functions to create sophisticated “just in time” features such as a glossary, • and import and create display icons for instructional text you have created in a word processor. Why use frameworks? Frameworks were designed to solve a specific problem that only becomes apparent when you’ve mastered the basic authoring process and have begun developing significant products (i.e., products that are comprised of tens or hundreds of individual screens). The problem is twofold. Firstly, while it is possible to create lots of “scenes” (e.g., pages of instruction, opportunities to practice and interact, etc.) using displays, interactions, wait icons, and erase icons, if we want to be consistent, we have to make sure all the elements line up in relation to each other (so things don’t jump) and apply the same transitions for every display and erase icon over and over again. For instance, every continue button (from the wait icon) has to be lined up in the same place on every screen, every new “scene” has to have the same transition applied to it, and every erase icon has to have the same erase transition (which in turn must be set to erase a specific display icon). This means we are performing the same three steps, each of which requires several actions, for every new scene. The other part of the problem is that up until now, we have assumed we are developing a program in which the learner moves linearly through the program (e.g., in a tutorial format). What happens if we want to “back up” from one scene to the previous scene? Wait icons only pause the program’s forward progress; they can’t allow the learner to go 263 Van Eck, TOC Through Chapter 11 backwards. Likewise, if we want to be able to jump from place to place in the program based on learner control (e.g., from a main menu, to access help, to look up a word in a glossary) or according to learner actions (e.g., remediation based on performance on the learner’s performance on practice items), we need a way to jump to places in the file. While there is a way to do this using a function called GoTo(IconID@”name of icon to go to”) which is typed inside a calculation icon, it is a somewhat tedious process to go through. Additionally, this function does not allow us (easily) to jump to someplace temporarily (as is the case with a glossary to look up one word) and then return to where we just left off. Frameworks allow us to, in one step, set up transitions between scenes (thereby replacing display transitions and erase transitions) and navigation features such as forward, back, main menu, and quit for a virtually unlimited number of individual scenes. These scenes, or “pages” as they are referred to on a framework, are comprised of maps that are attached to the right of a framework icon. Adding pages is a matter of dragging maps to the right of a framework, much the way you add responses to an interaction icon. The rest of this chapter will examine how frameworks work this is done. Anatomy of a framework You may be asking yourself why, if frameworks are so helpful and convenient, I didn’t tell you about them from the beginning. The answer lies in the structure of a framework. Frameworks appear to be one icon (that looks like a picture frame), but in reality are comprised of several icons. When you double-click on a framework icon, you get a design window that looks like figure 30. 264 Van Eck, TOC Through Chapter 11 Figure 30. The inside of a framework icon. As you can see, a default framework icon is comprised of a display icon, an interaction icon, and several buttons which lead to navigation icons. If you were willing to use the exact setup that Macromedia creates as the default, it would be possible to use a framework without knowing anything about interactions and responses. Unfortunately, I have never encountered a project that required all of the navigation features included in the default framework, nor can I conceive of any project that would want to use the buttons that Macromedia has created for the framework (to see what I mean, drag a framework onto your flowline and run the program—not pretty). In any case, there is no doubt that you will have to modify some framework, sometime, so you need to know how interactions behave before you can work with frameworks. It may help you to understand what frameworks do by understanding where their name (and shape) comes from. Just as a picture frame allows you to place a consistent border around a picture, frameworks allow you to place common elements and features around your individual scenes. And like a picture frame, these elements can be placed around 265 Van Eck, TOC Through Chapter 11 any scene you choose by removing the contents and replacing them with something else; the frame remains the same, but the contents change. Frameworks allow us to place “frames” around our instruction so that we don’t have to recreate those elements every time. Most commonly, these elements are display icons that contain section titles and page numbers (that can change with each page automatically), and interaction icons and responses that allow the learner to control how they move through the program (forward, backward, main menu, help, etc.). Together, these elements “frame” each “page” of our instruction. The first thing to note about a framework is that there are two flowlines; one in the “top” portion (created by the horizontal line that divides the window approximately two-thirds down) and one in the lower portion. Icons that appear in the top portion will appear (or be executed) on every page of the instruction. Every time the learner moves from one page to another (either by moving forward, backward, or jumping to a page), they are first routed automatically through every icon that appears in the top portion. Icons that appear on the flowline in the bottom portion of the window will appear (or be executed) only when the learner leaves a framework (by jumping to another place in the file or otherwise exiting that framework). For most programs, it is only the top portion of the window that is of concern. Power Tip: Although Macromedia has provided one display icon inside the default framework, there is no limit on either the number or type of icons that can be placed here. This means if you want to have 100 display icons, animations, movies, sounds, or calculations applied to every page of your instruction, you can put them in this top portion of the framework. 266 Van Eck, TOC Through Chapter 11 So, in the default framework, the display icon (inappropriately) named “Gray Navigation Panel” contains an image that will appear on every page of instruction attached to this framework. Because this image is placed in the upper right of that display icon, that is where it will appear on every page; if I want to move it, replace it, or otherwise modify it, I need only open that one icon and make my changes once. That’s because everytime the learner moves from page to page on my framework, they are first routed through this top portion of my framework, where the contents of that display icon is presented. My parenthetical comment about the name of the display icon being inappropriate relates to the next icon we find in the top portion of the default framework: the interaction icon. Navigation (between pages on the framework and between the framework and other parts of the program) is accomplished through the use of this interaction icon and the responses that are attached to it. By default, Macromedia provides 8 responses attached to this interaction, each of which is a button that leads to a navigation icon. For now, it is not important to know what each of these particular navigation icons does, only that they facilitate movement between pages on the framework. You may remember from the last chapter that when you set a response to be perpetual (as is necessary for creating permanent pulldown menus, for example), Authorware will continue down the flowline past that interaction without waiting for the learner to trigger a response. The symbol for perpetual responses is the straight line with the small circle you see underneath each of the responses on the interaction in this framework. Given this, what happens when the Authorware encounters a framework is it drops into this top portion of the framework, displays any icons it finds there, including perpetual buttons, hotspots, or whatever, and then continues to the first page. The items and buttons it found 267 Van Eck, TOC Through Chapter 11 inside the framework now appear on that page and every other page attached to the framework. Tip: This interaction icon and its responses behave identically to any other interaction icon and responses. Therefore, you can create any kind of elements you want here, including pulldown menus, hotspots, hot objects, etc. While frameworks make good use of navigation icons, it is not necessary to use them as your responses—you can put anything you want onto the interaction and response types inside a framework. In fact, you can delete everything you see inside the framework, although doing so would mean you would have to provide some other means of moving from page to page. Navigation icons Now that you understand the components of a framework, let’s examine the options you have for the navigation icons. Navigation icons can do a lot more than you might think, but they all follow one basic, important rule; a navigation icon can jump from anywhere, but only to a page attached to a framework. This means that you cannot use a navigation icon in a program that does not make use of at least one framework with at least one page. So I can put a navigation icon anywhere I want in my program, but it can only go to a page attached to a framework. One of the good things about this, however, is that a navigation icon can go to any page on any framework in the file. So if I want to go to the 15th (or 30th, or 52nd, or…) page on a framework, I can use a navigation icon to do so. Setting up these different types of navigation icons is, as with most icons, a matter of setting it’s properties. There are two types of navigations, Jump to Page and Call & 268 Van Eck, TOC Through Chapter 11 Return, and three categories of places (pages) to go to. All of these are accessed through the navigation icon properties dialog box, pictured in Figure 31, below. Figure 31. Navigation icon properties dialog box. The top of this box contains the place for the title of the navigation icon, which is “unlinked” by defaul. Unlike most icons, Authorware will name your navigation icon for you once you set its properties, so it is not necessary to give it a title yourself, although you can. The next box you see is a drop down menu box that will let you select from five different types of navigation destinations: Recent, Nearby, Anywhere, Calculate, & Search. We will examine the first three types in this chapter; in Chapter 12 you will learn about Calculate and Search. Recent When you select “Recent” from the list of possible destinations, you are presented with two options: “Go Back,” and “List Recent Pages.” The key to understanding these 269 Van Eck, TOC Through Chapter 11 options lies in knowing that the last (or most recent) page the learner has viewed may not be the one that immediately precedes the current page on the framework. This is because not all products will be linear (i.e., page one leads to page two leads to page three). It is possible (as you will see) to jump from any page to any other page on a framework, so the most recent page viewed might be the 4th (or 12th, or 57th) on the fourth of five frameworks in the file. “Recent” allows you to specify that the learner should be taken back to the last page they viewed (Go Back) or be able to choose from a list of the most recent pages (List Recent Pages) to go back to. You can control how many pages to list in List Recent Pages by going to ModifyFileNavigation Setup; the default is 999. Nearby When you select “Nearby” from the Destination drop down menu, you are offered 5 choices: Previous, Next, First, Last, and Exit framework/Return. The key to understanding these destinations lies in realizing that Nearby is defined in terms of the framework you are currently on. Previous means go the previous page (i.e., the one that comes immediately before the one the learner is currently on). It is important to distinguish “Previous” from “Recent;” “Previous” can only go backwards one page on the current framework (e.g., from page 5 of a framework to page 4 of the same framework) while “Recent” goes to the last page viewed by the learner regardless of what framework that page was on. If the last page viewed by the learner just happens to be the previous page on the same framework, then “Recent” and “Previous” would be the same. 270 Van Eck, TOC Through Chapter 11 “Next” refers to the page immediately following the current page on the framework (e.g., if the learner is on page 4, “Next” would point to page 5 of the same framework). “First” refers to the very first page of current framework, while “Last” refers to the last page of the current framework. The last option, actually serves a dual purpose, which is why it has forward slash separating “Exit Framework” from “Return.” Remember the bottom portion of the framework window, the one with the second flowline in it? The “Exit Framework navigation icon is the way you tell Authorware to exit (leave) the framework, at which point it executes anything you have put on the exit portion flowline of the framework. The reason this is important is that when the learner reaches the last page of your framework, clicking the “Next” button will not take them out of the framework and back onto the flowline; it will cycle back to the first page of the framework instead. You have to tell Authorware to exit the framework by using this Exit Framework/Return option. As you will see later in this chapter, this is the same option that you will use when building a Call & Return navigation; it is the “Return” part of Call & Return. Anywhere “Anywhere” is perhaps the most intuitive destination name, but can be confusing to implement. When you choose “Anywhere” as the destination type, you get a dialog box that looks like figure 31 (it is in fact the default destination type). You can then tell Authorware which specific page on which specific framework that this navigation icon should go to. It can be any page on any framework anywhere in the file. This is when the next drop down menu and the box below it become important. You use these to select the framework and page that you want the navigation icon to go to. 271 Van Eck, TOC Through Chapter 11 The drop down menu labeled “Framework:” allows you to select individual frameworks in your program. If you have one framework, you will only have one option in the “Framework:” menu; if you have 10 frameworks, you will be able to choose from all ten. The “Page:” window below is tied to the “Framework:” menu. When you select a framework, the pages that are attached to that framework are automatically displayed in this window. As you change to different frameworks, the contents of this window change to match the pages on that framework. You may once again recognize the importance of naming your icons in your program according to a naming/numbering scheme (you may want to read Chapter 3 if you have not already done so). The only way you will know which framework you are selecting is from it’s name. Likewise, the only way you know which page to go to on a selected framework is from it’s name. If you leave them “Untitled,” you’ll be selected from several frameworks and pages named “Untitled,” and there is no way to pause and go look at each one (not that that would be any fun!) without canceling the dialog box first. You have one other option to choose from in the “Framework:” menu: “Entire File.” Selecting “Entire File” will show you every page on every framework. While this can be handy in some cases, it can be quite confusing, especially if you have named your pages something like “Page One,” since you will then have a “Page One” for every framework, with no way to tell which one is which. This is why I recommend that you name your pages using a naming scheme that reflects the framework and page number (e.g., S1_P1 for Section 1, Page1). You may remember the discussion on storyboards and branch points from Chapter 3; this is where the numbering scheme for your branch points comes 272 Van Eck, TOC Through Chapter 11 in handy, since you can just name each icon for the branch point number you assigned it on your storyboard. Jump to Page Now that you understand three of the basic destinations you can choose from for each navigation icon (Recent, Nearby, Anywhere), it is time to talk about the two types of navigations you can use to go to these destinations. The first, and most commonly used one, is Jump to Page. Jump to Page is a one-way trip; when you use Jump to Page (to go to a Recent, Nearby, or Anywhere destination), Authorware will “Jump” to that page and proceed from that point according to the rules and navigations you have set up on the framework that page is on. In the case of Recent and Anywhere destinations, that framework can be anywhere in the program. In the case of Nearby destinations, you are “jumping” from one page on the framework to another page on the same framework, so the navigation options will obviously be the same. In 99.9% of the cases where you want to use a navigation icon, you want to use a Jump to Page type, regardless of which of the destinations you choose. Call & Return Call & Return is a round-trip journey. When you choose a Call & Return type of navigation, you are setting up two legs of a trip. The first leg acts just like a Jump to Page navigation. Everything you’ve learned about navigation destinations and rules from the section above applies to Call & Return as well. The only difference is that you have the option at any later point in the program to send the learner back (Return) to the place they last jumped from. 273 Van Eck, TOC Through Chapter 11 This can be a little confusing, so let’s break it down in more detail. The Call part of Call & Return is just like the Jump part of Jump to Page, and setting up the navigation is the same in both cases. It’s just that Call & Return (which might better be named Jump & Return) has a second step. That second step is letting the learner Return from where they jumped to so they can pick up where they left off. For example, if I want the learner to be able to go look up the definition of a word that they don’t know while going through my instruction, I could create a page of definitions on a framework and let them jump to that page to look up a word. But once they do that, how do they get back? I only want them to temporarily jump to that definition; once they are done, I want them to be able to pick up where they left off. I can’t use a Jump to Page to get them back because I can’t tell which page they came from, since they could have hit the definitions button from any page on my framework. Call & Return solves this problem. The key to understanding this process lies partly in the rule about navigation icons that says while you can jump (or call) from anywhere in a file, you only jump (or call) to a page on a framework. So in my example above, I can use a Call & Return from my framework with the instruction on it by adding a navigation icon to the interaction icon inside my framework, double-clicking on the navigation icon, selecting Call & Return as the type, selecting Anywhere as the destination, and selecting the framework and page that I want to Jump/Call to. Once I have done this, the learner can hit that button from any page on that framework, and they will be taken immediately to the definitions page on the definitions framework I set up. So far, there is no difference between Jump to Page and Call & Return. But now, once the learner is at that definition page on that other framework, I can let them return exactly to where they were when they hit the button to 274 Van Eck, TOC Through Chapter 11 take them to the definition page. I do this by setting up a “Return” navigation icon inside the framework to which the definition page is attached. To do this, I need only attach a navigation icon to the interaction icon inside my definition framework (the one I have “called” to). While it can be any kind of response (button, hotspot, etc.), I will in this case make it a button labeled “Return” (it could be named done, finished, go back, or anything I want). I then open that navigation icon, select Nearby as my destination type, and choose “Exit Framework/Return.” You may remember from the earlier discussion that this option performs two functions. Under normal circumstances, this option simply causes Authorware to exit the framework and continue down the flowline. If at any point in the program, however, there has been a Call & Return initiated (as is the case with our definition example), this options will not just exit the current framework; it will also Return to the page the learner was on when they initiated the Call & Return. In my example, this means if the learner is on page 12 when they hit the button to read some definitions, hitting the button labeled “Return” that I set up to Exit Framework/Return will cause Authorware to go back to page 12. This would be true for any page they were on. 275 Van Eck, TOC Through Chapter 11 Tip: How to setup a generic framework. While you can certainly work with what you have inside the default framework that Authorware gives you, in my experience I have found that beginning students can become confused by all the elements. For that reason, I usually recommend simplifying the framework by doing the following: 1) Delete the display icon named “Gray Navigation Panel” 2) Select the first 5 navigation icons on the interaction and delete them (choose “Selected Icons” when prompted) 3) Delete the last icon on the interaction 4) This will leave you with a Previous and Next button for your framework. You can add an exit button (Exit Framework), Main Menu button (Jump to Page), or whatever other buttons (or hotspots, or target areas, or whatever you want) to that interaction. You will learn how to customize your buttons to look different (and hopefully better!) than the ones that are provided. Specifying transitions between pages As I mentioned in the beginning of the chapter, one of the most useful features of the framework is its ability to specify a single transition between pages. By applying a transition to pages rather than individual icons, it is no longer necessary to set a transition for your display icons when coming in to a new scene, nor is it necessary to use an erase icon to create a transition when leaving that scene. In a 20 scene program sequence, I would have to apply 20 separate transitions to my display icons, add 20 erase icons, and 276 Van Eck, TOC Through Chapter 11 set 20 transitions for those erase icons; these 60 steps are replaced with one by making these scenes into pages on a framework (using maps for the pages). To apply a transtion to every page on a framework, you simply select the framework icon itself and go to ModifyIconTransition. This brings up a dialog box almost identical to the transition dialog box you get for a display icon. Adding common elements to a framework Although there are a virtually unlimited number of elements you can add to your frameworks, there are two in particular that I find very useful. One is used for lining up elements on my pages and one is for displaying page numbers automatically. In both cases, we use a display icon. Lining up elements on pages Because anything you put inside the top portion of the framework window will appear on every page (and not get covered up by what’s on those pages), you can use a display icon to draw a grid that lays on top of your background image (it needs to come after the background image in your framework to do this). You can draw lines using Authorware’s drawing tools. Since these appear on every page, you’ll be able to use them to position your text boxes, buttons, and other page elements. Once I am done and ready to package my file, I can just delete the display icon that has the grid in it. See figure 32 for an example of this. 277 Van Eck, TOC Through Chapter 11 Figure 32. A grid in the framework will appear on every page and can be used to position elements on screen. Adding automatic page numbers to a framework A well-designed program finds ways to communicate with the learner in continuous, unobtrusive ways. While we are used to creating feedback in response to questions, there is a whole host of other information we can provide to learners that help them to manage their own learning. This feedback can take the form of changing cursors when the mouse is over a hotspot or hypertext, clicking and/or highlighting responses when they have been selected, and providing titles that tell the learner what section and/or objective they are working on. One of the more common elements of this kind of feedback is providing the page number. 278 Van Eck, TOC Through Chapter 11 You have probably seen programs that tell the learner what page number they are on and out of how many pages (e.g., page 20 of 37 pages). Typically, this has been accomplished as one of the last steps in program development since it requires knowing how many pages are in the final program. The programmer then manually types in the page number information on every screen. Frameworks allow you to specify elements to appear on every page of the framework. By embedding variables in display icons, this means you can display information contained in variables to the learner (time in session, number of correct and incorrect responses, etc.). Two variables that have been built into Authorware are specifically related to pages on a framework: CurrentPageNum and PageCount. CurrentPageNum contains a number that reflects the current page number being viewed. PageCount contains a number that reflects the number of pages attached to the current framework. Because these are variables, they change as the pages change. Add a page to a framework and PageCount increases by one; move from page 5 to page 6 on a framework, and CurrentPageNum changes from 5 to 6. The combination of these features allows us to embed page numbers in our programs from the very beginning, without having to know how many pages there will be (although we should have a pretty good idea from our storyboards). To add page numbers to your frameworks, open up (or create) a display icon in the upper portion of the framework window (make sure it comes after anything that might cover it up), select the 279 Van Eck, TOC Through Chapter 11 text tool, and click somewhere on the screen (you can always move it later).7 Paste in the CurrentPageNum and PageCount variables (or type them exactly) so that your text appears like this: Page {CurrentPageNum} of {PageCount} Because CurrentPageNum and PageCount are inside curly brackets, when Authorware displays them it will show the current values (i.e., the current page number and the number of pages on the current framework). Because the words “Page” and “of” are not in curly brackets, they will appear exactly as typed in relation to the two values of our variables. Thus, if the learner is on page 12 of a framework that has 23 pages, they would see the following: Page 12 of 23 The last step to making this work involves setting an option inside the display icon properties dialog box (as usual, accessed through ModifyIconProperties or by right 7 You may remember from the last chapter that we used variables inside a display icon to provide feedback about performance to the learner. This is accomplished by using the WindowVariables dialog, selecting the variable we are interested in, and clicking the Paste button; this creates a copy of the variable name inside the text box we are working on. In order to get the contents of the variable to show up (as opposed to just the name of the variable), we put curly brackets around the variable name (i.e., {variablename}). This tells Authorware to display the value of the variable, in our case, CurrentPageNum and PageCount. 280 Van Eck, TOC Through Chapter 11 clicking on the display icon and selecting properties from the contextual menu), shown in figure 33, below. Figure 33. Display icon properties dialog box. Make sure that you select the “Update Displayed Variables” option is checked, as in Figure 33. Otherwise, Authorware will display the variable correctly the first time but never change (update) it. Power Tip: Customizing the Default Framework. Once you have worked with Authorware long enough, you may decide that most of your frameworks use the same basic interface elements and navigation structures, and you may get tired of having to create them each time. It is possible to change how the default framework looks in Authorware. To create your own, custom default framework, do the following: 1) Open a new Authorware file. 281 Van Eck, TOC Through Chapter 11 2) Drag a framework to the flowline and modify it the way you want all default frameworks to appear (or copy and paste one you have already modified to your liking from another file). 3) Go to FileSave in Model 4) In the dialog box, browse to My ComputerC: (or whatever drive Windows is installed on)ProgramFilesMacromedia Authorware 7 and select the file “Framework.a6d” 5) NOTE: You may want to make a copy of this file prior to doing the next step. That way you can always go back to the original. 6) Replace the file when asked. Now, when you drag a framework onto your flowline, it looks like the one you prefer. If you ever decide you want to go back to the original, throw away the Framework.a6d in the folder and replace it with the backup copy you made in step 5. Importing rtf files As you can see, frameworks greatly simplify the process of creating multiple-scene (page) programs by making it easy to align common interface elements, specify common transitions, and navigate in linear and non-linear fashion. These features alone are reason enough to justify their existence. It turns out that there is one more feature of frameworks that was probably an afterthought in their development but may be the most significant feature of frameworks. 282 Van Eck, TOC Through Chapter 11 One of the most laborious parts of creating interactive instruction with Authorware is the process of actually typing using the text tool inside a display icon. As you have seen, the text tool is quite rudimentary, making it difficult to create much more than block text with standard tabs and indents. The addition of the RTF Object Editor in Authorware 7 increased the complexity and ease of creating new rich text format objects that can have images, sophisticated tabs, formatting, and alignment features, and other welcome additons. Nevertheless, this process only alleviates the problem somewhat, in that these objects are saved as external files and must then be imported. Even if this were not so, the RTF Object Editor is of no help in alleviating a more significant issue; how to incorporate large amounts of existing text into Authorware. This is a common need for those who are creating instructional modules based on existing instructional material (lecture notes, handouts, etc.). Until the advent of Authorware 7, the only way to get this information into Authorware was to open up the existing wordprocessed documents and copy and paste chunks into individual display icons. As you can imagine, this was a tedious process, as each display icon had to be created, opened up, text pasted in, styles applied, and closed. Frameworks make this process automatic and effortless, creating in one step a new display icon for every page of a document placing the text inside that display icon, and moving on until the entire document has been brought in. Further, they allow you to specify where on the screen the text should be brought in, how big the text box should be, and what styles you want assigned to the text you bring in. The following section describes how this process is accomplished. 283 Van Eck, TOC Through Chapter 11 Power Tip: As you will see in chapter 13, you can import rtf files in similar fashion and attach them to sound and movie icons. This is a great way to bring in and synchronize text and media in a slideshow fashion. As with most things in Authorware, there is more than one way to bring in an RTF file. I will show you the one that provides you the most control over how your file is brought in and displayed in Authorware. This means a few extra steps, but in my opinion these steps save you more time in the long run than they take up initially. There are three rules you need to keep in mind when importing an rtf file: 1) Only RTF files can be imported in this fashion (you must do a Save As in your word processor and select Rich Text Format as the type of document). 2) You must use styles in your document and make sure that every piece of text in your document has a style assigned to it.8 You must also make sure that you have not defined your text styles in your Authorware file yet OR that you use different style names in your RTF document than you use in your Authorware file. 3) You must insert a hard page break in every place that you want a new page (display icon) in Authorware to begin. Soft page breaks (the ones that your word processor 8 OK, not really. But if you don’t, you’ll create all kinds of goofy styles in Authorware when you bring it in, and you will NOT be able to modify the text you bring in by using font styles; you’ll have to open up each display and change them individually. Don’t say I didn’t warn you…. 284 Van Eck, TOC Through Chapter 11 inserts automatically when it thinks you’ve typed enough for one page) have no impact on Authorware and will cause the entire document to be brought into one display icon. The first step is to modify the word processed document you want to bring in according to the rules outlined above. Create styles named for the styles you plan to use in Authorware (refer to your style sheet if you have created one. See Chapter 3 for more information on this). I like to create ones called Title, Sub-title, and Body Text. Apply each of those styles to the related portions of your document. Make sure that everything you have typed in the document has a style assigned to it. Next, insert a hard page break every place you want a new page (display icon) to begin. If you have gone through the process outlined in Chapters 2 and 3, you will already know how much text (number of words) fits in the area you have designated for text in your interface. If not, you should go type in as much text as will fit in that area now, making sure to use the style you created for body text. Count the number of words and use that number to determine where to insert page breaks in your document. Finally, save the document as an RTF (Rich Text Format) file. Now return to Authorware and create a framework to which you want to attach pages. Make sure you have set your framework up the way you want it to appear in your program (create the buttons, titles, and background image elements) so that you will know exactly where to place your text. Place one display icon to the right of this framework and run your program. When Authorware stops and opens up the empty display icon (the first page of your framework) use your text tool to click somewhere on 285 Van Eck, TOC Through Chapter 11 the screen and type at least one letter (it doesn’t matter what you type, this is just a place holder). Select the arrow tool and position your text box where it should go on your screen. Use the handles of your text box to stretch it to the width you want your text to be (using your background image as a guide). Then select the text tool again, click inside the box, and delete the character you typed. Without clicking anywhere else, select FileImport, browse to the document you want to bring in, select it, and press the Import button. Authorware will then display the dialog box pictured in Figure 33: Figure 33. Import RTF file dialog box. As you can see, there are two options you can set relating to what to do about hard page breaks and whether the text should be scrolling text or not. The default is the setup you want in most cases, so just click OK. Authorware will then import your file, automatically generating a new display icon for every hard page break it finds. It will use the name of the document or the title of the document (see Power Tip below) as the 286 Van Eck, TOC Through Chapter 11 name for each display icon, appending a “:” and an incremental number (1, 2, 3, 4, etc. for each additional display/page). Finally, the last step is to open up your define styles dialog box (TextDefine Styles). There you will see the styles you created and assigned in your RTF document. These styles can be modified as needed just like any other font style. You may also see several “junk” styles (e.g., Normal, Heading, etc.). These styles are generated from the style template in your RTF file. Since you assigned only the styles you wanted to use, you can select any of these other named styles and delete them. Your text will have been brought in, placed on each display icon in the place and size you specified in your first display icon, and maintained the font styles assigned to it. Power Tip: Naming your pages using the Title feature of Word. A slick way to control the naming of the display icons authroware creates when importing rtf files is to use the Title feature of your word processor. For instance, Microsoft Word allows you to specify a title for your document (this has no bearing on what you type as the title within the document itself). The title of your document will be used to generate the first part of each display/page name. Titling your document for the framework you are bringing it into (e.g., Section 1), allows you to specify what the first part of each display/page is named. If I title my document Section 1, then the second display icon will be named “Section 1:2”, the fifth will be called “Section 1:5,” and so forth. This allows you to name the pages according to your branch points from your storyboards automatically. Note that your first display/page will be Untitled (since you generated it), and you will need to name it, but the numbering scheme will still be correct. 287 Van Eck, TOC Through Chapter 11 Tip: Bringing in content this way is also a good way to divide up work up in team environment. Instructional Designers who don’t know Authorware can nevertheless create the text content for the screens. The Authorware developers can then import that text and have their content already created, saving time and money. Doing so requires that the Authorware developers specify how many lines and characters per page, and what styles to use in the document, but this is easily accomplished. Case Study: Building a Glossary A common use for frameworks is to create a glossary of words that the learner can look up as needed while they go through the instruction. Creating a glossary requires using the Call & Return function, which is typically the most difficult aspect of frameworks to master. For that reason, this case study will focus on building a glossary. Doing so has the added bonus of teaching you a new thing about font styles that has not yet been addressed: the ability to make text styles that are interactive. In this case, the interactivity will navigate to our glossary, so that the learner can click on a word, be taken to its definition, and then return to the place they left off. Call & Returns are just like Jump to Page navigations, except that they allow the learner to Return to the place they left off. Earlier in the chapter, we used navigation icons as responses (buttons) in a framework to allow the learner to Jump or Call to another page on a framework. This time, instead of using a response, we will create a hot text style that we can apply to words that will make those words function like hyperlinks in a Web 288 Van Eck, TOC Through Chapter 11 page. Even though this differs from our earlier example, all the rules and procedures for specifiying a Call & Return remain identical. To build our glossary, we’ll start by defining a new font style called Hot Text. We’ll specify all the characteristics of this style just as we would any other style. In this case, we’ll make it Times New Roman, 12 point, and Blue for the color. Before we close the dialog box, however, we’ll need to modify the column to the right labeled Interactivity (See figure 34). Figure 34. Font styles dialog box. Note that by default, Interactivity is set to “None.” In this case, we want our text style to be able to link to another place in the file (our glossary), so we set the interactivity to Single Click. Now that we have told it how we want the learner to be able to activate our text (by clicking once), we need to tell it what to do when clicked. Checking the 289 Van Eck, TOC Through Chapter 11 “Navigate” box will tell Authorware that clicking on the text should cause the text to navigate to some page on a framework. Note that we can also tell it to change the cursor when over a word with this style applied to it by checking the Cursor box and specifying the type of cursor to use (we’ll use the hand in this case). Once done with these settings, we hit Modify to apply the changes and close the dialog box. Now we’ll create our instructional framework. For the purposes of this exercise, name it anything you like and attach two display icons to it as pages. Inside each one, type a sentence with a noun or verb in it that you intend to create a definition for in the glossary. Use two words that start with a different letter so that you can make two different pages in the glossary. Next we’ll go create our glossary framework. This will be a framework at the end of our file. Inside this framework, we’ll put a display icon. Inside that display icon, we’ll create a large yellow box that covers nearly the entire screen. This will form the background for our definitions for each word.9 We do this because we want our definitions to “cover up” the screen the learner just came from (otherwise, our text would just show up superimposed over the page they came from, since a Call & Return does NOT erase what is on the screen). 9 Remember that when we jump (or call) to a page on a framework, Authorware first routes the learner through the framework and then to the page, so anything we want to show up on each of our pages (such as a background image) can be placed inside the framework. 290 Van Eck, TOC Through Chapter 11 On our interaction icon inside the framework, we want a navigation icon attached as a button response. We’ll label the button “Done,” and set the navigation to be an Exit Framework/Return (see the earlier section on Call & Return if you don’t remember how to do this). When you are finished, the inside of your framework should look like this: Now attach two display icons to your glossary framework. Inside each one, type the definition of one of the nouns or verbs that you created in the pages on your instructional framework. Make sure to put only one definition on each page. Name these icons for the word that they define. When you are done, your framework should look something like this: 291 Van Eck, TOC Through Chapter 11 In my example, I have two pages in the instructional framework, each of which contain a word I want to define in my glossary. I will apply my hot text style to those words in those display icons. As soon as I do that, I am presented with the following dialog box: Notice that it is identical to the dialog box for all navigation icons. This is because navigation in a font style IS a kind of navigation icon, even though you don’t actually see the navigation icon itself (it is the word instead). Because I want to temporarily go to the glossary and then return, I want to use a Call & Return type of navigation. And because I am going to a specific page on another framework, I select “Glossary” from the framework menu, and then select the icon name “Apple” since I want this word apple to jump to the glossary page with the definition of apple on it. I repeat this process with the word Bumblebee on my second page, this time pointing to the page with the defintion of bumblebee on it. Be careful to specify that these are Call & Returns, or your glossary will not work. 292 Van Eck, TOC Through Chapter 11 Now run your program to test it out. Note that the yellow box covers up the previous screen so that you can see the definition. Click the button named “Done” to return to the page of instruction. Move on to page two and test the second word. You may have noticed that the buttons from your instructional framework continue to show up when in the glossary, which can cause navigation problems for the learner. In Chapter 11, you’ll learn how to use variables to turn buttons on and off. For now, you can get around this issue by setting the layers of all the icons in your glossary to be “higher” than those on your instructional framework. This is accomplished by doing the following: Right click on the display icon and interaction icon inside your framework and select properties. Type the number 100 in the box labeled Layer (you will need to select the Display tab in the interaction properties dialog box to find the Layer box). This will force Authorware to put this items at a higher layer than anything else in the file. Repeat this process for each of the display icons on your Glossary framework (the ones with the definitions in them). Now run the piece again. Since all your icons are at a higher layer than the buttons on the instructional framework, your yellow box and definitions “cover up” those buttons. Take a look at the Glossary example for Chapter 7 on the web site to see how I built mine. You can also download the Glossary model for later use in your own files. Making the Connection Presenting Information 293 Van Eck, TOC Through Chapter 11 Because of the way frameworks are designed, they lend themselves well to developing linear tutorials. While tutorials can be effective, it is important to remember that frameworks can also be used to create open-ended learning environments such as simulations, games, and thus are as appropriate to non-linear, constructivist approaches to learning. The key to accomplishing this lies in navigation icons, which as you recall can jump from anywhere to anywhere else as long as the destination is on a framework page. The earlier example about a glossary is a simple example of this priniciple; every time the learner accesses our glossary, (a navigation element under learner control), they are moving through our program in a non-linear process. Since we don’t know which words they may want to have defined, we allow them to choose where and when they get access to the definitions. In a similar fashion, we can allow the learner to control how and when they view the different elements of our program. In mathematics game I mentioned earlier, the learner was able to move around a room in a house, measuring walls, doors, and windows at their own pace and in their own sequence. This was accomplished by creating a page on a framework for every wall in the room. Hotspots were added on each “wall” that were attached to navigation icons pointing to other pages on the same framework. Clicking on a hotspot on the left side of the wall caused the program to navigate to the wall in the room that was to the left. Likewise, learners had access to a reference book and a workbook, each of which were on their own frameworks; clicking on the icons for the reference book and workbook from anywhere caused the program to navigate to the relevant framework. From the learner’s perspective, the program is one big environment in which they can navigate at will, yet the entire program was created using frameworks. 294 Van Eck, TOC Through Chapter 11 Guidance Frameworks provide some unique opportunities for learner guidance. In addition to the guidance you provide using interactions on each page of your framework, you can provide metacognitive guidance throughout your instruction as well. Frameworks allow you to place elements inside them that will then be “revisited” every time the learner moves from one page to another, you can use variables and conditional responses (covered in later chapters) to create advisement. Advisement generally refers to one of three things (e.g., Gray, 1988; Johansen & Tennyson, 1983; Tennyson, 1980a, 1980b; Tennyson & Buttrey, 1980): 1) advisement about an optimal path or sequence through the instruction 2) feedback advice about performance and suggestions for number of examples or practice items to attempt 3) advice about whether to seek additional instruction In the first case, we can structure our program using frameworks to reflect the optimal path through the instruction in a linear fashion, but allow the learner to deviate from that path. We might then tell them that it is suggested that they following the linear sequence (which should be presented to them in the beginning and accessible throughout the program). In the second case, we can track their success with practice items overall and provide feedback about how many examples or practice items they should do based on that performance. In the third case, we can present them with the option for participating in more instruction in the areas they are weak on (based on performance during practice 295 Van Eck, TOC Through Chapter 11 or assessment) and allow them to determine whether to view that instruction. This preserves the goal of learner autonomy, which some feel is an important goal for all learning (Tennyson, 1981). Presenting the learner with advice about what to do but allowing them to decide is called learner control with advisement. We can also use conditional responses and variables to automatically provide more instruction, examples, and practice items based on the learner’s performance to that point. This is referred to as adaptive control. Adaptive control is generally hard to program into CBI/CBT, but frameworks make it relatively easy to implement. Adaptive control, because it allows for individualized instruction, has been shown to be among the most effective types of CBI/CBT (Johansen & Tennyson, 1983; Tennyson, 1980a; 1980b). Assessment It is a good idea to put your assessment on its own framework so that you can allow the learner to jump to the quiz (by using a button or hotspot or pulldown response connected to a navigation icon on each instruction framework) whenever they want. Otherwise, you force the learner to complete long sections of instruction that they may feel they are already competent in. While you could also put your assessment on the same framework as your instruction, it makes it harder to keep track of your program. Your assessment may also require different interface elements and multiple pages, which is easier to handle when it is on its own framework. Summary While it is possible to create sophisticated interactive instruction without using frameworks, they are tremendous labor-saving devices, and in some cases allow you to 296 Van Eck, TOC Through Chapter 11 do more than would otherwise be feasible. Frameworks allow you to organize your instruction, provide common elements on each page and maintain consistency, create navigation options quickly and easily, specify transitions between pages, import rtf files and automatically create new display icons for each page, and build sophisticated navigations called Call and Return that allow the learner to return to the last place they were in the instruction. Frameworks look like one icon, but are really made up of several icons. In this respect, they are like maps. Opening up a framework icon reveals an interaction icon with some default response items attached to it and a display icon preceding it. Everything that appears inside a framework will appear on every page attached to that framework in the exact same spot as they appear inside the framework. This includes any icon you add to the inside as well as the interaction and responses that you build there. Some examples of common elements might be the title of that section, the current page number (through the use of a variable), and navigation buttons. Pages are added by dragging icons to the right of a framework. Although you can create a page by dragging one of several icons, it is most common and useful to use map icons, which can then contain one or one-thousand icons inside them, including interactions. It is helpful to think of each “page” as a “scene.” Frameworks accomplish their magic through the use of navigation icons. Navigation icons allow you to navigate from one page to the next, whether those pages are right next to each other, separated by 30 other pages, or on completely different frameworks. 297 Van Eck, TOC Through Chapter 11 Navigations can be one way (jump to) or round trip (call and return). The only rule is that they can only go TO a page that is on a framework. Exercises 1) If you wanted to make your program exit a framework automatically when the learner hit the last page, but didn’t want to put an Exit Framework navigation icon inside your framework (e.g., you don’t want it on every page of the framework) how could you do it? 2) Import a document you have created elsewhere in a word processor (any document will do) into a framework. Have Authorware create a new display icon for every paragraph in the document (hint: there is a missing step here!). 3) Take the program you have created to this point and use a framework to deliver the instruction and practice assessment portions. a) The introduction should be on the flowline and not part of the framework. Your performance data (number correct, etc.) should be on a separate framework that comes after the instruction framework. b) Use a forward and back button to navigate between pages. c) Include an exit button that takes the learner to the performance data page using a call and return structure. Present the data and ask them if they are sure they want to quit. If they answer yes (button, hotspot, or your choice), quit the program. If they answer no, take them back to the exact place they were in the instruction. 298 Van Eck, TOC Through Chapter 11 d) Use “Vertical Blind” for the transition between each page e) Have the title of your instruction appear in the upper left corner of the screen at all times, and make sure it does not move when navigating from screen to screen. 299 Van Eck, TOC Through Chapter 11 References Gray, D. M. (1988). The use and effect on performance of learner control and advisement in a computer-based educational statistics lesson (Doctoral dissertation, University of Illinois at Urbana-Champaign, 1988). Dissertation Abstracts International, 49(06), 1434A. Johansen, K. J., & Tennyson, R. D. (1983). Effect of adaptive advisement on perception in learner-controlled, computer-based instruction using a rule-learning task. Educational Communications and Technology Journal, 31(4), 226-236. Tennyson, R .D. (1980a, April). Advisement and management strategies as design variables in computer-assisted instruction. A paper presented at the annual meeting of the American Educational Research Association, Boston, MA. Tennyson, R.D. (1980b). Instructional control strategies and content structure as design variables in concept acquisition using computer-based instruction. Journal of Educational Psychology, 72(4), 525-532. Tennyson, R. D. (1981). Use of adaptive information for advisement in learning concepts and rules using computer-assisted instruction. American Educational Research Journal, 18(4), 425-438. Tennyson, R. D. (1984). Artificial intelligence methods in computer-based instructional design: The Minnesota Adaptive Instructional System. Journal of Instructional Development, 7(3), 17-22. Tennyson, R. D., & Buttrey, T. (1980). Advisement and management strategies as design variables in computer-assisted instruction. Educational Communications and Technology, 28, 169-176. 300 Van Eck, TOC Through Chapter 11 Chapter 8: Publishing Your Program Overview Now that you know how to create basic interactive instruction using Authorware, you need to know how to distribute it to your learners. Obviously, you can’t count on then owning Authorware, nor can you expect them to purchase it; even in volume the cost would be prohibitive for an organization of any size. To solve this problem (and to prevent you having to give away your code and risk learners inadvertently messing it up when running), Authorware allows you to create what is called an executable, which means that you can turn your program into a file or files that run by themselves, without requiring a copy of Authorware to be installed. This executable can be played from a CD, LAN, or local hard drive. Further, you can even create a version that will play back over the web, provided the learner has the correct plugin installed in their web browser. In the orginal plan for this book, before Authorware 7 was released, this topic would have required a minimum of two full chapters. Those of you just learning Authorware now will never know how easy you have it, although if you ask any of us who worked with Authorware 5 we’ll be happy to regale with horror stories (when I was your age, we didn’t HAVE “one-button publishing”). The price of upgrading to Authorware 7 is completely justified (and then some) by OneButton Publishing. Those of you who have worked with Flash 4 or 5 will recognize this feature. It is now possible to simultaneously publish your file for playback on CD, LAN, 301 Van Eck, TOC Through Chapter 11 or the Web; Authorware will ensure that all the files you need are present, generate an html page, and upload all needed files to the place you specify. Prior to version 6, all Authorware would do for you is package your file; you had to create an html page, figure out which of the hundreds of xtras, UCDs and DLLs, and media files were required, upload them all and pray that it worked (which it NEVER did the first, second, or twelfth time). This chapter will walk you through the basics of preparing your piece for distribution via CD, LAN, or Web. Unlike other topics in this book, it will be dealt with completely in one chapter. However, in recognition of the fact that in many cases you do not need to set (or understand) any advanced features, I will present it in two ways. In each section, I will provide you with “The Easy Way,” which will be a list of steps and/options to set that will result in a program that runs in almost any situation. If you choose to follow only those steps, your program will almost certainly work wherever you use it. This will be followed by a more in-depth discussion of the features and options that you can set in that part of the publishing process. You should read this section to make sure that there is nothing in there you need for your setup. In most cases, this additional information represents ways to optimize and streamline your file for unique situations, but there may be features that will be important to your publishing scenario. Objectives At the end of this chapter, you will be able to: • Prepare your program for distribution via CD, LAN, Hard Drive, and Web 302 Van Eck, TOC Through Chapter 11 • Adjust settings to optimize your program for playback under different conditions • Publish your file to the Web via the Remote feature • Test your program Save & Compact Contrary to expectation, the most important step in preparing your piece for distribution has nothing to do with publishing it. Because of the complexity of Authorware, its legacy of development through 6 versions over 10+ years, and/or inefficient program code, Authorware has a bug in it that only creeps in over time as you develop and work with a program. It turns out that every time you make changes to your program (e.g., add or delete an icon or icons, move pieces to and from a library, copy and past icons) Authorware actually fails to do a perfect job of keeping track of these changes. Remember that although you are creating a program using icons and a flowline, Authorware itself uses programming code to accomplish what you are telling it to do. So every step you make is translated by Authorware into programming code. When you delete an icon, you are telling Authorware to remove the code associated with that icon, which it pretty much does. But this process leaves traces in the code, and over time, these traces build up. In their most benign instances, this results in a program that takes up more space than is actually required. As a purely hypothetical example, if I build a program that is ultimately comprised of 1000 icons, but in the course of building that program I used 2000 icons (because of mistakes, dead ends, and other modifications), my file might take up 4 megabytes of disk space. If I were to then recreate that program icon by icon, using only the icons needed (i.e., without making any false steps or deletions), 303 Van Eck, TOC Through Chapter 11 the same exact file might be 2 megabytes in size. Given hard disk sizes today, this is not the end of the world, but it illustrates how much “dead code” accumulates in a file while you are working on it. More significantly, this dead code can cause errors in your program; the longer you work with a file, the more likely you are to run into these bugs, and the more likely they are to be permanent and unrecoverable. Obviously, this is a problem you want to avoid rather than attempt to solve after the fact. Authorware has had a feature called Save & Compact built into it since at least version 4. This feature forces Authorware to take a look at what you have in your file and compare it rigorously to the code it is using to represent your file; any discrepancies it finds in its code will be removed so that your file and its code match as closely as possible. You access this feature by selecting FileSave & Compact. You should do this regularly and frequently (at the end of every authoring session or every 2 hours, whichever comes first). Save & Compact looks and behaves the same as the Save dialog box with one significant difference; you must rename your file when using Save & Compact. I suggest that you incorporate this feature into your regular authoring process; develop a naming scheme so that you have different versions of your file that you can go back to should you discover a problem with your file. I use the letters of the alphabet for my scheme, appending and incrementing a letter to the end of my file (e.g., MyFirstAuthorware-a). When I hit “z,” I go back through the alphabet as many times as needed (-aa, -aaa). I normally make it partway through the third alphabet cycle for a significant program (one hour of instruction or so). I also store all of the old versions in a sub-folder called Old Versions so that my directory does not get too cluttered. 304 Van Eck, TOC Through Chapter 11 Publishing This section will walk you through the most common settings, emphasizing only the minimum steps needed to accomplish most publishing. The publishing process begins by creating your publishing settings (FilePublishPublish Settings). Figure 35 presents the publish settings dialog box. Notice that there are five tabs at the bottom of this window. We will examine them in turn, describing the basic functions each one. Figure 35. Publish settings dialog box: Formats tab. Formats The Easy Way. Check the format you want (CD/LAN/HDD or Web) and then make sure every box and option is checked for that format. 305 Van Eck, TOC Through Chapter 11 This is where you tell Authorware what kind of program you want to make. There are two main formats: Executable and Web. It is possible to publish for both versions simultaneously; Authorware will specify a different path and create a different file for each format. The top box (CD, LAN, and Local HDD) represent executables, which means the program is designed to run as a stand alone program. The bottom portion is for publishing files you intend to play back over the Web. In both cases you indicate what you want by checking the box next to the format and options you want. The window at the top represent the current file you want to apply these settings to (you can load a different file to publish by using the “…” button to browse to another file). The Package As check box serves to tell Authorware that you want an executable version of the program; the window to right of that checkbox tells Authorware the destination and name of the file to create. You can use the “…” button to browse to a different destination (folder) or you can edit the path name and file name to change the destination and name of the file (don’t change the “.exe” or your program won’t run!). You can change the path and file name of your web version and its accompanying web page in a similar fashion. Until you have packaged a few programs, I recommend taking the default locations. Checking “With Runtime….” causes Authorware to make one file that runs by itself. If this box is NOT checked, you will need to distribute the runtime engine (C:\Program Files\Macromedia\Authorware 7\runA6w32.exe) with your piece as a separate file. The only reason to do this is if you have multiple programs you are distributing and want to save the space by only including one copy of the engine (if you checked the box, each file would have a copy of the engine embedded in it). The size is negligible (1.5MB) in my 306 Van Eck, TOC Through Chapter 11 opinion, and the risk of the learner inadvertently separating your program from the location of the engine is not worth it. The checkbox for Copy Supporting Files (in both portions of the Formats Tab window) tells Authorware to include a copy of all of the files you need to run the program (why you wouldn’t want that is not clear to me…). Note that you can choose to have Authorware package your file for the web player but NOT generate a web page. This option is for those who wish to generate their own web page instead. Web Player Tab The Easy Way. Check all four boxes on this tab. You have 4 options to choose from in this dialog box. 307 Van Eck, TOC Through Chapter 11 Figure 36. Publish settings dialog box: Package tab. “Package All Libraries” Internally tells Authorware to take any libraries you have and embed them in your file (so that you only have one file). If you don’t check this, Authorware will create a separate file for your program and for each library. “Package All External Media Internally” tells Authorware to embed any external media inside your program. If you do not check this, any external media will be copied to the same directory as your program (where it can potentially be deleted, moved, renamed, etc.). While selecting this option is the most conservative method (least likely to result in error), there are two things to consider. The first is that in some cases, you want to keep your media external so that you can replace it at any time (e.g., if a sound file changes, you can just send replace the sound file in the directory where the program lives, and you are done). The other thing to remember is that most movies (avi, quicktime, mpeg, etc.) cannot be embedded in a file and must remain outside the file. Only movies made with programs like Flash and Director can be embedded internally. “Referenced Icons Only” is only active if you are using a library AND there are icons in that library that are not used in the current file (as is the case when using a standard media library for multiple projects). Choosing this option will tell Authorware to only embed/package icons that are currently used in the file you are publishing. This saves space, but does little else. “Resolve Broken Links at Runtime” tells Authorware to let the learner locate files when the program encounters a broken link (from external media or missing libraries). If you don’t select this option and the program encounters a broken link when running, the 308 Van Eck, TOC Through Chapter 11 program will present an error message and usually keep running (depending on the navigation you built into your program—if you require the learner to interact with the missing link, it may prevent the program from continuing). In my opinion, this option is of little use, as you cannot count on most learners to know what file to locate, where it is located, or how to find it. In fact, it is more likely that they will create a bigger problem than that they will solve it correctly, so I would rather present an error and have it move on. Of course, if you take The Easy Way as I suggest throughout, you are not likely to have any broken links anyway, which is a better solution. For Web Player Tab The Easy Way: Take the defaults on this tab (56kbps, Show Security Dialog). The Web Player tab is only visible if you have chosen to publish for the Web. In order to understand the options in this and the next publishing tab, you need to know how Authorware works over the Web. Because any program is likely to be several megabytes in size, not including any external media like videos, it quickly becomes impractical to download even small programs to the learner’s local hard drive and then run them from there. Even if that were practical, however, there would still be the issue of getting learning and performance information (time spent, number correct, etc.) from the learners local computer back to the web server where it can be tracked and stored. To solve this problem, Authorware takes your file and chops it up into lots of little pieces. The size and number of these pieces depends on the size of your piece and the bandwidth you expect your learner to have (larger pieces require larger bandwidth but make the 309 Van Eck, TOC Through Chapter 11 piece more responsive). Authorware calls these pieces “segments.” It turns out that this is not enough, however, because most pieces will not run in an entirely linear fashion from start to finish—the path the learner takes through the instruction may vary with performance and learner control. Authorware needs some way to handle this nonlinear process. It accomplishes this by creating a file that tells it which pieces are needed to run different sections of your program; when those sections are called for, it consults this file to see which segments are needed and downloads them. Authorware refers to this file as a “Map.” Figure 37. Publish settings dialog box: Web Player tab. 310 Van Eck, TOC Through Chapter 11 The top of the For Web Player tab is reserved for options for your Map file and segments, while the bottom is for using Authorware Advanced Streamer. Advanced Streamer allows you to reduce the wait time your learner has when viewing your piece over the web. It accomplishes this by using past learner experiences with the piece to predict what pieces of the file to download in the background (i.e., before the learner needs them). Advanced Streamer will be covered in Chapter 15. The first box you can modify is the Segment Prefix Name. This four letter prefix will precede the names of every one of the segments in your file. The balance of each segment name will reflect a sequential numbering scheme from 0000 to 9999. This can help you identify the program that these segments belong to, and theoretically allow you to store multiple programs at the same directory level in your server (since each has its own prefix, they will be lined up in your folder when you view the contents). The second box allows you to specify the segment size you want to use based on the bandwidth you expect your learners to have. The smaller the bandwidth, the more pieces there will be. There is not as much of a tradeoff as you might expect however, and your piece will run pretty well at any of the sizes you choose. The only caveat to this is if you have external files like audio and video. If you package your file with external media (and you often have not choice as with video), these files will stay the same size and will NOT be broken up into segments. This means that when your learner selects a part of the program that requires these external media, the learner must wait until the file has been downloaded to their hard drive before anything happens. In these cases, you should be delivering via a larger bandwidth so that the lag time is less. If you can’t, then you should not include large media files. 311 Van Eck, TOC Through Chapter 11 Web Page Tab The Easy Way: Type your page title in the page title box; Select “Detect Web Player” from the HTML Template box; click both “Match Piece” buttons; Select “OnTopMinimize” from the Window Style menu. The Web Page tab only appears if you have selected “Web Page” on the Formats tab earlier. If you are publishing to the Web, you need an HTML page because Authorware will not run unless it is embedded in a web page using the EMBED command. Embedding your program in an HTML page also allows you to make a link to the program by using the url for the web page in which your program is embedded. There are several options on this page that control how your piece looks when it plays back. 312 Van Eck, TOC Through Chapter 11 Figure 38. Publish settings dialog box: Web Page tab. Authorware provide a generic web page template for you (See HTML Template) called Default. You can choose other templates from the drop-down menu. The Data Tracking web page template is used for interacting with Learning Management Systems (LMSs). LMSs are front end systems used in corporations to manage and track institution-wide training programs. Authorware can communicate with these systems using AICC CMI protocols, which will be discussed in Chapter 16. For now, just remember that IF you use CMI you will need to use the Data Tracking template. The Detect Web Player template is an HTML page that embeds your piece in a web page along with some java script that determines if the learner has the Authorware Web Player installed in their current browser. If they do not, the script automatically provides the option to the learner to download and install the player. If they refuse to do this, a message pops up saying they don’t have the player installed. You also have the option of using a template for IE or Netscape only if you are developing specifically for one browser or the other. All of these templates are located in the Authorware 7 folder and can be opened and modified as needed. The page title is where you type the title you want your HTML page to report as its title. A full discussion of HTML commands and syntax is beyond the scope of this text, but it is important to know that the page title is NOT the actual title that will appear on screen, nor is it the actual name of the file. The bottom half of the window is titled the Playback section. The settings in this area allow you to control the basic look and feel of your web page. You can set the width and 313 Van Eck, TOC Through Chapter 11 height (in pixels) for playback and you can set the background color of the web page. In most cases you want the size to match the size you developed for. If you want to be sure, you can click the Match Piece button and it will set these values to match what you set in the File Properties of your program. The background color refers to the color of the page, which is white by default. The color you choose depends in part on what you choose from the Window Style drop down menu, but it is usually safe to match it to the piece. The Web Player menu allows you to choose from a small, medium, or large version of the Web Player. I usually specify the Full Player, but if your learner has bandwidth issues you may elect to use the Compact or Complete versions. The Palette you choose impacts whether color accuracy preference should be given to the Browser (background) or your program (foreground). If you take the default (background), the colors in your program may be slightly off. If you choose foreground, the browser and interface buttons may change color, which can be disconcerting. Usually, however, you want your program to look the way you designed it, so I recommend choosing foreground. You can solve this problem entirely based on what you select from the last option, Window Style. Window Style refers to how you program runs in relation to the browser window. If you choose inPlace (the default), it will run within the browser window, meaning that the learner will be able to see the browser window (buttons, address, text, etc.) around your piece. If your piece is set to the same or larger size that the current browser is set to, your piece will be only partially visible, requiring the learner to scroll back and forth/up and down to view your screen. This option is appropriate when you are embedding a small 314 Van Eck, TOC Through Chapter 11 piece inside some web-based instruction (e.g., to illustrate a concept in a web-based course). In that case, you might develop and package the piece for 320 x 240 so it can be fully displayed inside another web page (i.e., the part of your web-course where it belongs). If you choose OnTop, your piece will be displayed in its own window on top of the current browser window. If that browser window is larger than your piece, the learner will still be able to see it in the background; if it is smaller, it will be obscured by your piece. If you choose OnTopMinimize, your piece will not only be displayed on top of the current browser, but that browser window will be minimized so that it cannot be seen or interacted with while your piece is running. In cases where the screen resolution is set to the same resolution as your piece, your piece will take over the entire screen. This can be useful in that it minimizes the likelihood that the learner will accidentally click on their desktop or some other element than your piece. The last thing of note for now on this tab is the button to the right labeled “Remote.” This button lets you publish your web version directly to the server where you intend to deliver it from. This is accomplished through a protocol called File Transfer Protocol, or FTP (just at web pages are delivered through Hypertext Transfer Protocol, or http). It is possible to ignore this feature and publish your files to your local desktop, but you must then use an FTP client like Fetch to upload your files to the server later. If you always publish to the same server (or almost always), it is worth learning how to use the Remote feature. To do this, you need to enter data about your server in the Remote dialog box (see figure 39). Every server is different, and explaining the details of server nomenclature and FTP configuration is beyond the scope of this book. However, by 315 Van Eck, TOC Through Chapter 11 purchasing this book you have automatically been given limited access to our test server. You will be able to load your final program (the one you are building as part of the exercises) on our server to test it out. Go to the website now and view the section on uploading your program. In it you will find a completed version of what the Remote section or FTP dialog box should look like for uploading to our server. Files Tab The Easy Way: Select any file with a broken (red) link and click the Delete File(s) button. Click the Publish button to publish your piece. Look in the folder called Published Files located in the same place as the program you are publishing. The files tab presents a list of all the files that Authorware believes are needed to make your program run correctly on the learner’s computer. You may have noticed when you opened the Publish Settings dialog box that Authorware began scanning the flowline for files. During this time, it looks at all the things you have created in your program and determines what files will be needed to implement those things. To understand this process, you need to know something about Xtras, UCDs, and dlls. The good news is, you don’t really have to understand this process if you don’t want to; just let Authorware do it’s magic! 316 Van Eck, TOC Through Chapter 11 Figure 39. Publish settings dialog box: Files tab. It turns out that Authorware is not a completely self-contained program. While it is able to accomplish the vast majority of what it does on its own, there are several facets and processes for which it relies on small, external pieces of code. The majority of these are called Xtras, but there are other types as well. Together, there are approximately 120-150 separate files, each of which provides some kind of functionality (e.g., the ability to play different sound and video file types, display different graphics types, etc.). If you were to publish your program without any one of the necessary files, your program would not work correctly. It used to be that you had to guess about which ones you needed, copy them over into the folder with your program, and test it out. In most cases, we gave up and just copied everything over (which added about 15MB to the size of every file we published). Now Authorware scans your file every time you go to publish it (if you have 317 Van Eck, TOC Through Chapter 11 made changes since the last time) and copies only the files that are needed. These files appear in the list on the Files tab. By default, the files you need will be checked. You can uncheck any that you want, but your program will not work if you do so. The only exception to this rule is that in some cases, Authorware becomes confused about one or two files. Usually, this shows up as a red broken link ( ) as opposed to an blue unbroken link ( ). In these cases, you must select that file and hit the Delete File(s) button, or it can cause errors. In rarer cases, Authorware may not find a file that you do actually need for your piece (this has only happened once to me), in which case you may need to manually add the file by clicking the Add File(s) button and locating the file yourself. You can determine which file is missing by running the packaged piece and writing down the name of the file or xtra that is causing the error. Ninety-nine point nine percent of the time, however, you will never need to do anything with this tab beyond looking for any broken links. You now need only hit the Publish button and let Authorware do the rest. Making the Connection There is not much about the publishing process that lends itself to a discussion of learning principles. By the time you are ready to publish, you have already made your instructional design and strategy decisions. Assuming you have chosen your media and instructional strategies according to your objectives, learner characteristics, and the nature of the content, it is still possible to deliver your product via Web or CD-ROM. 318 Van Eck, TOC Through Chapter 11 However, it is important to remember that your decision to publish for the web or CDROM is not simply a matter of preference. Each medium has its own strengths and weaknesses, and careful consideration of these factors and your learners is required. Although chapter 2 treats these issues in more detail, it is worth reiterating some of the highlights here. What are you delivering? While you can deliver video, audio, animation, and interactive instruction via Web or CD-ROM, each has its own strengths and weaknesses. Video must be streamed if delivered via the Web. Streamed video begins to play back as soon as enough of it has downloaded to ensure that it will play continuously while the rest of the video is downloaded in the background and played as needed. Non-streamed video means that the user must wait until the entire video has been downloaded before it will play. Given that you cannot count on more than 100k per second even in high-bandwidth environments and that even a short, small video is likely to be several megabytes, this can mean waits of several minutes. If you have a lot of video and/or cannot count on good bandwidth, CD-ROM may be a better choice, since the video can be played immediately when called for. If you stream your video, the video must be prepared correctly (as streaming video) and should be delivered from a streaming server. This means extra development time and careful attention to the resources your client can support (bandwidth and server technology). Additionally, your client may not be able to devote the space you need to store large amounts of video. Given that CDs routinely hold 700MB or more of 319 Van Eck, TOC Through Chapter 11 information, it may be more practical to deliver the video via CD than Web. It is important to note that you need not choose one or the other delivery method exclusively; It is possible to deliver your piece by Web and distribute your media files (those that are external, that is) via CD-ROM. Where & when will the learning take place? Where and when your instruction is intended to be used can help determine which medium to use. In the corporate world, it is not uncommon for employees to have access to high-speed, high-bandwidth computers at their desks, making web delivery feasible if the training is to take place during working hours. The same MAY be true for CD-ROM delivery, although you might be surprised at how many employers will not equip the employee computers with CD drives and sound cards, fearing that employees will install software or, (gasp) play music during working hours. If the learning is to take place outside working hours, you should consider the likelihood of high-speed Internet access in the home. While DSL and cable modems are becoming more common, they are by no means ubiquitous yet, making CD-ROM a better choice in some cases. The same considerations hold true for learning in school environments. K-12 institutions are more likely to have CD-ROM access than high-speed Internet access, while colleges and universities may be counted on to have both. If, however, the students will be learning off campus, CD-ROM may be more common than high-bandwidth. And finally, you should also consider the importance of access to your product. If you expect learners to have easy access to your product in multiple places (e.g., from several places within 320 Van Eck, TOC Through Chapter 11 the work environment), Web delivery may be best, since it is accessible on any computer connected to the Internet or Intranet. How stable is the content? In chapter 2, I suggested that CBI/CBT is only appropriate for content that is stable (i.e., not likely to change much over time). In some cases, however, the instructional content may be stable but the media you use may need to change. In some cases, you may want to update video examples or illustrations to keep them looking contemporary or to reflect new situations and scenarios. Making such changes in Web-delivered instruction is a simple matter of replacing the videos on your server, one time; everyone then has access to the new content. Delivery via CD-ROM in this case would mean burning a new copy for every learner, shipping them out to all the learners, and making sure that the old copies are gathered or destroyed. The latter is one of the major drawbacks of CD-ROM based training. Summary Publishing your piece is a matter of making a series of decisions via the publishing settings (FilePublishPublish Settings). These decisions involve making selections in up to five areas, each represented by its own tab: Formats, Package, For Web Player, Web Page, and Files. Under Formats, you select whether to publish to run from a hard drive, a CD-ROM, or the Web. If you select Web, you will have access to the tabs labeled For Web Player and Web Page. 321 Van Eck, TOC Through Chapter 11 On the Package tab, you make decisions about your media and libraries. on the For Web Player tab, you make decisions primarily about the bandwidth of your target platform. On the Web Page tab, you make decisions about what kind of web page to create to embed your program in (e.g., one that downloads the web player automatically), how your piece should play in relation to the browser and screen (e.g., the colors it uses, whether it is in a browser window or on top of the browser), and the screen resolution of your piece. The last tab, Files, shows you what files Authorware thinks are necessary to your piece. You can add or delete files here manually as well. While ultimately you will need to understand all of the different options within the publishing settings, it is possible to publish your piece in a few simple steps (see “The Easy Way,” below). Each method of delivery has its own strengths and weaknesses, and the appropriate method depends largely on your audience, the stability of the content, and where and when the instruction will be used. The Easy Way For CD-ROM/Hard Drive Formats • Check CD/LAN/HDD • Make sure every box and option in this area is checked. Package • Check all four boxes on this tab. Files • Select any file with a broken (red) link and click the Delete File(s) button 322 Van Eck, TOC Through Chapter 11 • Click the Publish button. Look in the folder called Published Files located in the same place as the program you are publishing. For Web Formats • Check “For Web Player” & “Web Page” • Make sure every box and option in this area is checked. Package • Check all four boxes on this tab. For Web Player • Take the defaults on this tab (56kbps, Show Security Dialog). Web Page • Type your page title in the page title box • Select “Detect Web Player” from the HTML Template box • Click both “Match Piece” buttons • Select “OnTopMinimize” from the Window Style menu. Files • Select any file with a broken (red) link and click the Delete File(s) button. • Click the Publish button. • Look in the folder called Published Files located in the same place as the program you are publishing. Exercises 323 Van Eck, TOC Through Chapter 11 1) Open the program you have created to this point and publish it for CD and the Web (i.e., two versions). 2) Test both program versions from your local hard drive (you can open your web version by launching your browser and opening your index.htm page in the web folder—FileOpen File). 3) Burn one copy to CD and publish the other using the Remote feature in Authorware. 324 Van Eck, TOC Through Chapter 11 Chapter 9: Variables, Functions, & Lists Overview This chapter will introduce you to the basic concepts of using and creating variables and functions. Variables and functions are what allow you to extend the basic authoring abilities of Authorware beyond what can be done solely with the authoring icons. It may seem odd that the first chapter of this second half of the book should begin with variables and functions rather than with advanced interaction or animations, but this is a reflection of the power and importance of these authoring tools. You will learn how to use variables to track information, to use that information to do things like customize feedback to the learner and specify dynamic navigation through your program. You will also learn how functions can allow you to do things like test the learners platform, write and read data to external files, and jump to other programs. More importantly, you will learn enough about these concepts so that you can put them to use in your own custom script (covered in the next chapter), which is what truly separates novice and expert Authorware developers. This chapter will cover more new information and concepts than any previous chapter, so be prepared to read and re-read it. You won’t be able to make full use of variables and functions until after Chapter 10, and many of the examples in this chapter have been stripped down to bare essentials for ease of comprehension. Consequently, you will not be able to fully implement all the code examples that appear in this chapter. You can, however, practice creating and setting variables, and using functions on variables. 325 Van Eck, TOC Through Chapter 11 Objectives At the end of this chapter, you will be able to: • Distinguish between a variable and a function • Define the different types of variables, including string variables, numeric variables, Logical variables, and lists • Use built-in variables and functions to get, store, and modify information relevant to your program and the learner’s progress through it • Create custom variables and write basic programming script to extend the functionality of your program • Use functions to control navigation and to modify variables Introduction You were introduced to variables in chapter 8, when you used FirstTryCorrect, TotalCorrect, FirstTryWrong, and TotalWrong to provide performance feedback to your learner. The variables you used then were built-in, that is, they are a part of Authorware. There are currently 250 variables built in to Authorware. While that may seem like a lot, there are times when it is necessary to create your own variables to make Authorware do what you want it to do. But variables are just one piece of the puzzle. To take full advantage of variables, you have to know about the different kinds of variables, functions, and the logic of scripting. The following sections will introduce you to these concepts. While you can learn a lot 326 Van Eck, TOC Through Chapter 11 about the concepts and processes involved from simply reading about them, the only way you will become proficient is through practice, and over time, as you attempt to build different functionality into your programs and solve the problems that inevitably come up during that process. Joe Ganci has written what is widely considered the definitive text on scripting in Authorware, Authorware Scripting for v6, Vol. 1 and 2, and it is available in electronic form at www.dazzletech.com. Variables Defined Variables are containers that hold information. In life, we use different kinds of containers to hold different kinds of things: we use paper or plastic bags to hold fresh groceries, and Tupperware to hold leftover meals. The same is true for variables; we use different types of variables to hold different types of information. And just as you wouldn’t put leftover soup in a paper bag, it makes a difference which type of information you put in each different type of variable. This is because Authorware expects the information it finds in a variable to match the kind of variable it is stored in. As an analogy, consider a hardware store. While it would be possible to store every different kind of nail, screw, bolt, nut, etc., in one large bin, it would be impossible (or nearly so) to find what you need. So the hardware store creates bins that store each different type separately. When you go to buy the parts you need, you expect to find these things sorted appropriately. And when you pull out a 9/16 inch nut, you don’t expect to find a different size nut. If you did, you probably wouldn’t even realize it until you tried to use it later. 327 Van Eck, TOC Through Chapter 11 There are four different kinds of variables: string, numeric, Logical, and lists. The word “string” has a very specific meaning derived from programming languages. A string is any kind of text. Any character, word, phrase, sentence, or paragraph in this book could be considered a string, and thus could be stored in a string variable. This includes characters that are numbers, as well, but numbers stored in strings are treated as text, not numbers. Numeric variables, as you might expect, store numbers. Numeric variables can be used in mathematical processes. For instance, the variable TotalCorrect is a numeric variable that is equal to the number of correct responses the learner matched in my program. For every correct answer they get, TotalCorrect goes up by one. Likewise, TotalWrong is a numeric variable that is equal to the number of incorrect responses that the learner matched as they went through my program. If I wanted to know how many different responses the learner made (correct or incorrect) in my program, I could get the value of TotalCorrect, get the value of TotalWrong, and add those two numbers together. But a more efficient way to do that is to add the two variables together (TotalCorrect+TotalWrong) without actually knowing what the values are. This is only possible with numeric variables; string variables that contain numbers as text won’t work in this kind of expression. The third type of variable is a Logical variable. Logical variables are words that signify values or states. The most common and familiar type of Logical variable in Authorware is the TRUE/FALSE Logical variable. A variable can be equal to “TRUE” or “FALSE,” and based on that, Authorware can do different things. For instance, there is a variable in Authorware called CapsLock. When the caps lock key on the learner’s keyboard is on, then the variable CapsLock will be TRUE; when it is not on, the value will be FALSE. In 328 Van Eck, TOC Through Chapter 11 this way, you can use a logical variable to decide what the program should do (e.g., if I find that CapsLock is true, tell the user to turn off the caps lock key). You will learn more about this later in the section on scripting. Heads Up: logical variables LOOK like numeric variables after they have been created, but don’t confuse the two! A Logical variable with a value of FALSE appears in the variables window as the number 0, while a value of TRUE appears as a 1. These are NOT actually numbers, however, as they cannot be added, subtracted, or otherwise manipulated mathematically. The fourth type of variable is a list, and is actually comprised of two different kinds of lists: linear and property. As you might expect from their name, list variables are lists of information. And just as with lists in real life, they are useful for organizing lots of information in one place; it is easier to keep track of things that are related to each other if they are stored together in one place. Lists can store numbers or strings (or variables that contain numbers or strings). The main difference between a linear list and a property list is that linear lists are sequential items, while property lists need not be in any order. A linear list can contain strings, numbers, and variables that contain strings or numbers. Lists are the only variable that can contain other variables, including other lists (which in turn could contain other lists—thinking too much about that can make you dizzy). An analogy for a linear list might be a recipe or driving directions. Order is critical to the use of either of these, as each step must be completed before moving on to the next. If you imagine that these lists are written on separate index cards, you will understand another aspect of linear lists; 329 Van Eck, TOC Through Chapter 11 every time you add something to a linear list, it is added to the end of the list unless you specify the place (index number) in the list it should go. If you want to add a step, you can create a new “card” and insert it in the “stack” (e.g., in the fifth position), but doing so causes every “card; after it to shift down one position. This can create problems. Let’s say that you have a list of driving directions on a stack of cards (not that this is very likely, I know, but bear with me), and you know that the fifth step is to turn left on Brown Avenue. Since you last drove the route, however, part of Brown Avenue has been closed for construction, and you must now make two additional turns to go around the construction to get to what was the sixth step. By adding two additional turns, you have created a new sixth, and seventh step, so that what was the sixth step is now the eighth step. Relying solely on order (called index position) in a linear list can make it almost impossible to retrieve items in the list unless you never sort (arrange) the list or add things to it. Property lists, in contrast, are lists of properties, each of which has a its own value. In this sense, properties are like, but not identical, to variables. Properties refer to specific things about the file or the current icon. An example of properties are the File Properties that you set through ModifyFileProperties back in Chapter 4. Each item (e.g., background color, screen size, and options on the playback tab) is a property of the file that can be set. When you make changes to these properties, it changes the way Authorware displays your piece. These properties are built in to Authorware already, and exist in their own property lists. You can also create your own properties. 330 Van Eck, TOC Through Chapter 11 Power Tip: Because many of the ways you control Authorware are actually through properties and property lists, and because you can set variables (like property lists) to different values, you can actually control a lot about your piece during the authoring process by writing code. This code can then automatically make tedious or repetitive changes to the program for you. An example of this is making sure that your piece conforms to the standard template your organization uses (screen size, depth, file path names, etc.). You will see how to do this in Chapter 12, when you learn about BOTS, Commands, and KOs. Property lists can be ordered if you want, but you don’t need to know the order of each item in the list in order to retrieve it: only the name of the item. Additionally, you can change the value of each item in the list without adding to the list. One way to think of a property list is to think of it as a shopping list. On a shopping list, you might list items like the following: • Milk • Eggs • Butter • Pasta This is a way for you to organize all the things you need to buy in one convenient place. Order does not matter in this list—as long as you buy everything on it, you may do so in any order you want. You don’t have to know that eggs are the third item on your list in order to buy them. 331 Van Eck, TOC Through Chapter 11 Each of these items is a property, which can have a wide range of values. When you go to the store, you don’t actually expect to find one product called milk, eggs, butter, or pasta. Instead, there are many different brands (values) of each item. You may use convenience, coupons, preference, or price to decide what brands you will buy. Each of these items is a variable in its own right: when you get to the store you may decide that milk=Dairy Farms Whole milk, eggs=Old McDonalds AA Large Brown eggs, etc. Your list is like a variable for your shopping needs, and each item is a variable for the type of item you want. An example of a common list you might use in an Authorware program may help to further distinguish between the two types of lists. Lets say that you want to store personal information about your learner: their first name, last name, age, gender, and occupation. You intend to retrieve that information at different times during the program. You could use either a linear list or a property list to do this. I could create a list called PersonalInfoList (remember that lists are variables, so they must be named). I decide ahead of time that my list will store information in the following order: Position (index) in list Item stored at that index 1 First Name 2 Last Name 3 Age 4 Gender 332 Van Eck, TOC Through Chapter 11 5 Occupation I can retrieve that information any time I want by using a function called ValueAtIndex, which will give tell me whatever is stored at the index position I specify (don’t worry now about how to do this—it will be covered later in the chapter). So if I tell the program to retrieve the value at index position 2 (Temp:=ValueAtIndex(PersonalInfoList, 2), which I happen to know is the learner’s last name, I can get the learners last name at any time and use it (to store performance data in a text file named for their last name, for instance). I can add as much information to the end of my list as I want; as long as I keep my index number positions straight (which requires planning and documentation), I can set and retrieve information as often as I like. A linear list like this would work fine for me as long as I never want to add information to someplace besides the end of my list. For example, lets say that I have been working with my list for a while, and I have written several pieces of code throughout my program that refer to items in my list by index number. I then realize that it would be good to store the learner’s middle initial as well, since some people have the same first and last name (e.g., John Smith). So I add a middle initial value at index position 2 (so that it falls between the first and last name): Position (index) in list Item stored at that index 333 Van Eck, TOC Through Chapter 11 1 First Name 2 Middle Initial 3 Last Name 4 Age 5 Gender 6 Occupation Notice that now Last Name, Age, Gender, and Occupation have all moved up one index position number higher. While I can keep track of this myself from this point on, anything that I have written up to this point that makes reference to an index position will no longer work correctly. For example, the code example above to retrieve the learner’s last name will now return the user’s middle name (because that is what is now at index position 2)! Tip: There is a function you can use called SetAtIndex that will actually replace the value at an index instead of adding a new value (and corresponding index position). You could use this function in cases where a value, such as the learner’s last name, needs to be changed—that way you avoid creating a new index position. This is true for linear lists and property lists, alike. 334 Van Eck, TOC Through Chapter 11 The best way to avoid this problem is to use a property list, instead. Property lists do not rely on index position, so you can store (and retrieve) information in any order you want. Property lists are comprised of a property and a value. The property is a label you use to refer to that property, much like a variable name. The value is the value of the property. Together, each property is called an element. In our example above, we could create a property list (instead of a linear list) called PersonalInfoPropList (you can name it anything, but it is good practice to include as much identifying information as possible) which is comprised of several elements, each with its own property and value, as follows: Proptery Value of that Property FirstName The first name of the learner (e.g., “John”) LastName The last name of the learner (e.g., “Smith”) Age The age of the learner (e.g., “28”) Gender The gender of the learner (e.g., “Male”) Occupation The occupation of the learner (e.g., “Carpenter”) 335 Van Eck, TOC Through Chapter 11 (e.g., “Carpenter”) I can retrieve the values of any of these properties by using a function called PropertyAtIndex (don’t be fooled by the term index here—it is the result of poor naming and not an indication of order. It should more properly be named PropertyAtElement). As long as I know the name of the property (e.g., LastName) I want to retrieve, it does not matter where that property actually resides in my property list. So if I decide, as in the example above, to add an element for the learner’s middle name, I can do so at any time; all I need to do is keep track of the names of my properties. Property lists are also quite useful when it comes to sorting lists. While it is possible to sort both linear and property lists (by alphabet in ascending order, for instance), doing so changes the order of the list, which again creates problems for linear lists, but not property lists. Power Tip: You can actually include a property list as an element in another property list. For example, if you anticipate 25 learners in your program, you would have to create and refer to 25 linear lists. On the other hand, if you created property lists for each learner, you could then store each list in a master learner list. A more common example for this technique would be to create a property list for each individual learner to store information like personal information, performance on different sections of the instruction, etc. Each of these lists might hold several different pieces of information, and could be stored in a master property list for each learner, so that all their records would be stored in one list. This would make it easy to store records for multiple learners. 336 Van Eck, TOC Through Chapter 11 Functions: Overview At first glance, functions look like variables; they are named in a similar fashion, and the built-in ones can be accessed through a method similar to variables (WindowFunctions). And just as with the similar Variables window, you are presented with a list of all the functions available to you (more than 300 at last count); clicking on the name of a function gives you a description of the function itself, and you can hit the “Paste” button to copy the code you need for that function into your calculation window (you have to have an open a calculation window prior to accessing the functions menu). But functions are fundamentally different from variables. Functions do not contain information (as variables do), they perform functions. In some cases, they perform functions on variables. In this sense, if variables are containers of information, then functions are tools that you can use to manipulate the information in those containers. In other cases, functions work on different aspects of your program or the learners computing platform, allowing you to print screens, set screen resolution, navigate within or between Authorware files, etc. There are far too many functions in Authorware to cover in this chapter, but discussing a few of the more commonly used functions may help you understand the principle and use of functions. We will start with some of functions that are related to variables, since you just read about them, and then move on to other types of functions. Functions & Variables The next few sections will describe some common functions that can be used to work with variables. It is important to keep in mind that there are hundreds of such functions, 337 Van Eck, TOC Through Chapter 11 and that mastering the art of working with them is largely determined by experimentation. The following sections are designed to provide some contextual examples for how the general process works; once you understand the basic syntax and process, you will be able to (with practice!) extend and apply these principles to other functions. In order to facilitate this process, I have stripped these examples down as far as possible. While everything in them is accurate, there are other steps and processes which must be performed in order to actually implement these examples in an Authorware file, such as definining the variable, setting it’s initial value, and incorporating appropriate syntax and scripting in a calculation icon. These elements will be discussed in the scripting sections that follow. As you read the next few sections, then, focus on the concepts rather than the mechanics of the examples, and do not attempt to actually work with these in your own Authorware file prior to completing this chapter. WriteExtFile, ReadExtFile, & AppendExtFile If we go back to the earlier example of nuts, bolts, and washers in hardware store bins as variables, I could retrieve 10 nuts and bolts from a bin and use those to build a set of shelves, repair the hinges on a fence gate, or weigh down the bottom of a set of patio door drapes. Functions allow me to do different things with the information stored in variables. Among the more common examples of functions that work with other variables are the WriteExtFile, AppendExtFile, and ReadExtFile functions. As you might guess from their names, these functions allow you to write data to and read data from an external file. Authorware is able to write and read plain text files (as long as the .txt extension is 338 Van Eck, TOC Through Chapter 11 appended to the end of the file name). This is a simple way to store information from the program locally on the hard drive. For example, I conduct a lot of research with computer-based instruction, and I have a lot of data that I need to collect for statistical analysis (see the case study for a complete description), and because statistical programs can read in text files, I use these functions to create plain text user records. If you paste in the WriteExtFile function from the function window, the default syntax looks like this: WriteExtFile("filename", "string"). The first part is the function itself; the parts that come inside the parentheses are called arguments or parameters, and are usually separated by a comma. In this example, “filename” refers to the name of the file you want to create, and “string” refers to the data that you want to write to the file. Putting text inside quotation marks tells Authorware to treat it as a string (as with string variables). Where this gets interesting, is that you can specify the name of the file and the actual data yourself, or you can use variables. In the first example, I could write the following: WriteExtFile(“Student Data File.txt”, “Hello World”). This would create a text file named Student Data File.txt, and inside that file would appear the words Hello World. This is fine if I always want to create the same named file with the same text inside it, but that is rarely the case. More often, I want the name of the file to be different for different learners, and I want to write different information to the file. In both cases, I can use variables with this function to do so. If I have a variable in which I store the learner’s last name, uLastName, and I want to store the learner’s overall performance, I could write the following: WriteExtFile(uLastName^“.txt”, TotalCorrect). This will use the contents of the variable uLastName as the name of the file, add the .txt extension (the ^ character connects, or 339 Van Eck, TOC Through Chapter 11 concatenates, two things—don’t worry about the operators right now, they will be covered in Chapter 10), and write the value (contents) of the variable TotalCorrect. In my case, the file name would look like this: Van Eck.txt. What’s more, I can write as many variables as I want to that file by using the concatenation character, ^ ,[e.g., WriteExtFile(uLastName^“.txt”, TotalCorrect^TotalWrong^PercentCorrect^…….)], and I can mix and match strings and variables [e.g., WriteExtFile(uLastName^“.txt”, “Total Correct=”^TotalCorrect). If the learner’s last name was Johnson and she had gotten 5 correct, this last example would create a text file named Johnson.txt, and the contents would look like this: Total Correct=5, with the words Total Correct= coming from the text string I wrote and the 5 coming from the value of the variable TotalCorrect. The functions AppendExtFile and ReadExtFile function similarly. The only difference between WriteExtFile and AppendExtFile is that WriteExtFile will always create a new file; if one by that name already exists, it will write over the contents of that file. AppendExtFile will always add to the end of the existing file. If the file does not exist, then it will create it. To understand and use the ReadExtFile function, you have to know a little about setting the value of a variable, which is covered in more depth in the next section. For now, just remember that in order to read in an external file, you must perform two steps: read the file (by using ReadExtFile), and store the contents of that file in another variable. To accomplish this, I might write the following: LearnerRecords:=ReadExtFile(uLastName). This will take everything that I wrote to the file and store it in LearnerRecords. In the 340 Van Eck, TOC Through Chapter 11 earlier example, this would result in a string variable called LearnerRecords which would contain the number 5. Power Tip: There is a variable called IOStatus that will help you test whether your Read, Write, and AppendExtFile functions were successful or not. IOStatus will be equal to 0 if the function was successful, so you can verify your script by looking at the value of IOStatus immediately after reading, writing, or appending from/to an external file. To do so, you could use IOStatus in conjunction with a function called Trace, which sends some text to the trace window (you can open the trace window by selecting the Control Panel button on the tool bar and then selecting the Show Trace Window button, which is identical to the Control Panel button). You will learn more about the trace function and window in Chapter 14. An example of this might look like the following: WriteExtFile(“My Text File”, SessionTime) If IOStatus<>0 then Trace(“The Write External File Function on line 001 failed”) You will learn about the syntax for this code in Chapter 10. GetNumber, GetLine, & GetWord Note that by writing the variables to an external file and reading the data back in, as in the previous example, I now have the value of TotalCorrect as a number, but I have NOT retrieved the actual TotalCorrect variable. This is because I did not actually write the variable TotalCorrect to the external text file; I wrote the value of the variable TotalCorrect. Consequently, when I read that back in, I read the value, not the variable itself. I can use that value to set the value of TotalCorrect, however. While there are 341 Van Eck, TOC Through Chapter 11 other, easier ways to store and pass variables between Authorware files, for the purposes of illustration, we will look at how to retrieve the actual value of the variable from the example above. At this point, our earlier discussion about string vs. numeric variables becomes critical. Authorware expects a numeric variable (one whose default value is some number) to contain a number, and a string variable to contain text. The value that I wrote to the external file in the previous example was 5; the current value of TotalCorrect. Although TotalCorrect is a numeric variable, once I have written it to a text file, it becomes text. Authorware no longer has any way of knowing whether what it sees in that file is text or numbers unless I tell it. There is another series of functions, GetLine, GetWord, and GetNumber, that are often used in conjunction with the ReadExtFile (and others) to accomplish this. As you might expect, these functions get a line, a word, or a number from the text stored in a variable. GetLine and GetWord will retrieve the line or word you specify from a variable that contains text. A line is defined by default as a Return character (each time Authorware encounters a hard return, it assumes a line has ended and a new line will begin), while a word is defined by spaces (every time a space is encountered, Authorware assumes one word has ended and another has begun. A number is defined by a space or a non-numeric character. In our example, I could use GetWord to retrieve the value 5 as text, or GetNumber to retrieve the value as a number. The one that I use determines what I can do with that value later; if I intend to store it in TotalCorrect, which is a numeric variable, then I must use GetNumber. 342 Van Eck, TOC Through Chapter 11 Tip: This can make it problematic to retrieve a number from within a string that contains both numbers and words. For this reason, it is a good idea to either store numbers and strings in separate files (and, when retreived, in separate variables) or at least on separate lines within a single file. That way, you can tell Authorware when to retrieve the value as a number or a word. Like the ReadExtFile function, there are two steps to using these functions: retrieving the information you are looking for and storing that information. The syntax for each looks like this: Get_____(n , “string”), where n is equal to the number of the line, word, or number that you want to retrieve, and “string” is equal to the variable you want to get that line, word, or number from. In the earlier example, we wrote the value of the variable TotalCorrect to a file named for the last name of the learner, in my case, Van Eck.txt. We did this supposedly because we wanted to store information about the performance of the learner during some instruction. Now, the learner has presumably returned to the program and I want to retrieve this data so that I can continue to track their performance, picking up where they last left off. In order to retrieve that value and place it back inside of TotalCorrect, I have to first read in the contents of that external file (using ReadExtFile), and then read the number that is in that file (using GetNumber) and put it into TotalCorrect. In both cases, this involves taking the result of each function and storing it in a variable, like this: TempVar:=ReadExtFile(uLastName^".txt") TotalCorrect:=GetNumber(1,TempVar) 343 Van Eck, TOC Through Chapter 11 The first line creates a temporary variable, TempVar (it could be named anything) and makes it equal (:=) to the contents of a file named for the learner’s last name (ReadExtFile…..). Heads Up: Note that in order for this to work, the learner would have to have typed in their last name again, so that Authorware knows the value of uLastName. This would be commonly done by asking the learner to type in their last name (or student number, or whatever you use to track each learner) at the start of the program each time. The second line then takes (GetNumber) the first number (1) it finds inside the variable called TempVar (which is now equal to the contents of the external file we just read), and stores it (:=) in the variable TotalCorrect. Note that in this instance, we told it to find the first number because that is the first (actually, in this case, only) number we wrote to the file. Because we used GetNumber, Authorware interprets the string character 5 as a number instead of a word. If we had more than one number, we would have to specify which one we wanted. The process is the same for GetLine and GetWord. AddLinear, AddProperty, DeleteAtIndex, DeleteAtProperty, & SetAtIndex This group of functions are specific to list variables, and are in fact the only way that you can add, delete, or replace elements in a list. AddLinear and AddProperty add elements to a linear or property list, respectively. They will fail if used with the wrong list (e.g., AddLinear is used with a property list). Likewise, DeleteAtIndex and DeleteAtProperty are used to delete elements in a linear or property list, respectively, and will likewise fail if used with the wrong type of list. SetAtIndex is a bit of an oddball, as it actually 344 Van Eck, TOC Through Chapter 11 replaces (sets) the value in a list rather than adding it, and works with both linear and property lists. AddLinear and AddProperty will add an element to the end of a list. In the earlier example, we had a list for information about the learner. This list included the learner’s first name, last name, age, gender, and occupation. I could add elements to a linear list as follows: AddLinear(PersonalInfoList, uFirstName) The AddLinear function has two mandatory parameters: the name of the list (variable) followed by a comma, and the value to add to the list. In this example, I have a list variable (which I have defined and initialized elsewhere) called PersonalInfoList to which I want to add the value of the variable uFirstName (which I have defined and set elsewhere). The value of uFirstName (e.g., Richard), will be added to the end of my list. I could accomplish the same thing with the following: AddLinear(PersonalInfoList, “Richard”) Heads Up: It is important to note that neither example adds a variable to this list. In the first case, we add the value of a variable; in the second, we specify what should be written. While in this case we added a string, it could be a number as well. Richard is in quotations because it is a text string, not a variable; uFirstName is a text variable. I could build my entire list in this fashion: AddLinear(PersonalInfoList, uFirstName) 345 Van Eck, TOC Through Chapter 11 AddLinear(PersonalInfoList, uLastName) AddLinear(PersonalInfoList, uAge) AddLinear(PersonalInfoList, uGender) AddLinear(PersonalInfoList, uOccupation) Note that because each element is added to the end of this list by default, I must write them in the order I want them to appear in the list. If I want to specify where in the list something should be written, I can add a third parameter to give what I write a position in the list: AddLinear(UserList, FirstName, 5) In this case, the 5 refers to the place in the list I want the value to be written. Heads Up: Using AddLinear and specifying the index position will cause Authorware to create indices to make it come out right if there are not enough indices already. For instance, if I had not added anything to my list yet and used the syntax above to add the users first name into the 5th index position, Authorware would create 4 indexes with nothing in them so that it could add the first name in the 5th index. For this reason, you are better off setting all the index positions in your list to a default value and using SetAtIndex to replace the values at that index. You will learn about this function later in this chapter. AddProperty works in a similar fashion, except that there are three parameters: 346 Van Eck, TOC Through Chapter 11 AddProperty(PersonalInfoPropList, #FirstName, uFirstName) The first parameter is the name of the property list, as it was with AddLinear. The second parameter is the name of the property you want to set. Note that properties are always preceded by a pound (#) sign; this tells Authorware that what follows is a property, not a variable or value. The third element is the value that you want to store in the property (the second parameter). In this case, I have used a variable called uFirstName, which I have defined and set elsewhere. Just as with AddLinear, I could specify the value myself instead of using a variable: AddProperty(PersonalInfoPropList, #FirstName, “Richard”) Remember that you must be careful to keep your lists straight, as both AddLinear and AddProperty add rather than replace values, including duplicates! Writing the following would give you two properties named FirstName with exactly the same value in your property list: AddProperty(PersonalInfoPropList, #FirstName, uFirstName) AddProperty(PersonalInfoPropList, #FirstName, uFirstName) Deleting items from lists is a similar process. DeleteAtIndex allows you to delete items from a linear list, while DeleteAtProperty allows you to delete a property. Both use the same syntax, in which you specify the function, specify the list, and specify the index or property you wish to delete: DeleteAtIndex(PersonalInfoList, 1) 347 Van Eck, TOC Through Chapter 11 or DeleteAtProperty(PersonalInfoPropList, #FirstName) In the former case, I delete the value in the first index position in my linear list called PersonalInfolist. In our examples prior, this would delete the learner’s first name. In the latter case, I delete the property FirstName from the property list called PersonalInfoPropList. Again, in our earlier examples, this property contains the value of the variable uFirstName, which is of course the learner’s first name. You can begin to see the advantage of a property list here; I don’t need to know whether I stored the learner’s first name in the first index position—I need only remember that I have a property called FirstName. SetAtIndex will allow you replace the value at the index position that you specify. You can use this when you are updating your list (i.e., changing existing values). The advantage to doing it this way occurs when the data you want to write to your list could be created in any order (as in non-linear, learner-controlled instruction), yet you want your list ordered. Keep in mind that if you specify an index, then anything else you add to this list will be added after it unless you give them indexes as well. Also, remember that AddLinear always ADDS information to your list; it does not REPLACE information. You could, of course, use DeleteAtIndex and AddLinear (linear lists) or DeleteAtProperty and AddProperty (property lists) to accomplish this as well. It is important to note, however, that you must know the index number to make use of this function. While this is obvious in a linear list, remember that you don’t need to keep track of index positions in a property list in order to add and delete things. To make use of 348 Van Eck, TOC Through Chapter 11 SetAtIndex, you must know the actual index position of the property you want to modify. In this regard, DeleteAtProperty and AddProperty might be simpler to use, unless you keep track of index position in your property lists. The syntax for using SetAtIndex with our example lists is as follows: SetAtIndex(PersonalInfoList, uFirstName, 1) or SetAtIndex(PersonalInfoPropList, uFirstName, 1) Note again that the variable uFirstName could be replaced by a text string value as well (e.g., “Richard”). Heads Up: You must always initialize a linear or property list in the Authorware file itself, rather than relying on the initial value feature when defining variables. This process is covered in the Scripting with Variables section in Chapter 10. Functions & Navigation The GoTo Function There is a category of functions called Jump, which contains functions used for navigating within and between Authorware programs. Normally, navigation within an Authorware program is controlled by the learner or program according to the flowline and navigation icons. Occasionally, however, you may want to specify where the learner goes next from within a script that you write. For example, there may be occaisions where you want the learner to view some information only the first time through a 349 Van Eck, TOC Through Chapter 11 section, and that upon returning to that section, they should skip that information. You could set a variable that is TRUE if they have seen that section already, and when that is the case, the program should skip that section. While you could use a framework and navigation icons to accomplish this, sometimes that is overkill. You could instead use the GoTo function. The GoTo function specifies the name of an icon to which you want Authorware to go. It can be especially useful when where you want to go is NOT on a framework (in which case you cannot use a navigation icon). The syntax for this function is as follows: GoTo(IconID@“S1.1”) The first part is the function itself, and just as with all functions, it is followed by a parenthetical expression, in this case, IconID@“S1.1”. Every icon in your program has a unique ID number. This number is assigned automatically by the program, and cannot be predicted (at least not by mere mortals), beyond the fact that 65543 appears to be the ID number of the first icon added to a new file. Authorware actually uses this ID number to keep track of where things are in your program; when you tell it to exit an interaction and go to the next icon (using the flow controls from a response on an interaction), it actually accomplishes this by knowing which ID number it should go to next. If you knew the ID number of the icon you wanted to go to offhand, you could use it to tell Authorware where to go (no jokes, please). But numbers are for computers, and words are for humans, so Macromedia has provided a way for humans and computers to communicate each in our own preferred language. IconID@“S1.1” simply tells Authorware to get the 350 Van Eck, TOC Through Chapter 11 ID number of icon that WE have named S1.1. Here again is another example of why it is critical to name every icon you have carefully, so that you can refer to them easily. There are a few caveats to using the GoTo function. First of all, if you use it, the icon title that you specify MUST be unique. It is possible to name more than one icon the same thing; Authorware does not care. But if you use the GoTo function and specify an icon title that exists for more than one icon, Authorware has no idea which one you mean, and it will force you to specify a unique icon title. Secondly, if you ever cut or delete the icon to which you want Authorware to go, your code will look like this: GoTo(IconID@DeletedIcon) As you might expect, this will no longer produce the desired result, even if you create a new icon and name it the same thing as the one you cut or deleted. JumpFile, JumpFileReturn, JumpOut, JumpOutReturn There are also occasions upon which you want to leave the Authorware file and go to another Authorware file or program. Many developers of training are beginning to focus on developing learning objects. The emphasis here is on breaking the instructional unit down to the level where each addresses a particular learning objective or goal, and creating instruction that addresses just that objective or goal rather than implementing all goals and objectives within a single program. These learning objects are stored separately and can be re-purposed and used again in later instruction by other designers. Because they are independent (relatively speaking) of each other, they can be recombined in different ways for different purposes. These objects can be strung together using the 351 Van Eck, TOC Through Chapter 11 JumpFile function; to the learner, these separate files appear to be one single program. Another example is when you want to call up another program, such as a web browser or a word processor. Authorware can launch other programs using the JumpOut function. JumpFile and JumpFileReturn can be used to navigate from the current file to another Authorware file. Note that this only works with packaged files, so you cannot test it during the authoring phase without packaging both files first. The difference between the two functions is that JumpFile will cause the current Authorware program to quit before jumping, while JumpFileReturn will jump to the file you specify, but leave the current file running in the background so that quitting the file you jumped to will put you back in the first file. An example of the syntax for this might look like this: JumpFile(“Unit Two”) where the name of the file you want to jump to is enclosed in quotes and parentheses. It is not necessary to specify the extension of the file you want to jump to, as Authorware will only, and automatically, search for packaged files. Power Tip: You can also pass variables from one file to the next using the optional arguments for these functions. If I want to pass my learner information from the current file to the next, for instance, I could type the following: JumpFile(“Unit Two”[, uFirstName, uLastName, uAge, uGender, uOccupation]). Note the square brackets that enclose the variable names. The astute reader may recognize that my lists would be quite handy here, as I could instead type JumpFile(“Unit Two”[, PersonalInfoPropList]) and accomplish the same thing. NOTE: the variables that 352 Van Eck, TOC Through Chapter 11 you pass from one file to the next MUST exist in both files, which means you must define them in both places. An easy way to do this is to select everything in the current file (Ctrl-a), copy it, open the second file, and past everything into an empty map icon. You can then delete that map icon, as all of your variable names and default values will have been copied into the new file. If you want to launch another (i.e., non-Authorware) program from within your program, you can use the JumpOut and JumpOutReturn commands. The syntax for these is similar to their cousins JumpFile and JumpFileReturn: JumpOut(“WINWORD.EXE”[, “Final Results.doc”]) This would cause the current Authorware program to quit, launch Microsoft Word, and open the document “Final Results.doc” It is important to note that you must specify the exact name of the program and extension. Also, if the program and document do not exist in the same folder as your Authorware program (as they do not in the example above), you must also specify the path for each (unless you set the search path for your program appropriately, which you will learn about in Chapter 13). Our example above would be better rendered like this: JumpOut(“C:\Program Files\Microsoft Office\Office\WINWORD.EXE”[, “Final Results.doc”]) This assumes that I have stored the document file in the same folder as my program (good practice to do so). JumpOutReturn uses the identical syntax, and again differs only 353 Van Eck, TOC Through Chapter 11 in that the current Authorware program will continue to run in the background while the new program launches. Scripting The Calculation Window Now that you understand what functions and variables can do, it is time to examine more closely the rules by which they are created and used, and how you can begin to incorporate them into your own custom code within Authorware. All code that you will write will appear inside a calculation window. That window most often will belong to a calculation icon. It is also possible to attach script to icons themselves by right clicking on the icon and selecting Calculation from the pop-up window. When you do so, you are presented with a window that is identical to the calculation icon window in which to write your script. Icons that you have done this to have a small equal sign at the upper left corner, commonly called an ornament. There are several features of the calculation window which are relevant to all scripting, so we will begin with an introduction to those features. A calculation window is a blank window with 14 tools at the top of the window: 354 Van Eck, TOC Through Chapter 11 Script is added by typing in the blank, white space, much as you do with a word processor. The image here has been modified to make as many of these tools active as possible; when you first open the window, only two of them are active, since you have not yet added any script to the window upon which the tools can act. Many of these tools will be familiar to you from other programs. The first seven are, in order from left to right, Undo, Redo, Cut, Copy, Paste, Clear (delete), and Print. Undo, Redo, and Print all work by a simple click on the appropriate button. The others, just as with a word processor, are implemented by selecting the appropriate text or placement of the cursor, and then a single click on the appropriate button. The last seven tools are unique to the cacluation window and scripting process, and are worthy of closer examination. Commenting and Uncommenting. The buttons with two dashes under an arrow are called Comment and Uncomment. A comment, in the world of scripting, is text that you write either to yourself, to another programmer, or which for some other reason you do not want Authorware to interpret as script. Authorware will attempt to interpret everything you write in a calculation icon as variables, functions, or code, each of which have their own rules and requirements. If it finds anything that does not conform to these rules (e.g., a function that does not exist or a syntax error), it will highlight the error to the best of its ability (woefully inadequate, at times), and refuse to allow you to close the window until it has been corrected. Sometimes, you want to write notes to yourself to remind you of the purpose or intent of some part of your script. Heads Up: In fact, if you ever want to be accepted into the ranks of good Authorware programmers, you MUST get into the habit of commenting your script. There are two reasons for this. First, if anyone is ever to make use of your programming at a later date 355 Van Eck, TOC Through Chapter 11 (or if you are part of a development team), you may THINK that what you have written will be obvious. It isn’t. And even if it were, it would take somebody extra time and concentration to figure it out. As you may know by now, brain power and time are at a premium when working with Authorware, so it is common courtesy to comment all but the most straightforward code. Additionally, even when the code is straightforward, the purpose of the code is not always obvious (how is the variable you have defined supposed to be used? To do what? Under what conditions?). Ah, you say: I am a lone wolf and nobody but me will ever look at my code. Comment it anyway. You would be AMAZED at how even the most “obvious” script becomes impossible to decipher even days later, let alone months or even years. Often, you will find that in the course of authoring a new program you come across a problem or feature which you have already solved (or partially solved) in an earlier program. I have gone back to programs I wrote 10 years ago to get code that I have a new purpose for. It is well-nigh impossible to decipher your own code without the benefit of commenting. In other cases, (quite common, in fact), you will find that there is an error somewhere in your script that you cannot find, and Authorware will not allow you close the window. “Commenting out” parts of your code forces Authorware to ignore that section of your script so that you can close the window while you do research about the script you are writing. Finally, commenting can be useful when you want to test different parts of your script. By commenting out all but the part you are testing, you can run the piece and evaluate whether it is working. If it is, you can comment it out and move on to the next piece. 356 Van Eck, TOC Through Chapter 11 The amount of space I have given to the rationale for commenting and uncommenting is a reflection of its importance, and not the difficulty of the process itself. To comment out a line in your calculation window, you need only place the cursor somewhere within the desired line and click the Comment button (the arrow pointing to the right over two dashes). This places two dashes at the beginning of the line and changes the color of the text, signifying that the line has been commented out, as in the example below: Uncommenting the text, then, is simply a matter of placing the cursor somewhere in the line of commented text and clicking once on the Uncomment button (the left pointing arrow over two dashes). You can comment out (or uncomment) a line manually by typing the dashes (or deleting them) yourself, but this becomes somewhat tedious to do when you want to comment/uncomment several lines of text. If you select any number of lines (by highlighting, as you do in a word processor) and hit the Comment or Uncomment button, it will apply the action to every line you have selected. Block indent & Block unindent. The next two buttons may be familiar to you from word processing or presentation slideshow programs. Their function is to indent the selected text four spaces (by default). Indenting is a convenience for you when you are writing multiple lines of code that are part of the same process. Two common examples 357 Van Eck, TOC Through Chapter 11 are loops and if-then statements. You will learn about these in a later section of this chapter, but for now just remember that sometimes you need to write sepearate lines of code to accomplish one thing. In these cases, it is common to indent the lines to indicate that they are subset (a sub-routine) of what precedes and follows them. The example below shows how this might look with a common if-then statement: The indented lines make it easy to see where my if-then statement starts and ends. This is even more helpful with my if-then statement is one of several processes and lines of script. Indenting is so helpful that Authorware has built the process into statements like loops and if-then statements. The example above was automatically indented for me as I wrote it, without my having to make use of the Indent block and Unindent block buttons. Find Left Bracket & Find Right Bracket. The next two buttons come into play when you write parenthetical expressions in your script. These may be familiar to you from math class, where they were used to indicate the order in which different functions should be performed. For example, if I want to divide the product of 10 and 2 by the product of 5 and 2, I would write it like this: (10 X 3) / (5 X 2). The parentheses indicate that I must multiply 10 by 3 first, then multiply 5 by 2, and then divide the first product by the 358 Van Eck, TOC Through Chapter 11 second product, giving me 3. Without the parentheses, I might multiply 10 by 3 (30), divide by 5 (6), and multiply by 2, giving me a total of 12. Likewise, there are mathematical expressions in scripting that you will want evaluated in a particular order, and you will use parentheses to do so. Additionally, you may recall from the section on functions, all functions use parentheses to contain their arguments. Between these two uses of parentheses, it even become possible (and necessary, at times) to “nest” parenthetical expressions. For example, I might want to get the cosine of (30 X 2) – (2+15). I can use the ACOS function in Authorware to get the cosine of any value by typing TempVar:=ACOS(x), where TempVar is a temporary variable that I want to store the cosine in, and x is the number I want the cosine of. By combining these, I get TempVar:=ACOS((30*2) – (2+15)). As you might expect, it can become difficult to keep track of which left parenthesis goes with which right parenthesis, especially when working with multiple lines of code. The Find left and Find right bracket buttons help you keep track of this. When the cursor is placed just before a left parenthesis, the Find right bracket button is active and, when clicked, will move the cursor to just before the right parenthesis that Authorware thinks completes the expression. The same is true for the Find left bracket button when the cursor is placed just before a right parenthesis. Tip: You can use these tools to help you find errors in long, complex script. If you are missing a bracket in a long string that covers several lines and has several parenthetical expressions, knowing that one is missing doesn’t help you find it. The Find left bracket and Find right bracket help you match the pairs to find which one is missing. 359 Van Eck, TOC Through Chapter 11 Preferences button. The last button in the calculation window toolbar is the preferences button. This button provides access to the options for the calculation window itself, allowing you to change the way the calculation window appears and behaves. Most of these features are self-explanatory, so in the interests of space and time, I will discuss only a few of the more relevant and perhaps less obvious features. Clicking on the preferences button brings up the following window: As with other windows, each tab at the bottom brings up a different section of preferences. On this first tab, one feature that may be of particular use to you is the Show line numbers feature. By selecting this, Authorware will automatically provide line numbers for each line of code in the calculation window. The advantage to this lies in your ability to get help with your code from others. If you are having trouble with your code, or if you are working with others on a development team who will need to modify your code, line numbers provide a common language for discussing your code. If I am looking at your code and find that there is an error or something that is missing, I can tell 360 Van Eck, TOC Through Chapter 11 you exactly where in your code that occurs. Also, line numbers help when you are testing long scripts, in that you can keep track of which lines you have tested or debugged. The Editor tab also has a few features worth mentioning. On this tab you can specify how many spaces Authorware should indent text when you use the Indent block button on the toolbar (remember the default was 4). There is also an option on this tab to have Authorware automatically correct the case of variables and functions. You may have notice that when I type the names of variables and functions, I capitalize the first letter of each element (e.g., TotalCorrect, instead of Totalcorrect). While it is not necessary to do so, it is good practice, as it makes it significantly easier to interpret the name of variables and functions. If you check the option to auto correct the case of functions and variables, Authorware will automatically capitalize each part of any of the built-in variables and functions in Authorware (it will NOT change the case of any variables that you have created yourself, however). On this tab you can also specify how many spaces Authorware should automatically indent (or whether it should automatically indent at all) compound statements such as the if-then example discussed earlier. Finally, the fourth item on the editor tab is worth mentioning not so much because you may change it but because it points out a very handy shortcut. This feature is the keystroke combination by which you access the calculation completion feature. Any time you are typing the name of a variable or function in Authorware, you can bring up a scrolling list of the names of variables and functions that most closely match what you are typing. You can then select from among this list and Authorware will automatically complete (and/or correct) your entry for you. This not only saves typing time and prevents spelling errors, it also allows you to find the 361 Van Eck, TOC Through Chapter 11 correct name even when you only remember the first few letters. The default keystroke is ctrl-h (control H). The Toolbar tab allows you to specify which toolbar buttons appear at the top of the calculation window, and the Font tab allows you to specify the font and size you want the text you type to appear in. By default the font is courier new and 8 point, which can be hard on the eyes. The remaining tab, Color, is important once again more for the feature it points out than for the ability to modify it. You may have noticed in the earlier examples that some of the code script appeared in different colors. Authorware specifys a different color for different elements in your calculation window. This makes it easier for you to pick out and identify these different elements. It also serves as a built-in error checker. Table 5 presents the colors that Authorware assigns to some of the more common script elements. Table 5. Colors assigned by default to common script elements. Element Color (or style) Comment Blue Operator (=, +, etc.) Red String (text in quotes) Purple User (custom) functions & variables Green System (built-in) functions & Bold (of whatever color specified on variables the Font tab) 362 Van Eck, TOC Through Chapter 11 variables the Font tab) Once you get used to the color scheme (or define your own), you can easily distinguish at a glance variables and functions from text, and identify operators among long strings of text. You can also tell if you have misspelled a function or variable, as it will (by default) remain green rather than becoming bold. The last thing you need to know about the calculation window is some of the special words and characters that can be used. One is a special character that looks like a sideways L (¬). This character is used to tell Authorware that what follows should be treated as the same line as what precedes it. Authorware has a 1024 character per line limit in a calculation window. You will find that you can not fit this many characters on one line of your calculation window without having to use the scroll bar at the bottom of the window. In practical terms, you are likely to hit the limit at 124. To keep all your script visible within your calculation window without using the horizontal scroll bar, you can type this character at any point you want wrap to the next line by holding down the Alt key and hitting the return or enter key. You must use this character instead of just hitting the return key, because when Authorware encounters a return, it stops looking. If the function or script you are writing continues on the next line, Authorware will give you an error message, because it expects the script to finish on the line with the hard return. On a related note, there are times when you are writing to an external file and you want Authorware to insert a special character like a Tab or a Return. A good example is when 363 Van Eck, TOC Through Chapter 11 you are writing learner data to an external file that will contain more than one learner’s data. You might use the ^ and ¬ characters to string hundreds of variables together into one learner record. In order to signify where the end of that record and the start of a new one occurs, you may want to insert a new line in the file. This is particularly useful when you plan to use the GetLine function on this file later, as a line is defined by default as a new line, or return character. Or, you may want to read in your data to a statistical, spreadsheet, or database program. Such programs can interpret “delimited” files, that is, files whose records are separated (delmited) by a character such as a comma or a tab. To force Authorware to insert a new line or a tab in the text file as it is writing to it, you type the word Return or Tab, respectively. Creating Custom Variables Now that you know what variables and functions are and how to work within the calculation window, you can begin to create your own script. One of the things you will inevitably need to do when writing your own script is to create custom variables. The process for doing so is actually quite simple, but there are a few procedural issues you must pay close attention to avoid problems later. There are two ways to create a variable. The first is to open the variables window (WindowVariables) and click the “New” button. This will bring up the New Variable dialog box: 364 Van Eck, TOC Through Chapter 11 The second, and by far more common and efficient, means of creating a new variable is to simply type the name of the variable you want to create inside any calculation icon (e.g., while you are writing script). Any text that you type inside a calculation icon that is not in quotations (indicating it is a string) and that is not a recognized function, variable, or logical scripting command, will be interpreted by Authorware as a new variable. Authorware will automatically open up the New Variable dialog box when you attempt to close or save a calculation window that contains such text. Regardless of which method you use, you will be presented with the same dialog box, with which you must perform the same steps. The first box in this dialog window will be blank (if you’ve created the variable through the variables window) or contain the text in your calculation window that Authorware thinks is a new variable. When you are creating/naming your variables, it is a good idea to use a descriptive name for the information that they will contain, and to use the case-naming convention in Authorware. For instance, the variables I used as an example in the section on lists were named things like “uFirstName,” and “uAge.” For me, the “u” stands for User, and the name of the 365 Van Eck, TOC Through Chapter 11 variable reflects its purpose (i.e., to store the first name and the age). I could just as easily have named them UserFirstName and UserAge; Authorware does not care what I name them. I use “u” because it is shorter than typing “user.” Additionally, notice that I capitalized the first letter of each word-descriptor in my variable name, just as Authorware does with built in variables and functions. This makes it much easier to read at a glance (compare ufirstname with uFirstName, for example, or userpersonalinfolist withUserPersonalInfoList). Tip: If you have made a spelling or syntactical error in your calculation window, you will often get this dialog box. In such cases where you did NOT intend to create a new variable, you can simply hit the Cancel button and make the necessary adjustments to your code. The second and third boxes are critical to ensuring that your variables work as you intend them to and that you (or others) are able to interpret their purpose. The initial value box is where you specify what your new variable should be equal to by default. This is important for two reasons. First, every variable MUST be equal to something at ALL times. It can be equal to nothing, as you will see momentarily, but in the world of Authorware, “nothing” does not mean leaving this space blank, as evidenced by Authorware’s prompting you to fill this space in if you attempt to do so. The second, far more critical, reason that the default value is important is that Authorware uses the default value to determine what kind of variable it is. You will remember (or should now go back and re-read) that there are four different types of 366 Van Eck, TOC Through Chapter 11 variables: string, numeric, logical, and list. The value that you type into the Intial value field will determine which of these types of variables you want your new variable to be. Tip: You can change any variable from one type to the other by changing its initial value through the variables dialog box (WindowVariables, then select the desired variable from the list and change its the Initial Value field). Table 6 presents each type of variable and its corresponding initial value(s). Variable Type Possible Initial Value(s) String “” or any text in quotes, including spaces Numeric Any number Logical TRUE or FALSE Linear List [] PropertyList [:] In the case of a string variable, I can simply type open and close quote symbols to indicate that this is a string variable that has ‘nothing’ in it. I can also type one or more spaces inside open and close quote symbols, and it will appear to be the same. Authorware, however, counts spaces as characters. In practical terms, this will probably make no difference in the end result, but it is helpful to remember how Authorware thinks in terms of variables. 367 Van Eck, TOC Through Chapter 11 One final note on string and numeric variables: while you can type any number you want in a string variable or a numeric variable, if the number appears in quotations, it is treated as text, NOT as a mathematical number. This is important, because you cannot perform any mathematical operations (addition, subtraction, etc.) on numbers that are in a string variable (although as mentioned earlier, you can use the GetNumber function to search a string and store numbers it finds in numeric variables). Case Study Although it may not seem like it, what you have learned so far is not really complex enough to warrant much of a case study. When combined with Chapter 10, you will have learned enough to apply to a real world situation. For this reason, Chapter 10 will present a case study to cover both chapters. Summary Authorware automates the process of creating interactive instruction by using an iconbased authoring metaphor. This metaphor allows you to create interactive instruction quickly and easily. When authoring advanced instructional products, such as adaptive instruction, complex interactions that assess multiple responses simultaneously, and instruction that relies on tracking and using detailed information about learner performance, it becomes necessary to use variables and functions to extend Authorware’s built-in icon-based capabilities. Variables are containers that hold information. Each of the four types of variables, (string, numeric, logical, and lists), hold different types of information (characters, 368 Van Eck, TOC Through Chapter 11 numbers, TRUE or FALSE states, elements, and properties). The built-in variables, and those that you create allow you to store and act on a variety of information about the program and the learner. Functions allow you to perform actions such as read an external text file, test the learner’s OS or display resolution, or navigate to different sections of your program or to other programs. Functions always have some result, which must often be stored in a variable. Using the ReadExtFile function results in all of the text in an external file being read into Authorware. That text must then be stored in a variable if it is to be used in any way. Combining variables and functions allows you to get, track, and create information, which you can then use to customize how the program should behave. For example, you can store all of your learner’s data from a session (itself stored in many variables) in a text file and then use that data at a later date to pick up where they left off. Understanding how to create and use variables and to use functions, is the pre-cursor to using them in your own custom scripts and becoming an expert Authorware programmer. Exercises 1) ___________ are like containers that hold information, while _________ are like tools that operate on that information. 369 Van Eck, TOC Through Chapter 11 2) Match the following types of information with their respective variable category: a. 0, 1, 2, 3, etc. (only) e. Logical Variable b. TRUE or FALSE f. List Variable c. g. Numeric Variable Hello, world (or any text) d. Several properties or items h. String Variable 370 Van Eck, TOC Through Chapter 11 3) Write out the initial values of each of the variables listed in the above question 4) Match each of the operators below with its description: < Make the value at left equal to the value at right - the value at left is equal to the value at right & the value at left is not equal to the value at right * the value at left is less than the value at right / the value at left is greater than the value at right := the value at left is less than or equal to the value at right ^ the value at left is greater than or equal to the value at right | Not the value at right ~ the value at left and the value at right + the value at left or the value at right <= Add the value at left to the value at right <> Subtract the value at left from the value at right = Multiply the value at left by the value at right > Divide the value at left by the value at right >= Join the value/string at left with the value/string at right 5) If I wanted to track how many questions the learner answered correctly in my program, would I be more likely to use a variable or a function? 6) Describe the process for creating a custom variable 371 Van Eck, TOC Through Chapter 11 7) I have a variable called StudentTime that I want to make equal to 10. Write the syntax for doing this below: 8) I have a variable called StudentName that I want to make equal to Richard. Write the syntax for doing this below: 9) Describe the difference between a property list and a linear list: 10) I have a function named MyFunction, which has 2 arguments. The first argument is the name of the variable the function should work on, and the second argument is the number of times it should perform the function. Assume that I want to use this function on a variable called MyVariable, and that I want to perform the function 3 times. How would I write this syntax? 372 Van Eck, TOC Through Chapter 11 Chapter 10: Scripting Overview Scripting allows you to extend the functionality of Authorware beyond the mere tracking of information and advanced interactivity that the use of variables and functions allows. If Authorware can do 80% of anything you want right out of the box, scripting lets you create instruction that makes use of the remaining 20%. As you might imagine, it is this last 20% that is the most complex. This chapter is divided up into sections on scripting with variables, functions, expressions, if-then statements, and loops. The basic process for scripting with each is the same, however, so as you read this chapter the first time, try to identify the principles that are shared by each example rather than attempting to memorize syntax and terminology. As you begin to see these similarities, you will have more cognitive resources to devote learning the syntax for working with each individual element. You will need all the mental energy you can spare to master the content in this chapter. Don’t try to do it all in one sitting; read a section and explore what you have learned for a while, then return. You are likely to need several re-reads and practice opportunities before you begin to be comfortable so be prepared. If it were easy, everybody would be an expert Authorware programmer! Objectives At the end of this chapter, you will be able to: 373 Van Eck, TOC Through Chapter 11 • Use built-in variables and functions to get, store, and modify information relevant to your program and the learner’s progress through it • Create custom variables and write basic programming script to extend the functionality of your program Introduction Now that you understand what functions and variables can do, it is time to examine more closely the rules by which they are created and used, and how you can begin to incorporate them into your own custom code within Authorware. Scripting takes LOTS of practice, and even when you are good at it, RARELY works right the first time. It is as much an art as a science. What follows in this chapter is as much of the science as can be distilled in such a small space. The art will come only from experience, late nights, and lots of caffeine. Scripting with Variables The main thing you need to understand about scripting with variables is that you set their values according to some set of conditions or rules. You can set the value of a variable to a value you choose (e.g., 5 or “Richard”), to a value determined by a mathematical expression (e.g., 5 + 10), or to a value determined by another variable or expression (e.g., MyVariableOne+MyVariableTwo). The syntax is always the same, however, with the variable whose value you want to set appearing on the left, and the value (or variable containing a value) you want your variable to be set to appearing on the right. As you will 374 Van Eck, TOC Through Chapter 11 see in the next two sections, the way this syntax appears may vary on occasion, but the most common examples are presented below: MyVariableOne:=(some value/variable/expression you type here, without parentheses) MyVariableOne=(some value/variable/expression you type here, without parentheses) The first is an example of how you would SET the value of your variable. With it, you are essentially saying “Authorware, make my variable equal to the thing on the right.” The second is an example of how you would DESCRIBE the value of your variable, usually for the purpose of evaluating it in an if-then statement (covered in chapter 10). With it, you are essentially saying “Authorware, my variable equals the thing on the right.” The key to these two different examples lies in the operators used to se or evaluate the variables. Setting & evaluating variables A variable would not be much good if we couldn’t change it’s value, as its name implies changing values. The process of changing a variable requires that you understand the difference between two operators: the assignment operator (:=) and a relational operator called “Equal To” (=). The assignment operator, :=, tells Authorware to make the value on the left of the operator equal to the value on the right of the operator. It is the assignment operator that we use to set/change the value of a variable. The relational operator “Equal To,” (=), is used to describe the relation between the value on the left of the operator and the value on the right of the operator. The difference can be better 375 Van Eck, TOC Through Chapter 11 understood by converting them to a textual equivalent (here’s where those story problems skills from math class will finally be put to use in the real world!): uFirstName:=“Richard” is equivalent to saying the variable named uFirstName SHOULD BE MADE to contain the string “Richard,” while uFirstName=“Richard” is equivalent to saying the variable named uFirstName DOES contain the string “Richard.” In point of fact, you would never write the second example by itself, as it doesn’t do anything on its own. Authorware looks at the first example and says “Aha! I am supposed to store the string “Richard” in this variable called uFirstName.” It looks at the second example and says “This guy thinks the string “Richard” is stored in the variable called uFirstName. So what? Nothing for me to do here.” One way that I used to remember the difference was to convert “=” into “equal to,” and “:=” into “make equal to.” Operators, If-then statements, and loops Before we can go much further with scripting, there a few scripting objects, concepts, and rules you must be aware of, You have already learned about two operators, the assignment operator and one of the relational operators. There are actually 5 categories 376 Van Eck, TOC Through Chapter 11 and 15 types of operators. Operators are the “glue” that hold your script together; they tell Authorware how your variables and functions relate to each other and/or how to interpret them. These operators are used in conjunction with common programming structures, variables, and functions, to create custom script. This next section will look at these operators and two of the more common programming structures: the if-then statement and the loop. Operators. Category Character Description Assignment := Relational = the value at left is equal to the value at right <> the value at left is not equal to the value at right < the value at left is less than the value at right > the value at left is greater than the value at right <= the value at left is less than or equal to the value at right >= the value at left is greater than or equal to the value at right Logical Make the value at left equal to the value at right ~ Not the value at right & the value at left and the value at right 377 Van Eck, TOC Through Chapter 11 | Mathematical Concatenation the value at left or the value at right + Add the value at left to the value at right - Subtract the value at left from the value at right * Multiply the value at left by the value at right / Divide the value at left by the value at right ^ Join the value/string at left with the value/string at right Many of these are intuitive and familiar to you from other domains such as math and composition, but a few bear additional comment and examples. The relational operators should be familiar from high school math, despite the fact that they are not in the “mathematical” category. The number 10 is greater than 3, and can be expressed as 10>3 (for the mathematically challenged, as I am, an easy way to remember these are that the “arrow” always points at the smaller number). Likewise, 5 is less than 7, and can be expressed as 5<7. Because of the vagaries of the QWERTY keyboard, we do not have an easy way to type the more common symbols for “less than or equal to,” (≤), “greater than or equal to,” (≥), or “does not equal,” (≠). To get around this, we type the symbol for greater than (>) or less then (<) followed by the equal sign to represent greater than or equal and less then or equal, respectively. The symbol for “does not equal” is a bit more tricky, because we can’t use the “/” symbol followed by the “=,” as that would mean “divided by or equal,” which is not at all the same thing. Authorware 378 Van Eck, TOC Through Chapter 11 has instead reserved the key sequence “<>” to mean “is not equal to.” In fact, once you type this once, Authorware converts it to ≠ and you will see that symbol the next time you view your script. To make matters a bit more confusing, Authorware also reserves the symbol “~,” referred to as tilde (tild-ah), to mean “not.” You may remember from math class that this symbol is more commonly used to signify “approximately.” In Authorware, however, when placed before a value (or a variable containing a value), this symbol negates that value (e.g., ~7 means “not seven). What makes this potentially more confusing, is that <> and ~ can mean the exact same thing! If I type the expressions uFirstName<>“Frank” and uFirstName=~“Frank”, Authorware will interpret them the same way! The reason, I suspect, for the existence of <> is that as humans, we don’t like double negatives, which the second expression is (uFirstName equals not Frank). This leads us to the second point worth mentioning regarding operators in general, which is that while we are familiar with the use of these kinds of operators with mathematical expressions, we do not have much experience with using them with variables. The key point to remember is that variables are simply containers. As such, they contain values, whether those values are numbers or strings. Accordingly, I can use those variables (which are after all just values of one sort or another) instead of numbers and text, to create expressions. For instance, two of the variables you have already learned about are TotalCorrect and TotalWrong. If a learner has gone through my program and answered 7 questions correctly and answered 3 questions incorrectly, TotalCorrect would be equal to 7, and TotalWrong would be equal to 3. Thus, the expression 7>3 would be equivalent my writing TotalCorrect>TotalWrong. 379 Van Eck, TOC Through Chapter 11 The logical and mathematical operators are also fairly straightforward, once you get used to using “|” to mean “or,” “*” to mean “multiply,” and “/” to mean divide. Thus, I can write 5|6 to mean “five or six,” 5*6 to mean “multiply 5 by 6,” or substitute variables for the numbers (e.g., TotalCorrect+TotalWrong). Likewise, at least with the logical operators, I can write “Frank”|“Joseph” to mean Frank or Joseph, or substitute variables for those strings (e.g., uFirstName). Two caveats to keep in mind regarding these two types of operator, are that the mathematical operators are reserved exclusively for numbers (or the variables that contain numbers), and that the logical operators can be used with numbers, strings, or logical variables (those that equal TRUE or FALSE). The last operator is a bit confusing at first glance. The concatenation operator is used to join variables (i.e., the values they contain) into one thing. This becomes necessary when writing script that normally has only a place for one variable or value but you want to include more than one. The most common example is when you are using a function such as WriteExtFile (you’ll learn about functions later in this chapter). Expressions. What you have learned so far may make sense to you in terms of the rules and concepts, but probably has little practical value to you at this point. There is little apparent value in knowing how to tell Authorware that 7 <> 5, or to multiply 5*7. The value of these rules becomes apparent only when you know how to use them in expressions and if-then statements. To understand the former, you need only put three concepts you already understand together: variables, the assignment operator, and logical, mathematical, and relational operators. Let’s say that I want to tell the learner how many answers they got correct on the second, third, or fourth try (assuming I limited them to 4 tries). There is already a variable for the total number of correct responses (TotalCorrect), 380 Van Eck, TOC Through Chapter 11 and a variable for the total number of correct responses the learner got on the first try (FirstTryCorrect), but nothing for second, third, or fourth try correct. Technically, TotalCorrect minus FirstTryCorrect should leave me with the number of correct responses the learner got on the second, third, or fourth try. I can create a variable called SecondOrGreaterTryCorrect and make it equal to TotalCorrect minus FirstTryCorrect by writing the following expression: SecondOrGreaterTryCorrect:=TotalCorrect-FirstTryCorrect This is equivalent to telling Authorware to “take this variable I created and make it equal to the value of TotalCorrect minus the value of FirstTryCorrect.” Likewise, I could create a variable to track the percentage of correct responses on the first try by writing the following: PercentFirstTryCorrect:=FirstTryCorrect/(TotalCorrect+TotalWrong) Which tells Authorware to take the value of FirstTryCorrect and divide it by the product of TotalCorrect and TotalWrong, which represents the total number of judged responses in the program, and store that value in a new variable called PercentFirstTryCorrect. Another common example of an expression is the use of counters. A counter is a variable that increments by some value (usually 1). You can use it, for instance, to track the number of times a learner has visited a particular section of your program. This can be particularly useful in non-linear instruction in which the learner has control over where and when they go. For example, you may want to skip an introduction to a section if the learner has already seen it once. To do this, you could use a counter, which by default 381 Van Eck, TOC Through Chapter 11 usually equals 0. If the counter were greater than 0 (>0), you could use the GoTo function described in Chapter 9 to skip the introduction. Any numeric variable can be a counter; the key is in the way that you use it in an expression. A generic example would be to create a variable called MyCounter, set the initial value to 0, and increment it by one every time it is encountered by typing the following in a calculation icon: MyCounter:=MyCounter+1 The first time Authorware encounters this, Counter is equal to 0 (the initial value), so it takes 0 and adds 1 to it, making Counter now equal to 1. The next time it encounters this expression, Counter is equal to 1, so it takes 1 and adds 1 to it, making Counter now equal to 2. I can now place the calculation icon with this expression in it anywhere in my file where I want to track it. Of course, you would find it much more expedient to name your counter something like SectionOneCounter, so that you know what it is tracking (e.g., the number of times the learner has visited section one). If-then Statements. In order to implement a counter and GoTo functions as just described, you need to know about if, if-then, and if-then else statements. In our example above, it doesn’t do us much good to know how many times the learner visited a section of the program if we can’t use that information to tell Authorware to skip the section. These statements are sometimes called conditionals, and are familiar to us from everyday life: If I eat my broccoli, then I may have dessert; If it doesn’t rain, then I may play golf, else I will have to stay home. If statements allow us to communicate our wishes to Authorware in a similar fashion. In our counter example above, I would tell Authorware to jump to question 1 if the learner had already viewed the section one introduction, or 382 Van Eck, TOC Through Chapter 11 else to jump to the section one introduction (if not), by typing the following inside a calculation icon at the beginning of section one: If SectionOneCounter>0 then GoTo(IconID@“Q1”) else GoTo(IconID@“Section One Introduction”) Heads Up: Note that the order in which this is written is critical. It is key that I begin with the “if” statement instead of with the GoTo function. In human communication, I could say “go to question one if the learner has visited this section before.” But computers (an Authorware) are quite literal, so if I started with “GoTo(IconID@”Q1”),” Authorware would immediately jump to that icon without reading any further. Likewise, if I wanted to know if the learner had completed all four sections of my program, I could create a logical variable for each section (e.g., SectionOneDone, SectionTwoDone, SectionThreeDone, SectionFourDone) and set them to TRUE at the end of each section (i.e., the place in that section that can only be reached by the learner if they have completed the section). I could then type the following inside a calculation icon: If SectionOneDone&SectionTwoDone&SectionThreeDone&SectionFourDone=TRUE then AllSectionsDone:=TRUE else AllSectionsDone:=FALSE This simply says that if the value of each Section(One/Two/Three/Four)Done variable is TRUE, then set the AllSectionsDone variable to TRUE as well. If this is not the case, then set it to FALSE. Thus, if any one of those sections has not been completed, I’ll know it. I might use such a series of variables in a program where the learner has complete 383 Van Eck, TOC Through Chapter 11 control over when they want to take the final assessment, at which point I can tell them they haven’t completed all the sections yet, and ask if they are sure they want to continue to the assessment. A more in-depth example of the if-then-else statement may help to solidify this concept. Assume that you want to provide performance feedback to the learner not just about total mastery, but about mastery of each individual objective. Authorware does not know anything about your objectives; all it can track is overall performance using variables like TotalCorrect. Imagine that you have one goal with three objectives, each of which is comprised of four questions. You have set a mastery criterion of 75% for each objective. Accordingly, you need to know if they got 3 out of 4 correctly on each objective. To do this, you might create a numeric variable for each question (e.g., Q1, Q2, Q3, Q4, etc.), and set the initial value to 0 for each one. This gives you a total of 12 variables, one for each objective. Inside the map icon for each correct answer, you could place a calculation icon relevant to that particular question that would set the appropriate variable for that question. For example, in the calculation icon I would place inside the map of the correct answer for question one, I would type the following: Q1:=1 Thus, every time the learner got the answer to question one correct, I would know it because Q1 would be equal to 1 instead of 0 (the initial value). The expression would vary for each question (e.g., question two would look like Q2:=1, etc.). After the learner had gone through all the questions, each variable for each question would be equal to either a 1 if they got it right) or a 0 (if they did not, since 0 is the default, or initial, value). 384 Van Eck, TOC Through Chapter 11 Accordingly, I could then create a new variable for each objective (not question), that would be equal to the sum of the variables I used for each question of that objective. For example, I could create a variable called Objective1, and make it equal to the sum of Q1, Q2, Q3, and Q4 like this: Objective1:=Q1+Q2+Q3+Q4 At the end of the instruction, then, I could type the following: If Objective1>=3 then MasteredObjectiveOne:=TRUE else MasteredObjectiveOne:=FALSE This would tell me if they mastered (i.e., got at least 3 correct answers) for objective one. I could then do the same for objectives 2 & 3. You may recognize a simpler way to do this by combining this idea with a counter. I could use MasteredObjectiveOne as a counter, and increment it by one every time they get a question in objective one correct: MasteredObjectiveOne:=MasteredObjectiveOne+1 I could then use this expression for each of the four questions in objective one, which would mean I don’t need to create a separate variable for each (i.e., Q1, Q2, Q3, and Q4). I could then create another counter for each objective. At the end, these counter variables would be equal to the number of correct responses in each objective. Finally, if I want to know how they did overall on this goal (which is comprised of these three objectives), I could create a variable called Goal1 and make it equal to TRUE if 385 Van Eck, TOC Through Chapter 11 Objective1, 2, and 3 were all mastered. In the first example (i.e., without using a counter), this could be accomplished by typing the following: If MasteredObjectiveOne=TRUE & MasteredObjectiveTwo=TRUE & MasteredObjectiveThree=TRUE then MasteredGoalOne:=TRUE else MasteredGoalOne:=FALSE In the example where we use the variables as counters, it might look like this: If MasteredObjectiveOne>=3 & MasteredObjectiveTwo>=3 & MasteredObjectiveThree>=3 then MasteredGoalOne:=TRUE else MasteredGoalOne:=FALSE Here is another example of the ways you can combine variables and if-then statements. I once had a project designed to teach how to anchor a boat. The correct way to anchor the boat required the learner to perform seven steps in the correct sequence. I had decided to make the instruction a simulation game, in which the learner could navigate around a boat and perform any of the seven steps in any order. Each step had one correct and 2 or more incorrect possible responses. I therefore had to know not only whether they had gotten each step right, but also what order they had performed the steps. To check this, I created a variable for each step called StepOneDone, StepTwoDone, etc. These were logical variables, set to TRUE or FALSE, with FALSE as the initial value. Upon performing each step, I used the status of the variables for the steps that should have occurred prior to the current step if the learner had performed them in the correct 386 Van Eck, TOC Through Chapter 11 sequence. For step one, the variable StepOneCorrect was set to TRUE if, and only if, the learner had gotten step one correct AND the status of all the other step variables was FALSE, indicating that they had not performed any of those steps prior to completing the first step. The script looked like this: If StepTwoDone=FALSE & StepThreeDone=FALSE & StepFourDone=FALSE & StepFiveDone=FALSE & StepSixDone=FALSE & StepSevenDone=FALSE, then StepOneCorrect:=TRUE else StepOneCorrect:=FALSE I placed a similar statement inside the correct response map for each of the other steps, but modified it to check for both the correct status of prior steps and the done status of future steps. For example, the script inside the correct response map for the fourth step looked like this: If StepOneCorrect=TRUE & StepTwoCorrect=TRUE & StepThreeCorrect=TRUE & StepFiveDone=FALSE & StepSixDone=FALSE & StepSevenDone=FALSE, then StepFourCorrect:=TRUE else StepFourCorrect:=FALSE Note that I don’t need to check the status of StepFourCorrect here because I am in the process of setting it. At the end of the program, I created another logical variable called CorrectSolutionStatus and used the status of all the other correct variables to set it: 387 Van Eck, TOC Through Chapter 11 If StepOneCorrect=TRUE & StepTwoCorrect=TRUE & StepThreeCorrect=TRUE & StepFourCorrect=TRUE & StepFiveCorrect=TRUE & StepSixCorrect=TRUE & StepSevenCorrect=TRUE, then CorrectSolutionStatus:=TRUE else CorrectSolutionStatus:=FALSE Tip: You may have noticed that it is unnecessary to include the “else” portion of my script example, since if the first set of conditions aren’t true, then the variable won’t be changed from its initial value of FALSE. If you did, congratulations! You are beginning to get used to the logic of scripting. However, it is good practice to specify every part of your logic when scripting, just in case there is a way for your variables default value to change that you have not thought of. By including the “else” portion of my script, I have ensured that the value will be set correctly no matter what its value is at the time this script is encountered. There is no limit to the ways in which you can combine variables, numbers, strings, and operators to create new values, as long as you adhere to the rules and nomenclature for doing so. It is a bit confusing initially, but well worth the trouble to learn, as scripting like this will be required by virtually all but the most rudimentary of interactive instruction. Loop Statements. Unlike the scripting tools and concepts described above, you can get by without mastering loop statements, linear lists, and property lists. These concepts and tools are incredibly powerful and efficient, however, and if you take the time to learn them, you will be well on your way to “expert” status as an Authorware programmer, with all the rank, privileges, responsibilities, and big bucks thereunto. If there is one thing I would do differently about my early study of Authorware, it would be to master these 388 Van Eck, TOC Through Chapter 11 concepts right away. They would have saved me untold hours of coding had I been able to use them. I was able to accomplish everything I wanted to do without them, but at the cost of more time and mental stress than was necessary. Loops appear quite alien at first glance, and don’t much improve with a second look either. But like many things in Authorware, what looks initially difficult is in reality very simple. This is because every loop is exactly the same, script-wise, as every other loop. A loop, as its name implies, is a piece of script that repeats (loops) a certain number of times. All loops begin with the phrase “repeat with” or “repeat while” on the first line of the loop, and end with the phrase “end repeat,” on the last line of the loop. These two lines, the first and last line of a loop, form a kind of “sandwich” around what you want to have happen during each cycle of the loop. The key is in specifying how many times the loop should repeat. You can specify the number of times a loop should repeat by using a counter, some condition, or a list. For example, the following loop will cause the computer to beep 3 times: Repeat with Counter:=1 to 3 Beep() end repeat The phrase “1 to 3” is a range that specifies how often the loop should repeat. In this case, it will repeat three times, because I created a variable called Counter and told Authorware to increment it by one from its current value until it equals 3, at which point the “end repeat” cuts in and the loop is finished. 389 Van Eck, TOC Through Chapter 11 I can also create a loop that loops until a condition is satisfied (e.g., a variable I specify reaches a certain value). For instance, I could accomplish my last example by writing the following: repeat while Counter<=3 Beep() Counter:=Counter+1 end repeat The condition is that Counter should be less than or equal to 3. Since I increment Counter by 1 each time through the loop, it will eventually be greater than 3, and so Authorware will exit the loop. You can use any kind of variable for your condition, not just a counter. The last type of loop is one that makes use of a list variable. This type of loop is less common than the conditional loop, but is useful when you need to repeat some action with each element in a list. For the purposes of simplicity and illustration, let’s say that, you want to find the product of all the numbers in a list (i.e., you want to multiply each number together in sequence). Your list variable, called MyList in this case, is comprised of the numbers 13, 25, 36, and 28, and you have already created it. The following script would perform this action for you: ListProduct:=1 repeat with X in MyList ListProduct:=ListProduct * X end repeat 390 Van Eck, TOC Through Chapter 11 Let’s examine this script line by line to see how it works. The first line sets the value of a variable called ListProduct to 1. ListProduct is the variable I plan to use in my loop, and this line sets the variable so that it starts where I need it to. While many variables might start at zero, I need this one to start at 1, so that my multiplication comes out right. If I started at zero, none the math would work because any number times zero will be zero. The second line is the first part of our loop (which always starts with repeat with or repeat while). Think back to high school algebra for this next part. Remember how you wrote equations to solve for “x?” The letters x and y and z were used to represent an unknown number that could be determined (i.e., solved for) by some set of rules or procedures. In the case of our list loop, we likewise use the letter “X” to represent an unknown number in MyList. “X” is unknown, because it varies each cycle through list. The script will loop as many times as there are elements (in this case, numbers) in the list variable. The first time through the loop, “X” will equal 13; the second time through it will equal 25; the third time through it will equal 36, and so forth. The third line takes the variable ListProduct (the one I made up and set to 1 on the first line) and makes it equal to ListProduct multiplied by the current number (X). Let’s see how this works. The first time through the loop, X is equal to 13, and ListProduct is equal to 1. Therefore, ListProduct will be set to 1 X 13, which is 13. If we had not set the initial value of ListProduct to 1, our first time through the loop would result in a number other than 13. Since we need to multiply each number in our list by the succeeding number, ListProduct MUST equal the first number after the first pass, so that when it goes through again, we will be multiplying the second number by 13 (our first number). 391 Van Eck, TOC Through Chapter 11 Now the loop goes back to the “repeat with…” line, only now ListProduct is equal to 13, and X is equal to 25 (the next value in the list), so ListProduct will be set to 13 X 25, which is 325. The loop now goes back again (because there are still numbers in the list), and now ListProduct will be made equal to 325 X 36, which is 11,700. On the final loop (because we are now on the last number in the list), ListProduct will be made equal to 11,700 x 28, which is 327,600. Because we have used all the numbers (Xes) in our list, the loop is now finished and hits the “end repeat” line, causing the loop to finish. Scripting with Functions If you are feeling a bit overwhelmed by all of this at this point, don’t feel too bad. Scripting is the least intuitive and most complex aspect of working with Authorware, and it takes lots of time and practice. Take what you do understand and practice with the easy stuff; creating and setting custom variables, performing calculations and basic expressions (Variable1:=Variable2+Variable3) until you are comfortable with them, and work your way up through if-then-elses and loops. In the meantime, it may hearten you to know that it actually gets easier from here on out. This is because you have learned the basic concepts and rules for writing script. The next few sections will highlight only the specific syntax and rules needed for particular implementations of these rules and concepts. We begin with an overview of integrating functions into your script. Functions always follow the same syntax, which is to list the function, followed immediately by some set of arguments inside parentheses, like this: 392 Van Eck, TOC Through Chapter 11 SomeFunction(argument1, argument2) In some cases, there may be arguments that themselves have options, but the basic structure remains the same even in those cases. In an earlier example, we used the function WriteExtFile. This function has as its arguments, the name of the file and the thing we want to write to the file: WriteExtFile(“My Text File.txt”, uFirstName) In this case, I have specified that Authorware should create a file called My Text File.txt, and should write in it the contents of the variable uFirstName. This is possible because in many cases, you can combine functions with variables. In this case, I may have hundreds of learners going through my program; obviously, many will have different first names! It would do me little good if I had to specify the text I should write for each one. Instead, I can use a variable for each learner’s first name. The syntax for each individual function changes slightly, but is always defined for you in the Functions window. Scripting with Linear & Property Lists Scripting with linear lists differs little from scripting with any other variable. They are created in the same manner and given the appropriate initial value. They differ only in the manner in which they are set or evaluated, and in the way that they are initialized. Initializing List Variables. When you create a numeric, logical, or string variable and set their initial values, you have essentially told Authorware what kind of variable it is 393 Van Eck, TOC Through Chapter 11 AND set it’s initial value. You may then work with this variable at will. For LIST variables, however, the initial value when you create the variable is does NOT serve to actually set the initial value; it only defines the type of variable. For this reason, you MUST initialize any list variable prior to using it. To do this, you set the variable in question to be equal to the initial value. For linear lists, you use [], and for property lists you use [:]. Here is an example of each: MyList:=[] MyList:=[:] These lines MUST occur sometime in your program BEFORE you begin working with that list. You need only do this once in the file, however, so it is good practice to do so at the beginning of your program. Tip: In fact, it is good practice to initialize all your other variables at the beginning of your program. The syntax for doing so is Initialize(), which tells Authorware to set the value of all variables (except lists) in the file to their initial values. If you want only to initialize one or more variables specifically, you can type the names of those variables inside the parentheses, separated by a comma, for example, Initialize(VariableOne, VariableTwo,….). This does NOT hold true for list variables, however, so you must also type the lines as described above for any list variables you use in your file. Adding Values to List Variables. In addition to the manner in which list variables must be initialized, they differ from other variables in the manner in which they are set, as you have already seen earlier. List variables are usually set and evaluated by using functions. 394 Van Eck, TOC Through Chapter 11 The functions for adding items to linear and property lists are AddLinear and AddProperty, respectively, and the syntax looks like this: AddLinear(MyLinearList, uFirstName, 5) AddProperty(MyPropertyList, #uFirstName, uFirstName) In the first case, we are adding the value of uFirstName (a variable we created) to a linear list variable called MyLinearList (which we initialized earlier), into the 5th position in that linear list. If we don’t include the index position number as the third argument, then the value of uFirstName (or whatever we are adding) will be added to the end of the list, by default. In the second case, we are adding the value of the variable uFirstName to a property which we have also named uFirstName. We could also have specified a string or number, or logical value to write instead of a variable. There is a much shorter way to add information to a list, however. The following script is the equivalent of the two examples above: MyLinearList[5]:=uFirstName MyPropertyList[#FirstName]:=uFirstName Note that in the first case, you MUST specify an index position for the syntax to work. This is not only shorter, but easier to remember, because it looks more like how we set other variables. Retrieving Values from List Variables. Retrieving values from your list requires the use of a function to get the value, and the use of a variable to store that value. The 395 Van Eck, TOC Through Chapter 11 functions that you use for this are ValueAtIndex and PropertyAtIndex. You use these functions to get the value you are looking for, and then you store that value in a variable. In the examples above, we stored the contents of the variable uFirstName in the fifth index position of a linear list and in the property called FirstName in a property list. To retrieve those same variables from each list, then, I could write the following: uFirstName:=ValueAtIndex(MyLinearList, 5) uFirstname:=PropertyAtIndex(MyPropertyList, #FirstName) As with adding to lists, there is a shorter and more reliable way of achieving the same results: uFirstName:=MyLinearList[5] uFirstName:=MyPropertyList[#FirstName] Again, with the linear list, you MUST specify the index position, which of course means you must keep track of that index position. For this and other reasons mentioned earlier, I highly recommend that you use property lists over linear lists whenever possible. Sorting Lists. It is possible to sort linear and property lists, in ascending or descending order. Sorting works according to the rules of alphabetizing, which means that (when sorting in ascending order) numbers will come first, followed by items starting with the letter a through z following. For this reason, you may want to consider storing strings and numerical values in separate lists if you intend to sort them at some point. 396 Van Eck, TOC Through Chapter 11 To sort a linear list, you use the function SortByValue. For property lists, you use the function SortByProperty. In both cases, there are at least two arguments. The first argument specifies the list (for linear lists) or the property (for property lists) that you want Authorware to sort for you. You can sort multiple lists or properties by listing as many lists or properties as you want, each separated by a comma. The second argument specifies the order you want to sort the list(s) or property(ies); TRUE means sort in ascending order, while FALSE means to sort in descending order. The default for this argument is TRUE, and if you leave it blank, Authorware will sort your list or property in ascending order. Sorting only makes sense if you have a list with multiple entries of the same sort, such as a list that stores the last names of all of the learners who have gone through your program. Up until now, our examples have been for lists that are intended to store the data for a single user, so sorting those lists does not make much sense. To understand the process of sorting a list, let’s assume that we have a list called FirstNameLinear and one called FirstNameProperty. In these lists, we have been storing the learners’ first names, like this for property list: FirstNameProperty[#1]:= “Richard” FirstNameProperty[#2]:= “John” FirstNameProperty[#3]:= “Tom” and like this for a linear list: FirstNameLinear [1]:= “Richard” FirstNameLinear [2]:= “John” 397 Van Eck, TOC Through Chapter 11 FirstNameLinear [3]:= “Tom” where the properties are numbered only for the sake of distinguishing one entry from the next (i.e., there is no particular importance to the order). In both cases, I would now have a list with the names stored in them in the order Richard, John, Tom. To sort these lists, we could type the following: SortByValue(uFirstName, TRUE) SortByProperty(uFirstName, TRUE) In both cases, the lists would then appear in the order of John, Richard, Tom. Heads Up: When you sort a linear list, you sort the items in that list. Doing so changes the index position of each item. For example, after sorting our linear list of first names, John is now in the first index position, Richard in the second, and Tom in the third. Any script that makes reference to an item by its index position will now point to a different item in that list! Although sorting a property list results in the same order, because we can refer to each element by its property name, we once again do not need to know its relative position in the list. Additional List Functions. there are several functions that can be used with lists, all of which can be viewed by selecting the List category from the Functions window. A few of the more commonly used ones appear in the table below: Function CopyList Description makes a copy of your list before you manipulate it as a backup 398 Van Eck, TOC Through Chapter 11 DeleteAtP deletes the property itself roperty FindPrope rty ListCount returns the number of elements in your list (property or linear) PropertyA tell you position of a property SetAtInde replaces a value at a certain place in your list tIndex x List converts a string into a list The last function, List, bears additional explanation, as it is critical when writing your lists to an external file for the purposes of later retrieving that list. When you send a list to an external file, it is automatically converted into a string. In order to turn that string back into a list variable, you must use the List function (to turn the string into a list) in conjunction with the functions ReadExtFile (to read the file which contains the string you want to convert) and GetLine (to get the string from the line in the file in you wish to read in order to convert it into a list). The following example reads in the first line of an external text file and uses it to set the value of a linear list variable called MyList: ExternalFileContents:=ReadExtFile(“My External File.txt”) LineOneContents:=GetLine(tempVar, 1) MyList:=[] 399 Van Eck, TOC Through Chapter 11 MyList:=List(LineOneContents) Note that I had to initialize MyList prior to storing anything in it. Making the Connection Variables, functions, and scripting allow you to extend the functionality of Authorware in virtually unlimited ways. In terms of instructional programs, the true value of scripting lies in your ability to customize the information that you are able to track, and the things that you can then do with that information. In particular, they allow you to create individualized, adaptive instruction through the tracking and use of time, accuracy, and path. Time Built-in variables like SessionTime and TimeInInteraction allow you to track how much time your learner is spending in your program, and at which particular places. You can track this time over several sessions to get a good estimate of how long it takes the average learner to complete each section (which is always good information to provide the learner to help them manage this time). But you can go further with this, too. Imagine that you track not only how long each person spends in each section of your program, but that you then correlate that with performance assessment scores on the related portion of the assessment. This would allow you to provide future learners with information about how long it generally takes to master that particular section. You can also use time to determine when and if to offer remediation. If you know that it takes the average learner 15 minutes to complete one objective, and the current learner 400 Van Eck, TOC Through Chapter 11 has spent that long and is only half-way through the section, you could have a message box pop up asking if they want to read some extra information on the topic. For example, you could use TimeInInteraction in conjunction with an if-then statement like this: If TimeInInteraction@“QuestionOne” - AverageLearnerTime>=300 then GoTo(IconID@“Ask if Need Help”) where AverageLearnerTime is a custom variable I have been using to track how long it takes the learners who go through the program to complete that section, and 300 represents seconds, which is how Authorware measures time by default. Alternatively, if they are spending much less time per section but still getting the practice items correctly, you could ask them they want more advanced questions. Accuracy Built-in variables such as TotalCorrect, and CorrectChoicesMatched allow you track learner performance during practice and assessment. You can also create your own custom variables to track performance on individual questions or objectives, as well. During practice, this information could be used to suggest (or enforce) remediation. Perhaps you set a criterion of 75% on the practice items as a prerequisite for attempting the assessment portion of the instruction. Maybe you have a pool of 20 practice questions for one objective that you draw from at random (using a decision icon, which you will learn about in Chapter 11) 4 at a time. You set a 75% performance rate for each objective; if they miss more than one question in a group, their score would be less than 75%, so you would draw another question and present it. You could continue this process 401 Van Eck, TOC Through Chapter 11 until they meet the 75% criterion or miss so many that you determine they need more help. Being able to track this kind of performance information is also useful for testing prerequisite skills and knowledge. It does the learner little good to know only that they don’t have one or more of the prerequisites for the current program, but being able to tell them which specific questions they missed and which corresponding skills they need work on makes your instruction much more useful to the learner. During the assessment portion of your program, you can use performance on individual questions (by tracking each with a custom variable) to provide feedback to the learner about which questions they missed. Additionally, you can map which questions go with which objective to give them feedback about the objectives they need work on. Finally, you could use all of this information to set custom variables that would then take the learner (or offer them the opportunity) back to only the relevant portions of the program to review, making sure that you provide them with new versions of the practice items where possible. Path You can also use variables to track the path that learners take through non-linear instruction. Such information can provide you with valuable feedback about your interface and program structure; how often do people select the help function? After selecting it once, do they continue to select it? Such information can tell you if you need to change the placement or means of access to different sections, prompt learners to consider selecting sections that are often ignored, or modify these problem sections. 402 Van Eck, TOC Through Chapter 11 When you combine this kind of tracking information with performance scores over time, you can also get a an idea of the optimal path through the instruction. In other words, if there is a path taken by most learners who master the instruction, you can suggest this path to new learners, or modify the program to follow that path. You can use all of these features in combination to make responsive, adaptive instruction that would be difficult or impossible to do without the benefit of variables, functions, and scripting. Imagine extending this by also tracking performance on pretest scores, level of expertise and experience, gender, age, and other characteristics and using the relation of all of these factors to performance, path, and time to create learning programs specific to each individual. Once you have mastered the basic concepts, you are limited only by time and the goals of your instruction. Case Study I wrote an instructional simulation game using Authorware as part of my dissertation. In this game, students took on the role of a middle-school aged child who was helping their aunt and uncle fix up a room in a house, as part of their business. In this game, the learner could move at will around the room, measuring walls, ceilings, doors, and windows. The goal was to determine how many cans of paint and how many rolls of wallpaper border were needed to decorate the room. Each learner was assigned a specific ID number, which was used to track their information. In total, I was writing 214 separate variables to an external file. This external file was supposed to contain all of the records of every learner who had gone through the game on that computer. Each individual variable had to be separated by a 403 Van Eck, TOC Through Chapter 11 comma, so that my statistical program could read each one as a separate variable, and each learner had to have all of their data appear on one line of the text file. In the interests of space, I will only include the syntax for the first and last parts of my code, which took up 53 lines in a calculation window: AppendExtFile(FileLocation^"Session2.txt", StudentIDNum^","^¬ TimeInInteraction@"Calc79"^","^¬ TimeInInteraction@"Calc80"^","^¬ ……………missing code here…………………. Onehundredeight^","^"Finished"^Return) The function AppendExtFile was used so that I could add the current learner’s data to the end of the file, rather than creating a new file. Remember that AppendExtFile will create a new file if one does not exist. The first argument inside the AppendExtFile function, FileLocation, is used to specify that the file should be looked for (or created) in the same location as that in which the current program (my math game) resides. The second argument specifies the name of the file to create, in this case, Session2.txt. The third argument specifies what should be written to the file, in this case, a variable called StudentIDNum, which I created to hold their ID number. Note that each of these arguments is separated by a comma. What follows this last argument is all of the variables I wanted to write to the external file. I have connected all of these using the concatenation operator (^), which tells 404 Van Eck, TOC Through Chapter 11 Authorware that more is coming and it should not stop looking yet. Theoretically, I could have just written all the variables to the file by writing the name of each variable followed by the concatenation operator and the name of the next variable (e.g., variable1^variable2^…..). But remember that I need to have each variable separated by a comma for my statistical program. Each of my variables has some value, usually a number; if I wrote them all to the file as described above, a series of the numbers 10, 23, 50, and 72 would appear in my file as 10235072. My statistical program would have no way of knowing where one number stops and the next begins. Accordingly, after each concatenation operator, I wrote “,”. The quotes signify to Authorware that what follows is a string (i.e., some text characters), not a variable. Immediately after each of these, I had to use another concatenation operator to tell Authorware to expect more strings or variables. This results in a pattern of variable1^”,”^variable2…. Because my calculation window was not wide enough to display this syntax for 214 variables, I wanted to “wrap” the text around so that it all fit in the width of my window. Remember that functions always operate on the arguments that appear in parentheses to the right of the function? That means that all 214 of my variables, with the concatenation operators, and the strings of commas, must appear inside the parentheses. I could not just hit a return for a new line each time, because when Authorware hits the end of a line, it thinks the function is done, and it expects (demands!) a right parenthesis. To accomplish this, I have to use the special character, ¬, to signify that I want a new line but that Authorware should treat what follows as the same line. This pattern is thus 405 Van Eck, TOC Through Chapter 11 repeated until all my variables have been written to the file, at which point I type the word Return, which tells Authorware to insert a return (i.e., a new line) in the external file. I do this so that my statistical program will know that each line is a separate learner, or case. For my purposes, this code accomplished what it was intended to accomplish. This code could be modified to serve as an external set of records for each learner that could be read back in to the file in future sessions, and it may be of some use to you to see how that could be done. To accomplish this, we would use the ReadExtFile function (to read the file in), a repeat loop using the GetLine and GetNumber functions, and an if-then statement. To determine how we know this, lets break down our task into plain English: • We need to have the learner type in their ID Number so we can search our records (the external file) for it • We need to read the file called Learner Records.txt into our program • We need look at each line of that text file (because each line is one learner’s record) one at a time • We need to look at the first number in the line we are looking at to see if it matches the ID number the current learner has typed in (i.e., if this line contains the records for this learner) 406 Van Eck, TOC Through Chapter 11 • If it matches that number, then we need to read each addition number of that line one at a time and assign them to the variables in our file (remember that each number is the value of a variable that was written to that file, so we now must reverse the process and read those numbers back into the appropriate variables). This assumes that there are no string variables in the file we want to read. We can accomplish goal one by using a text entry response, which you learned about in Chapter 6, and storing what they type in a custom variable. Goal two can be accomplished by using the ReadExtFile function to read the text file to which we last wrote the learner records into a variable in Authorware. Goal three can be accomplished by using the GetLine function on the variable that now contains the contents of our external file. We can store the result (the line) in a custom variable. We’ll have to put this in a loop of some kind, because we want to look at each line of the file, and we don’t know how many lines there are. Goals four and five can be accomplished by using the GetNumber function on the variable that contains the line we just read. We can store that number in a custom variable. We then need to compare that number to the number that the learner typed in and, if it matches, read in and set all the variables. We can do this with an if-then statement. Here is an example of how that code might look, with the code in boldface and comments below each line to explain it in italics. We assume that we have already asked the learner to type in their ID number, and that we have stored that number in a variable called StudentIDNum: 407 Van Eck, TOC Through Chapter 11 TempVar:=ReadextFile(“Learner Records.txt”) --reads the file and stores it in a custom variable called TempVar repeat with i:=1 to LineCount(TempVar) --Begins a loop that will happen as many times as there are lines in TempVar; i is used as an unknown value that changes with each line/loop CurrentLine:=GetLine(TempVar, i) --Gets line i from the variable TempVar and stores it in a custom variable called CurrentLine. i varies with each loop/line of TempVar. CurrentNumber:=GetNumber(1, CurrentLine) --Gets the first number from CurrentLine and stores it in a custom variable called CurrentNumber. if CurrentNumber=StudentIDNum then TimeInInteraction@"Calc79:=GetNumber(2, CurrentLine) TimeInInteraction@"Calc80:=GetNumber(3, CurrentLine) TimeInInteraction@"Calc81:=GetNumber(4, CurrentLine) end if --If (and only if) the current number (the first number in the line we are looking at) is equal to the number the student typed in, then read in each additional number set the variables accordingly end repeat --Closes the repeat loop Summary Variables and functions allow you to track, store, and use data about the learner and their interaction with your instruction. Scripting is the glue that allows you to use that information to create customized, responsive instruction. The key to working with variables and functions in your script is to understand the syntax for each. Operators are symbols that allow you to create expressions (relational and logical operators) and change variables (the assignment operator). Functions always begin with the name of the function, and are immediately followed by a parenthetical expression with one or more arguments, each of which tells Authorware what to perform the action on, and in what manner. Functions always return some result, which in most 408 Van Eck, TOC Through Chapter 11 cases must be stored inside a variable using the assignment operator so that you can act on that result. None of these things would be of much help if we couldn’t control the manner in which this information is changed or used. The script elements that allow us to do this include the if-then, and loop statements. If-then and if-then else statements allow us to specify a set of conditions under which we want Authorware to perform some action. Loops allow us to automate a repetitive action a certain number of times, whether the number of times is known to us in advance, or is determined by some variable such as the number of items in a list or the number of lines in a string we obtain from an external text file. Finally, there are a variety of ways to add, remove, delete, sort, or otherwise modify list variables, which in turn can be used in script to help us track and organize large amounts of learner data within and between sessions. The time it takes to master all of these elements, while not inconsiderable, pays off in our ability to create adaptive, learnercentered instructional programs. Exercises 11) Create a program in Authorware that asks the user for their first name and stores what they type in a custom variable. 12) User AppendExtFile to save some data to an external text file. 13) How might I add an item to a linear list? To a property list? 409 Van Eck, TOC Through Chapter 11 14) How would I retrieve items from a linear list? A property list? 15) Describe the purpose of an if-then statement 16) Describe the purpose of a loop 17) If I want to look at every word in a string variable, but I don’t know how many words to expect in that string, would I be more likely to use an if-then statement or a loop? 18) Describe, in plain English, what the following script will do: repeat with i:=1 to LineCount(MyText) CurrentLine:=GetLine(i, MyText) AppendExtFile(“Line.txt”,CurrentLine^Return) end repeat 19) Take the program you created in the first half of the book (or any other program you have with correct and incorrect responses in it) and have the program write the following data out to an external file: The last name of the learner, time the learner spent in the program, the number of correct responses made on the first attempt, and the number of incorrect responses they made. The file should contain multiple records (i.e., it should keep data for different learners separate from each other, but stored in the same text file). 20) Add a login screen that asks for the learners last name to the program you used for the previous question. Use what the learner types in to search the file you created to store their records. When you find their record in that external file, use it to 410 Van Eck, TOC Through Chapter 11 read in all of the variables you wrote to the file when they last exited the program. Refer back to the Case Study in this chapter as needed. 21) I have a list called MyList. In it, I have stored the numbers 1, 4, 10, and 13. How many times will the following loop repeat? Why? repeat with X in MyList AddNumber:=AddNumbers+X end repeat 411 Van Eck, TOC Through Chapter 11 Chapter 11: Knowledge Objects, BOTS, and Commands Overview This chapter will discuss how to use existing Knowledge Objects (KOs) and the basic process and theory behind creating your own KOs. KOs allow you to add functionality to your program through “wizards” that walk you through what are often complicated processes in a step by step fashion. KOs are advantageous to you as a programmer, not to your learners. They allow you to add features that would normally be beyond the abilities of a novice programmer, which can be useful in a team-based authoring environment. Creating KOs, and their brethren Commands and Bots, requires significant knowledge of scripting in Authorware, most of which is beyond the scope of this book. Joe Ganci and Chris Swenson’s book, “Extending Authorware for v6: Commands, Knowledge Objects and other Extensions,” should be available by the time you read this called, and is required reading if you intend to get into development of KOs, BOTS, and Commands. This chapter will give you enough of an overview about how the basic process of creating KOs, BOTS, and Commands to allow you to decide if and how much you want to become involved with them. You must be familiar with variables, functions, and scripting to proceed with this chapter. If you are not, read (or re-read) Chapters 9 & 10. Objectives At the end of this chapter, you will be able to: • Discriminate between KOs, BOTS, and Commands 412 Van Eck, TOC Through Chapter 11 • Define KOs, BOTS, and Commands • Add and use pre-existing KOs and Commands to your piece • Describe the process of creating your own KO KOs, Commands, & BOTS, Defined KOs, Commands, and BOTS are all ways to automate procedures and processes in an Authorware program. There are key distinctions between them, however, and you must understand their differences and similarities in order to use them and create your own. While we cannot cover the nuts and bolts of creating Commands and BOTS in any detail here, an overview of what each does will help us discuss the basic process for creating a KO, later. BOTS BOTS are the building block for all three types, so we will start there. While this next section is fairly long, once you understand how a BOT functions, you will be able to extend that knowledge almost immediately to Commands and KOs, so it is worth the time you spend. BOTS get their name from the word “robot,” which reflects their basic functionality: to automate repetitive, tedious tasks in a fraction of the time it would take a human to do the same thing. BOTS are calculation icons that you place at the top of your flowline. These icons contain script code that can perform a variety of functions. They are triggered when you run your program and Authorware encounters the BOT/calculation icon. 413 Van Eck, TOC Through Chapter 11 In order to understand what a BOT does, you have to know about dives. Dives are pieces of code that “dive” through an entire Authorware file, looking at each individual icon in that file, getting information about it, and moving on to the next icon. While intimidating at first glance, they are essentially just big loops that have been written for you already; all you have to do is put the stuff in the middle that you want Authorware to perform during each cycle (iteration) of the loop. The loops that are used by a dive are written in such a way that they will loop one time for every icon they find in the file. This is good, because it means you can use them with any file, regardless of how many icons there are. Luckily, some very smart programmers have already created these dives for us, so we don’t have to know how to create them. This is good, because dives can be pretty intimidating to the novice programmer (see Figure X). Figure X. Example of a Basic Dive. Tip: Although it is not necessary to understand the intricacies of a dive script in order to use it, you may find it helpful for future discussions if you understand the concept of 414 Van Eck, TOC Through Chapter 11 “Parents” and “Children.” As you might guess, the names reflect relationships between two objects/icons in Authorware. A parent is an icon that has other child icons attached to it in some way. Six icon types can have children: interactions, maps, frameworks, sound icons, digital movie icons, and decision icons. An example might be an interaction with several responses; the interaction icon itself is the parent, and the responses attached to it are its children. Likewise, a framework icon would be the parent to every page that is attached to it. As intimidating as they are, many elements of a dive should be familiar to you: If-then statements, functions like GetNumber and GetLine, repeats, and properties. We refer to icons in our files by the titles we give them. Authorware, on the other hand, would rather work with numbers than language. Every icon in your Authorware piece has it own, unique, ID number. This is called the Icon ID. Once we have the icon ID, we can do anything we want to that icon: delete it, copy it, paste it, rename it, move it, or change any of its properties. We have no way of predicting what an icon ID number will be, because it is assigned by Authorware according to a process that would be too difficult for humans to predict. We can, however, ask for the icon ID of any icon. Dives function in part by getting the icon ID of every icon in the file. They do this in a loop process, one icon at a time, so we can then modify each icon in the file. The only part of the Dive you need to worry about is the part that appears in blue between the dashed lines “Do custom stuff here” and “end of doing stuff.” Any code that you type in this space will be executed on every single icon in the file. A BOT, then, is a dive that someone has added some custom script to perform an action or series of actions on icons 415 Van Eck, TOC Through Chapter 11 in any file. To run a BOT, you need only copy the calculation icon to the top of your flowline and run the program. Tip: There are two kinds of dives: Depth and Breadth (some people also use the terms Level and Sideways, respectively). Depth dives start at the flowline level of the piece and look at every icon on that level. It looks at all the “Parent” Icons first (e.g., maps with things inside them, interactions with responses attached, frameworks with pages attached, etc.) then moves on to any “Child” Icons (e.g., the things inside a map, the responses attached to an interaction, and the pages attached to a framework). It then proceeds on through each successive level until all icons have been examined. Breadth dives start with the first icon on the flowline and “drill down” through all levels of that icon (including all Parents and Children) until it has seen them all, and then moves on to the next icon on the flowline. In other words, and breadth dive preserves the relationship between each Parent Icon and its children, while a depth dive takes a top down approach by level. In addition to knowing how the basic scripting language in Authorware works, there are three main components that you will use in a BOT: Variables, Functions, and Properties. Chapters 9 & 10 describe these concepts in some detail, so the following discussion will address only the role these components play in a BOT. BOTS & Functions/Variables I can type anything I want to do to each icon (or types of icons I specify), by writing my own code in the space between those dotted lines in the middle of the BOT. For instance, 416 Van Eck, TOC Through Chapter 11 if I wanted to add a copyright statement to each calculation icon in my file, I would type the code in the space between those dashed lines. That code might look like this: ---------------------------------------------Do custom stuff here ---------------------------------vCalcContents:=GetCalc(_ChildIcon) vCalcLastLine:=LineCount(vCalcContents) if GetLine(vCalcContents, vCalcLastLine) <> “Copyright R. Van Eck, 2004” then SetCalc(_ChildIcon, vCalcContents^Return^“Copyright R. Van Eck, 2004”) end if ---------------------------------------------End of doing custom stuff----------------------------Heads Up: My purpose here is NOT to teach you how to write this code—that requires more practice with variables, properties, and lists than can be reasonably addressed in one chapter. It is intended as an illustrated example for you to follow along with. This code makes use of three functions and one variable. Open the functions window while you read the next section. Scroll down the list of functions to find the one called “GetCalc.” This is one of the functions used in the example above. Read about this function, and then find the others listed in the earlier example (GetLine and SetCalc). Now let’s examine the example code above line by line to see what each is doing. The first thing I have to do if I want to add a copyright statement to the end of every calculation code in my file is to retrieve that code. Remember that the dive is going through my file one icon at a time, and everything I type in between the blue dashed lines will be performed on each icon, one at a time. To do this, in the first line, I created a variable called vCalcContents and stored the contents of any calculation code that is part of the current icon (the one the dive routine is looking at currently). The BOT script (the stuff outside where we type our own code) has determined that the current icon the BOT is looking at in each loop should be referred to as _ChildIcon. GetCalc is a function that 417 Van Eck, TOC Through Chapter 11 will retrieve this code from an icon, whether that icon is a calculation (with code inside it) or an icon with a calculation ornament (code attached to an icon). Now that I have the code for the current icon (stored in my variable, vCalcContents), I can work with that code. The next thing I need to know is how many lines there are in the current calculation (now stored in vCalcContents). I need to know this, because I want my copyright statement to be the last line in the calculation (i.e., after the last line in there now). To do this, I create another variable called vCalcLastLine and make it equal to the number of lines of code that were retrieved from the current icon (by using ListCount on the data, which is now stored in vCalcContents). vCalcLastLine now contains a number that represent the total number of lines in the current calculation (e.g., if there were 5 lines, vCalcLastLine would equal 5). Now that I know the last line in the calculation, I can look to see if it already has the copyright statement in it. I tell Authorware that if the last line (vCalcLastLine) of the current calculation (vCalcContents) is not equal to –Copyright Richard Van Eck, 2004, then it should add a return (create a new line at the end) and paste in the copyright text. Hopefully, you can begin to see the basic concept behind how this script and others work, although you would not be able to create your own without lots of practice. BOTS & Properties In addition to using functions and variables, many BOTS also use what are called properties. Chapter 9 discussed property lists and linear lists. It turns out that just about all of the icon and file options that you can set through dialog boxes in your program are 418 Van Eck, TOC Through Chapter 11 actually properties that are stored in property lists. For example, when you open the dialog box for your file properties (ModifyFileProperties), every checkbox you see under the Playback tab is actually a property that exists in a property list. You can access (and modify) these properties using the GetFileProperty and SetFileProperty functions, respectively. You can find out what each property is called by searching for File Property in the Authorware help pages and selecting “SetFileProperty.” A classic example involves display icons. You already know how to embed a variable in a display icon (CurrentPageNum, TotalCorrect, etc.). You may remember that one of the necessary steps in doing this is to set the display icon to “Update Displayed Variables,” (see figure X). Figure X. Display Icon property dialog box. If that check box is not set, then I would have to go to every display icon with an embedded variable in it, open the property window, and check the box. In a large file, this 419 Van Eck, TOC Through Chapter 11 could not only get tedious, but would make it hard to know if I had actually found every display icon and checked that box. The example below is code that could be used to set this automatically: The first line checks to see if the current icon (the one the Dive is looking at while this code executes) is a display or an interaction (both of which have the Update Displayed Variables property). The second line sets the Update Displayed Variables property to true (i.e., it checks the option). This BOT would run in about second on a small file, and would probably take 5 seconds or less on a file of 10,000 or more icons. Commands By now you are probably thinking “Good lord, I thought he said BOTS were the most basic of the three; he just spent 9 pages discussing them!” Scripting in Authorware allows you to extend Authorware’s functionality in powerful ways. The last 10 percent of a domain requires the most learning, and scripting is a good example. Once you master the basic scripting tools (lists, repeat loops, and if-then statements), however, all scripting is pretty much the same process over and over. Commands are a good example of this. The only difference between a command and a BOT is that while BOTS only work on the file in which they currently reside, Commands are self-contained programs that can be called from, and act on, another file. Turning a BOT into a Command is almost as simple as packaging it without runtime and putting it 420 Van Eck, TOC Through Chapter 11 in your commands directory (usually c:\Program Files\Macromedia\Authorware 6\Commands). I say almost, because there is one key difference between a BOT and a Command in regards to the code. BOTS have the advantage of already being inside the program on which they are operating. This makes it easier for them to get access to information about the icons in that file. To understand why this is, imagine that a friend has asked you for help with some task. If you are in the same room with him or her, you can see the same thing s/he sees, and you can even step in and perform part or all of the task yourself. If, however, your friend called you from another state and asked for your help, you would have to rely entirely on their description of the task and their ability to implement the suggestions you give them. Because Commands are outside the program, they have to communicate with that program to get information (e.g., the Icon ID) and to make changes (e.g., set properties; cut, delete, or move icons; etc.). This is accomplished by using a function called “CallTarget” and a category of functions called “Target.” In this sense, the file on which the command is working is the “target,” which must be “called” in order to get information or perform actions. There are several types of Target functions that can be used in this fashion (select the Target category from the functions window to see them all), but it is important to remember that only target functions can be used in a Command, so in that sense, BOTS are more powerful that Commands (since you can use any function you want in a BOT). At first glance, this may seem like a non-trivial difference, conceptually and in practice, but once you learn the basic syntax for implementing the CallTarget function, it is a 421 Van Eck, TOC Through Chapter 11 relatively straightforward process to turn any BOT into a Command. The CallTarget function can either send or retrieve information about an icon or the file. When we use the CallTarget function to retrieve information, it is because we want to do something with that information (e.g., find out what type of icon we are currently looking at in our dive, change that icon’s properties, etc.). In order for us to work with that information, we need to store it in a variable locally (in our command file). Once it is in a variable, we can use any function we want on it (whether it is a Target function or not. So, while we are limited to the Target functions when retrieving and sending information to the target file, we can use any function while we are in the command file. The syntax for using CallTarget to retrieve information from the target file is as follows: myVariable:=CallTarget(name of target function, #argument/property here) This takes the result of the CallTarget function (which is some information about the target file or an icon in that target file) and stores it in myVariable (which of course is named whatever makes sense to you). I can then use that variable to perform whatever calculations and functions I want before using CallTarget to then send that information back to the target file. Power Tip: There is a variable called EvalStatus that is invaluable for determining whether your CallTarget syntax was successful or not. This variable has 56 possible values, all but one of which, 0, indicates a failure of some kind. You can use this variable in two ways. First, you can use it to test your Command as you build it one line at a time. Second, you can use it in conjunction with the Message Box feature to create pop-up boxes that convey information to the learner. After each CallTarget function, you can use 422 Van Eck, TOC Through Chapter 11 an if-then statement or the Test function (the logical equivalent, but shorter to type) to see if EvalStatus<>0 (that is, there was some error). If there was, then you can cause a custom message to pop up in window by right clicking in the calculation window and selecting InsertMessage Box from the contextual menu. You can then type your custom message in the window and specify how it looks and what buttons are available. To help you understand this difference, let’s reexamine the BOT example for setting all display icons to “Update Displayed Variables” that I showed you earlier. Here is the original code when I was doing this as a BOT: To make this BOT into a Command, I have wrap all of my “calls” for information in the CallTarget syntax. Doing so looks like this: To Package & Access a Command While BOTS are used on the program in which they reside (i.e., we place them at the top of the flowline of the file we want them to run on), Commands are external files that can be used from any program during the authoring process (i.e., they don’t have to be put anywhere in the file we want them to run on). Commands are accessed via the 423 Van Eck, TOC Through Chapter 11 Commands pull-down menu within the program you are working on at the time. Commands are finalized when you package them without runtime and store them in the commands directory (C:\Program Files\Macromedia\Authorware 6\Commands, by default on most systems). It will then be accessible under the Commands menu in any Authorware piece I work with. I can also distribute it to others (along with instructions on where to put it), and they can use it on any of their files, as well. Knowledge Objects You worked with knowledge objects in chapter 7, so you are familiar with what they look like and some of the things that they can do. Initially, KOs seem to work in incomprehensible ways that are closer to magic than programming. It turns out, however, that KOs are really little different than Commands with an interface. The process for building your own KO consists of building a command to do what you want it to do, and then building a “wizard” interface to walk the user through the process. This wizard interface collects information from the user and modifies the output accordingly. For instance, the Create RTF Object KO has this screen as the second “page” in the wizard: 424 Van Eck, TOC Through Chapter 11 It takes the data the user inputs and uses it to determine what document should be used to create the RTF object and whether it should start off visible or invisible. The basic process for building a KO is as follows: • Create your wizard interface to collect information and store it in variables o You then use those variables to modify the output code of the KO o Use the CallTarget syntax as you do with Commands, since we are still communicating with the target file as a separate file • Package this wizard without runtime and store it in the KO folder (by default, c:\program files\macromedia\Authorware 6\Knowledge Objects • Create your KO (InsertIconKO) 425 Van Eck, TOC Through Chapter 11 o Ctrl-Alt double click KO icon to open it up. Build the functionality of the KO inside. Use variables collected in your wizard to make changes accordingly. • Select (highlight) the KO and save it as a model (FileSave in Model) o Make sure to use the SAME NAME exactly as you did with the wizard o Save it inside the KO folder KOs are implemented in your program via the Knowledge Objects window (WindowKnowledge Objects). Like commands, any KO you add to the KO directory will show up in the KO window (if you add a new one while authoring, you will need to hit the Refresh button to get it to show up). Conceptually, KOs are little different than Commands, but in practice they require much more practice. Luckily, Macromedia has provided a template to help you get started with your own KO. The template is called Knowledge Object Template.a6p, and can be found on the original CD (GoodiesMacromedia). Macromedia has also provided a TechNote (15011) that walks you through using this commented and well-documented template file. Additionally, Joe Ganci and Chris Swenson’s book, Extending Authorware for v6, Commands, Knowledge Objects and other Extensions, is a MUST read if you intend to develop KOs and Commands. Summary BOTS, Commands, and KOs are ways of automating certain aspects of the authoring process. All are based in some part on what are called dives. Dives are further classified 426 Van Eck, TOC Through Chapter 11 as depth and breadth, or level and sideways dives. Both are essentially giant loops that search (dive) through an entire file, looking at one icon at a time. While we use icon titles, dives (and the BOTS, Commands, and KOs that rely on them) use Icon ID numbers. Once we are looking at one icon in each file, we can perform a variety of functions on it (e.g., copy it, paste it, delete it, update its properties, add text to it, etc.). BOTS exist inside calculation icons, and work by being pasted at the top of the flowline of the file on which they should operate. Commands are BOTS that have been packaged (after being modified with the CallTarget function) and stored inside the Commands directory. They are accessed via the Commands pull-down menu, and operate on the file from which they are accessed and run. KOs are commands that have had a “wizard” interface added to them to help the user implement them. All are useful primarily to programmers, not to learners, as they help automate tedious or difficult processes and promote consistency of design among a team of designers who are working on the same project. 427 Van Eck, TOC Through Chapter 11 Exercises 10) Match the following descriptions with the appropriate name: ____Code is placed at the top of a file which is then run. Code changes settings and properties in the current file. A. Knowledge Object B. Command ____Code is accessed via a pulldown menu in Authorware. When selected, code is automatically executed on the current file. C. BOTS ____Code is accessed via an icon that is dragged to the current flowline. Wizard immediately appears to walk you through a process. 428 Van Eck, TOC Through Chapter 8 2. Indicate which of the following are external and self-contained (e.g., packaged): a. ____ Command b. ____ KO c. ____ BOT 3. How do you access a KO? A Command? A BOT? 4. How do you “load” new KOs, Commands, and BOTS? 5. Your boss wants you to add a copyright statement at the bottom of every calculation in your program. Would you be most likely to use a KO, Command, or a BOT? 6. Your training group is comprised of novice Authorware programmers. You have noticed that they have a lot of trouble with drag and drop (Target Area) interactions. Would you be most likely to use a KO, Command, or a BOT to address this problem? 7. You have developed some code that automatically turns on the “Update Displayed Variable” option on every display icon with an embedded variable in it. You would like to make this available to every Authorware programmer in your company. Would you be most likely to use a KO, Command, or a BOT? 8. Identify the steps and the sequence in which they should occur in order to create your own KO by writing and number in the blank space. In cases where two or more steps could be performed in any order, add a lowercase letter next to the number (e.g., 2a, 2b, 2c, etc.). Place an “X” next to any step that you feel is not needed: 429 Van Eck, TOC Through Chapter 8 a. __X___ Package the entire file with runtime b. __1___ Create the interface that collects the data from the user to control how the KO will work c. __X___ Save the file as a command d. __5___ Save the KO as a model e. __X___ Drag a KO icon onto the flowline f. __2___ Package the entire file without runtime g. ___4__ Build the functionality of the KO h. ___X__ Package the KO with runtime i. __3____ Insert a KO icon 430 Van Eck, TOC Through Chapter 8 431