Watson Interactive Laboratories
Watson Interactive Laboratories

Watson Interactive Laboratories
Watson Interactive Laboratories

The Watson Project is a set of interactive labs implemented in Java, designed as a companion to introductory computer science courses. The labs are meant to reinforce fundamental computer science concepts through interactive examples and structured activities.

Labs in Watson will cover the following subjects:

  • spreadsheet and database applications
  • data structures
  • computer graphics
  • JavaScript-based programming
  • object-oriented programming concepts
  • assembly language and machine architecture
  • digital logic

The Watson Spreadsheet Lab serves as an introduction to the basic commands, tools and functions of a typical spreadsheet program, as well as the Watson Lab. The lab consists of five exercises and five activities dealing with common spreadsheet operations. The exercises and activities will familiarize

the user with using a spreadsheet to compute averages and creating formulas in concert with spreadsheets. This is a general spreadsheet that can be used to instruct a user on operations that are shared between most spreadsheet programs. In addition, the lab provides an excellent platform for users to begin using Watson, as the Spreadsheet functions are very easy to understand and use.

The Watson Database Lab serves as an introduction to the basic tools and queries of typical database systems. The lab consists of twenty activities concerning database operations. The activities cover the basics of building relations, querying a database, and selecting entries. Each of these functions

are integral to the understanding relational databases and the concepts that drive them. The student will be taken from very easy queries and selections into increasingly more difficult situations that require compound queries. These activities will lead to a greater understanding of database concepts .

The Data Structures Lab provides an overview of basic data structures used in programming. The data structures covered in this lab are the stack, the queue, the array, the linked-list, and the tree. These data structures, when combined with algorithms, can be used to solve complex tasks. Also this lab shows how

using different data structures can affect memory differently.

The Graphics Lab provides an introduction to fundamental programming concepts, focusing on data types, variables, assignment, sequence, and looping. The lab also introduces graphics primitives such as points, lines, circles, and polygons. The lab functions in two modes: an interactive drawing mode where the user draws

a image while the corresponding program code is automatically generated, and a programming mode where the user writes a program that, when run, produces an image. The activates included in this lab require the user to design and implement small programs that accomplish particular tasks. These tasks can be accomplished rather rapidly due to the incorporation of a point-and-click syntax-directed program editor that virtually eliminates the introduction of syntax errors into the program code.

The JavaScript Lab continues the introduction to programming provided by the Graphics Lab. This lab is based on an augmented subset of the JavaScript programming language. While one goal of this lab is to enable the user to write simple programs in the widely available JavaScript programming language, the

focus is on fundamental concepts, such as sequence, selection, repetition, and functions, rather than on particular syntactic features. Thus, the lab enforces concepts such as strong typing that are usually absent from JavaScript and includes several Watson-specific Input / Output instructions. The point-and-click syntax-directed program editor used in the Graphics Lab is also included in the JavaScript Lab -- freeing users to concentrate on program design rather than being forced to track down syntax errors.

The object-oriented programming lab is intended to reinforce the concepts associated with object-oriented languages, and present common data structures in terms of objects. This lab covers objects, classes, inheritance and information hiding. In addition to these object-oriented topics, arrays, stacks,

and queues are presented in terms of objects and classes. A code viewing window illustrates the relationship between objects and the actual code that makes up a class. As the methods and parameters are edited and added, the code view window updates to show how methods interact as a part of a class.

The Watson Assembly Lab serves as an introduction to the basic commands, syntax, and operation of a typical assembly level language. The lab consists of six exercises and eleven activity sections. The activities of the lab demonstrate the operation of assembly level programming. This is not a specific

assembly language introduced, but a general assembly language that can be applied to other assembly languages. The lab covers how a machine is able to translate assembly code into machine code. The code displayed can be tracked in the binary displayed for a better understanding of how the machine works.

The Digital Logic lab introduces users to the concept of circuits and logic. This lab covers how to build a ciruit from logic gates. Using different logic gates and combining their outputs can create new logic tables. Also this shows a user how the machine is able to do mathematical operations

on the hardware level. Finally the lab teaches users Boolean Algebra and truth tables.

Watson Interactive Laboratories
Watson Interactive Laboratories
Watson Interactive Laboratories
Louisiana Tech University