ICS3U Final Project
The objective of this course is for you to be able to develop your problem solving skills. In particular, the skills required to develop meaningful programs. The best way to do this is to actually develop a meaningful program. Your final project is to develop a meaningful program of your choice. Each person is at a different stage in their programming ability. The final project you pick should be a reflection of your programming ability. Before you start working on your project you must submit a proposal. This is to prevent you from starting a project you cannot finish, or taking on a task that is too easy, and would result in a low mark. Before you begin writing code for your project you must also develop a clear plan of what you plan to do, this will help prevent you from wasting time wondering what you should be doing. A good plan will allow you to work at a steady pace and avoid hitting too many dead ends. It will also ensure that you are using the most appropriate data structures and algorithms. Don’t be afraid to ask for help from me when you are planning your project. Some projects are very difficult to plan and you may need a nudge in the right direction.
Start thinking about what you would like to work on now. If you are at a loss, come see me and I will give you some ideas. Traditionally most people do games, but there is a wide variety of other programs you can do. The only absolute requirement of your final project is that it must be one you enjoy working on.
Extra-Help
As with any real program you are not expected tore-invent the wheel yourself. It is reasonable to use code that you find on the Internet and get help from friends but it is very important that you make it clear in comments which sections you received help with and which sections you copied directly. Obviously,I don’t give you the same credit for other people’s work as for work you do yourself. Failure to give credit could result in a zero for your project mark not just the section that was not commented.
Evaluation
The following rubric will be used to evaluate the final project. An interview will be conducted for each project shortly after they are submitted.
The final FSE mark will include the final product (80%) and the process (20%) of the mark.
During class you must be working on the FSE. If students do minimal work during class and most of the work at home that WILL affect your FSE mark. If you work on anything else during class (e.g.
Chemistry homework, English essay, FSE for another class, it will affect your“process mark”and your FSE mark will be lower.
I will be making “daily observations” during the FSE and on “day 6” and “day 11” students will upload their “FSE Check 1” and “FSE Check 2” projects onEdsby.
|
Mark Range
|
0
|
1-2
|
3-4
|
5
|
Score
|
Use of Comments and choice of
variable names
|
Program listing has no comments
|
Only some sections
have comments or
variables are poorly named
|
Most sections have
comments and
variables are properly
named
|
Variables are properly named,
useful comments are present at
program header, all
function headers, all variables
and any complicated code
|
|
Choice of data structures
|
Program was not completed
|
No lists, classes, files or string manipulation used.
|
Data structures used
but there are cases
where better choices
should have been
made.
|
Logical choices made to
represent all data in the
program.
|
|
Mark Range
|
0-2
|
3-4
|
5-7
|
8-10
|
|
Use of Graphics
|
Graphics included
is very basic in
setup and design
with only a few
commands used
|
Graphics show
some originality and uses a variety of
different graphic commands
|
Graphics show individual originality and inventive design
|
Graphics show both advanced
design and individual
creativity
|
|
Use of functions
|
Program has no functions
|
functions present but parameters
improperly used or
many large blocks still need to be broken down
|
functions used but a few sections of code need to be broken
down.
|
All code is broken down into
reasonably sized functions
that perform. one logical task
each. Only a few global
variables are accessed from functions
|
|
Fun (for games) or usefulness(other)
|
Program was not completed
|
Game is boring or program would never be used.
|
Game is worth playing
a few times or
program basically
accomplishes it’s goal
|
Fun to play or program is
actually worth using in a day-
to-day setting
|
|
Mark Range
|
0-5
|
6-10
|
11-15
|
16-20
|
|
Complete
|
Does not run or is very minimal
|
Does not run or is very minimal
|
Basic structure is there, but the game
does not seem “polished”
|
Attention to detail is obvious.
Has intro, high score, many
“little” features.
|
|
Amount of work
|
Project could be
finished by an
"average" student
in a few days.
|
"Average" student can finish only using class time.
|
"Average" student can
finish with full use of
class time and some
extra time.
|
Project requires full use of class time and extra time to
complete
|
|
Inventive Problem Solving Techniques.
- use of ifs, loops, lists,
functions
- solutions
that require deep
thinking.
|
Program has limited use of programming concepts.
|
Program has no or few advanced
sections.
|
Program has a few advanced solutions or many moderately
advanced solutions.
|
Program has frequent use of
advanced algorithms.
|
|
|
|