- Requires at least 20 different commands (15 commands for project #1)
- Program must run without errors (if your program uses other files, such as images, be sure to include these)
- Program must be original work (no sharing of code between students)
- Program must include at least 1 loop (for-next and/or do-loop) and at least 1 decision structure (if-else-end if and/or case select)
- Program must involve the user (with input statements, etc.)
- Program must include at least 1 of either a function or subroutine written by the student (see chapter 7, project #2 only)
- Program must include some sort of graphics (see chapter 12, displaying a jpeg. image is also acceptable, project #2 only).
- Must have a list of all commands at the start of the program (as comments)
- Must add comments throughout the program (describe what your program is doing; try to have at least 1 comment for every 10-20 lines of your program, having more comments than this is encouraged).
Project suggestions:
- Quizzes, surveys, etc. are a good way to have lots of user input
- Although not required, you can try to write a project that relates to your major
- Keep in mind that the TAs will have to grade lots of these projects. With that in mind, please try to be reasonable when using sound and pause commands (we donât want to hear constant beeping, and if you have any pauses longer than a few seconds, we will think your program is frozen and not working).
- When using colors, try not to use dark text on a dark background, as this makes it very difficult to read (such as blue text on black).
- When asking for user input, write your program so the case of the input does not matter (or make your input instructions very clear what case you are interested in). For example, if you asked a yes/no question, and used a line like (if ans$=äYä), this would not accept and answer of ãYesä, ãyä, ãyesä, etc. You can use the following code to address this (this looks at only the first character of the answer (ans$[1:1]) and makes it uppercase (Ucase$()), to compare to ãYä ö this will accept ãYESä, ãYesä, ãyesä, ãYâ, ãyä, etc as answers).
Input prompt ãanswer yes or noä: ans$
If Ucase$(ans[1:1]) = ãYä then·
- You can use the sample projects posted for ideas, and can use the code as an example of how to do certain things (use the mouse, display a color changing title, etc.), but donât directly copy the sample code.
Grading:
60% - 20 commands (3% each)
25% - Program runs with no errors, programs meets additional requirements (loops, branching, at least one function or subroutine, graphics, comments and command list)
15% - Originality and level of effort shown in the program.
When counting up the commands you used, please keep in mind the following guidelines:
- When listing commands, list specific commands, not what the commands are being used for (such as ãinputä, not ãasked user for their nameä). Explain what the commands are being used for when adding comments to your program.
- Commands that exist only in combinations do not count as separate commands. This means if-else-end if, for-next, read-data, do-loop, select case-end select, etc. count as only 1 command each. Note that elseif does count as an additional command if used.
- Commands that do essentially the same thing do not count as separate commands. Examples of this include input-input prompt-line input, let-option nolet, box circle-box ellipse, etc. The use of these would only count as 1 command used. Note that if the different input statements are used for a specific reason, such as using line input to have the user enter a whole sentence, then they can be counted as different commands (mention this with a comment).
- Repeated use of the same command does not constitute "separate" commands.
- The use of mathematical symbols "+,-, =,*,/,^" does not constitute commands.
- Printing with ã,ä or ã;ä separators does not count as a different command than a basic print statement
- ãEndä does not count as a command ö this will always be in every program.
- Most commands, functions, etc. listed in the book count; some commands count but may not be obvious, some of these are listed below (these do count):
- End data/more data
- Open #1
- Restore
- Exit do
- Randomize/rnd
- String concatenation
- Use of substrings (string$[x:y])
- Get key
- Call (a subroutine)
- Declare (a function)
- Dim (an array)
- Print using (ã###.##ä)
- The functions listed in chapter 5 (round(), repeat$(), tab(), val(), pos(), Ucase$(), etc.), and the graphics statements in chapter 12 (set window, plot lines, plot text, set color, flood, box area, box clear, box circle, etc.) all count as commands, using some of these functions or graphics is an easy way to add commands.
- If you have any questions about your project, what counts as a command, etc., just ask your TA.