CS 304 Project Kirk Scott 1. The specifications for this project will be subject to possible minor revision as the semester progresses depending on what.

Slides:



Advertisements
Similar presentations
Academic Quality How do you measure up? Rubrics. Levels Basic Effective Exemplary.
Advertisements

WEB DESIGN TABLES, PAGE LAYOUT AND FORMS. Page Layout Page Layout is an important part of web design Why do you think your page layout is important?
Introduction to Programming using Matlab Session 2 P DuffourJan 2008.
CS0004: Introduction to Programming Visual Studio 2010 and Controls.
Events Part III The event object. Learning Objectives By the end of this lecture, you should be able to: – Learn to use the hover() function – Work with.
1 Microsoft Access 2002 Tutorial 9 – Automating Tasks With Macros.
Tutorial 8: Developing an Excel Application
Chapter 10—Creating Presentations
Word Lesson 8 Increasing Efficiency Using Word
Add Sound Effects to a Presentation Add sound effects to a presentation Course contents Overview: This sounds easy Lesson 1: Play a sound file Lesson.
© by Pearson Education, Inc. All Rights Reserved.
XP Information Technology Center - KFUPM1 Microsoft Office FrontPage 2003 Creating a Web Site.
Automating Tasks With Macros
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Automating Tasks With Macros. 2 Design a switchboard and dialog box for a graphical user interface Database developers interact directly with Access.
Welcome to the Ivy Tech Community College Online Employment System Applicant Tutorial.
CIS101 Introduction to Computing Week 11. Agenda Your questions Copy and Paste Assignment Practice Test JavaScript: Functions and Selection Lesson 06,
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 2: The Visual Studio.NET Development Environment Visual Basic.NET Programming: From Problem Analysis to Program Design.
E | W | E | W | NHS e-Referral Service Referring Roles Issued: 3 June.
CIS101 Introduction to Computing Week 12 Spring 2004.
Keyboard shortcuts in the 2007 Office system Introducing the Ribbon Based on extensive research into how people use Microsoft Office and how they wish.
Microsoft ® Office Word 2007 Training Mail Merge II: Use the Ribbon and perform a complex mail merge [Your company name] presents:
Microsoft Office Word 2013 Expert Microsoft Office Word 2013 Expert Courseware # 3251 Lesson 4: Working with Forms.
Section 7.1 Identify presentation design principles Use a custom template Add pages to a navigation structure Section 7.2 Identify color scheme guidelines.
2. Introduction to the Visual Studio.NET IDE 2. Introduction to the Visual Studio.NET IDE Ch2 – Deitel’s Book.
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
05/09/ Introducing Visual Basic Sequence Programming.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Introduction to the WebBoard Terry Dennis. The WebBoard - Our Connection The WebBoard URL is
Moodle (Course Management Systems). Assignments 1 Assignments are a refreshingly simple method for collecting student work. They are a simple and flexible.
PMS /134/182 HEX 0886B6 PMS /39/80 HEX 5E2750 PMS /168/180 HEX 00A8B4 PMS /190/40 HEX 66CC33 By Adrian Gardener Date 9 July 2012.
IE 411/511: Visual Programming for Industrial Applications
Managing Clients in the IEZ Quote System Objective: Become an expert in managing your clients in the IEZ Quote System.
Designing Interface Components. Components Navigation components - the user uses these components to give instructions. Input – Components that are used.
Moodle (Course Management Systems). Glossaries Moodle has a tool to help you and your students develop glossaries of terms and embed them in your course.
Teacher’s Assessment Assistant Worksheet Builder Starting the Program
COMP106 Assignment 2 Proposal 1. Interface Tasks My new interface design for the University library catalogue will incorporate all of the existing features,
Chapter 8 Collecting Data with Forms. Chapter 8 Lessons Introduction 1.Plan and create a form 2.Edit and format a form 3.Work with form objects 4.Test.
CS 320 Assignment 1 Rewriting the MISC Osystem class to support loading machine language programs at addresses other than 0 1.
Introduction to PowerPoint Curriculum Implementation Day Friday, November 3, 2006 K.J. Benoy.
CHAPTER TWO INTRODUCTION TO VISUAL BASIC © Prepared By: Razif Razali 1.
How to Create a Document in Google Drive By Tressa Beckler.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Microsoft ® Office Excel 2003 Training Using XML in Excel SynAppSys Educational Services presents:
Microsoft Visual Basic 2005 BASICS Lesson 1 A First Look at Microsoft Visual Basic.
1 Object-Oriented Programming (Java), Unit 24 Stand In Final Project Description Kirk Scott.
Grade Book Database Presentation Jeanne Winstead CINS 137.
By Felixberto Dominic B. Eruela.  Using a computer to create, edit, and print documents. Of all computer applications, word processing is the most common.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
Graphical Enablement In this presentation… –What is graphical enablement? –Introduction to newlook dialogs and tools used to graphical enable System i.
Human Centric Computing (COMP106) Assignment 2 PROPOSAL 23.
How to Design an Effective PowerPoint Presentation
Object-Oriented Programming (Java), Unit 28 Kirk Scott 1.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 10 1 Microsoft Office Access 2003 Tutorial 10 – Automating Tasks With Macros.
LEARN THE QUICK AND EASY WAY! VISUAL QUICKSTART GUIDE HTML and CSS 8th Edition Chapter 8: Working with Style Sheets.
Modifying HTML attributes and CSS values. Learning Objectives By the end of this lecture, you should be able to: – Select based on a class (as opposed.
M1G Introduction to Programming 2 5. Completing the program.
Chapter 4. Learning outcomes This Chapter will partially cover the learning outcome No. 2 i.e. Design presentations that use animation effects. (L02)
Lesson 6 Formatting Cells and Ranges. Objectives:  Insert and delete cells  Manually format cell contents  Copy cell formatting with the Format Painter.
Page Layout You can quickly and easily format the entire document to give it a professional and modern look by applying a document theme. A document theme.
Word Create a basic TOC. Course contents Overview: table of contents basics Lesson 1: About tables of contents Lesson 2: Format your table of contents.
IE 411/511: Visual Programming for Industrial Applications Lecture Notes #2 Introduction to the Visual Basic Express 2010 Integrated Development Environment.
E | W | E | W | NHS e-Referral Service Referring Roles Issued: 27 th.
Web Programming Java Script-Introduction. What is Javascript? JavaScript is a scripting language using for the Web. JavaScript is a programming language.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Desktop Publishing Lesson 1 — Working with Documents.
Development Environment
Saving, Modifying page, grammar & spell checking, and printing
Presentation transcript:

CS 304 Project Kirk Scott 1

The specifications for this project will be subject to possible minor revision as the semester progresses depending on what happens. Changes will be announced in class and the online document will be updated to reflect them. The overall nature of the project will not change. 2

Introductory Information 3

This project is not tied directly to design patterns per se. One particular design pattern does appear, but otherwise the project is simply an extended exercise in programming without patterns appearing or needing to be used. 4

The general idea is that it's good to practice programming even if you aren't applying patterns. And even if you aren't applying patterns, having learned about them will tend to make you a more perceptive programmer. 5

In all parts of the project, the graphical user interface is the choice of the student. In other words, you are welcome to use menus, buttons, or any other graphical feature. Some graphical objects may be more obvious choices than others. There is no penalty for taking the "easy" route. It is advisable. 6

No matter what choices you make, in the end you will have to document/demonstrate/present your project in such a way that it is apparent to me how things work so that I can easily check off the points you've earned. 7

The project is based on the game of Wari as presented in CS 202. The rules of play are simplified: All that has to happen is that a capture occur when the last seed played goes into a cup containing 1 or 2 seeds. 8

Each student will be given separate specifications for the project. These specifications include the number of cups, the number of seeds, and other parameters. The range of specifications will be outlined where appropriate in the points below. 9

The project falls into three major parts, with several subparts. The first two parts can be developed separately. The third part brings the first two together. 10

The first part is essentially a small editor designed to edit "game program" files which spell out the moves of a Wari game. The second part is a program that plays such a Wari game program and displays the course of the game on the screen graphically. The third part consists of those changes to both pieces of code so that you can invoke the player from the editor. The parts will be given below with their subparts and the points assigned to them. 11

Here is a final bit of introductory information. You may or may not recall that in CS 202 I frequently said that successful programming consists of inspired copying. Concerns about academic integrity should dissuade you from wholesale copying, but it is common programming practice to find partial solutions to problems and modify them for your own use. 12

In CS 202 I tried to encourage people to use the Java API because that is a ready source of information. In CS 304, I want to suggest the following to you: You will not find complete solutions to the programming project anywhere online, so that's not an option anyway. The project does include elements that will not be covered or explained in class, and no example code will be given which solves these problems. However, don't despair; you're not alone. 13

It's time to branch out and accept the fact that when programming on your own, you will find answers online. When I have programming questions I typically do a Web search before even consulting the book selected for the class. Your fellow students and professional programmers have found those sites which are most helpful for Java programming. 14

I encourage you to find these sites and use them. By the way, the two items in the project that come to mind where this might be particularly helpful are these: Highlighting a single line in a text area; and calling one Java program from another. It is quite possible that you'll find online help useful for other parts of the project too. 15

Part 1 16

Part 1 consists of making a simple editor. See the items below. 17

1. 10 points. Create a simple editor with save and load functions. Note that the Java API includes a JEditorPane class. You are welcome to use this and any other ready-made classes that make your work easier. 18

2. 10 points. Add the function to your editor to specify a file type, namely "wari". If you choose this type for your file, it should receive the extension ".wari" by default when saved. It may be possible to do this using characteristics of the JFileChooser or related classes. If so, feel free. Otherwise, implement the functionality using your own logic. 5 points. 19

Also, if you choose the file type, from that point on, the text entered into the editor should appear in a color different from black. There will be three choices for color: Something in the purple-red range, something in the orange-yellow range, or something in the blue-green range. You may use system supplied colors. You may also create a custom color if you want to. 5 points. 20

3. 10 points. Your editor should have auto-completion for Wari program files. The "language" for Wari programs will have two keywords, one to specify the player, the other to specify the cup to be played. In the specifications, there will be different options for these. They are as follows: 21

Keyword specifying player. One of the following: Player Contestant Entrant Side 22 Keyword specifying which cup to play. One of the following: Cup Move Play

Take the combination of keywords Player/Cup for example. The idea is that if the user is typing into the editor and enters the letter "P", the editor should auto-complete the word to "Player". Likewise, if the user enters "C", the editor should auto-complete the word to "Cup". 23

The program file for a game would take this form: Player 1 Cup 1 Player 2 Cup 4 Player 1 Cup 7 Player 2 Cup 3 … 24

As with the graphical user interface, it will be your choice whether to separate items with white space, commas, or no space at all. This will become a concern when implementing the game player. That program will have to be designed to read and interpret Wari program files as they are created in the editor program. 25

4. 10 points. The editor should have undo and redo functionality. It will be your decision whether these will be character- by-character or whether auto-completed keywords are the unit of work. Either one is equally good. As usual, you just have to make it clear what you did so that I can effectively check it. Note that this functionality is related to a design pattern: Memento. 26

Total points for Part 1:

Part 2 28

Part 2 consists of creating a Wari game program player with a graphical representation. This will have similarities with Wari as given in CS 202, but there are significant differences in functionality. 29

The basic situation is this: You don't play the game by interacting with the interface. The game is played by loading a game program, which the player knows how to read and execute, and the game player displays the results graphically. 30

1. 10 points. Cups and seeds should be graphically represented in the player. The different specifications for students will be along the lines of those in CS 202. In other words, you will be told how many cups for each side of the game and how many seeds initially in each cup. 31

2. 20 points. The game player should have a text area which shows the loaded game program. 10 points. It should have load functionality which will open a Wari program file, load it into some dynamic structure in the game player program, and display it in the text area. 10 points. 32

3. 30 points. This numbered item is the heart of the game playing program. The player should have an option to play the loaded game. 10 points. There is no need to introduce any delays to show play progressing at a speed perceptible to a human observer, but the end results of taking the game playing option should be the completed game displayed in the cups on the screen. 10 points. 33

Playing the game consists of looping through the loaded program, interpreting the plays or instructions in it, and executing them. This is a significant change from any previous versions of Wari. A non-Wari program that has functionality similar to this will be posted on the course Web page for your reference in understanding what this means and how you might implement it. 10 points. 34

4. 20 points. There should be an additional option in the player called the step function. This means that for every click of the button or selection of the menu item or whatever graphical item represents this functionality, just one game program move will be read and executed, and the results of that one move will be displayed graphically. In other words, it will be possible to follow the progress of a game step-by-step or move-by-move, one player after the other. 10 points. 35

The current instruction should be highlighted in the text area showing the complete program by using a different background color or text color. 10 points. 36

Total points for Part 2:

Part 3 38

Part 3 links parts 1 and 2 together. As such, it involves aspects of both of the other parts. There is only 1 numbered item because part 3 either works or doesn't work, but the item involves several different ideas. 39

1. 20 points. The editor of part 1 should have an option to "play" the program that is currently open in it. This should effectively require that any changes in the editor be saved in the file before going further. Then, it should trigger what is more or less a native call to the player of part 2. In other words, one program invokes the other. 40

From the Wari game point of view, it is apparent that the player should be written to accept a game program using the keywords that the editor auto-completes when writing a game program. The player program should be written so that it will accept a game program file as a command line argument. When the editor calls the player, it should send as an argument the name of the currently open game program file that has just been saved. 41

For the purposes of this project, it is sufficient that taking the option in the menu opens the game player and loads the game program file. It does not have to cause the game program to run. With the player open, it is then up to the user to either run the game program or step through it. 42

Total point breakdown: Part 1: 40 Part 2: 80 Part 3: Total:

The End 44