Code Due | Points | Group or Individual |
---|---|---|
Wednesday 04/11/2007 |
30-360 | individual |
What I'm looking for here is some labs that can be used in CISC103, which is an introductory programming class taught using JavaScript as the intro programming language. This gives you an opportunity to really learn JavaScript, since you cannot explain something to a beginner well unless you first understand it well yourself.
Each lab you generate, depending on the quality of the lab produced, is worth between 30-50 points. With extra point opportunitites (as listed below), you can increase this to up to 90 points per lab. You may submit up to 4 such labs (for up to 360 points).
My purpose is two fold:
CISC103 is a intro programming course that should accomplish all of the following goals
Most textbooks on the market either
If you look at the following example labs from CISC103 (actual labs I used in Fall 2005), you'll get ideas about what I want. Each of these labs has a general pattern to it:
The general idea is if the student understands the concept (e.g. if/else or while or arrays), then the student can follow the model to come up with a solution to the problem.
Example labs:
Semester | Assignment | DIrectory with examples | topics covered |
---|---|---|---|
05F | activity03.html | activity03/ | window.prompt(), parseInt(), parseFloat(), assignment statements, document.write() |
05F | activity04.html | activity04/ | using XHTML forms to get values, using a button to run a function (i.e. and event handler), putting values into fields in a form. |
05F | activity05.html | activity05/ | for loops, using document.write() to produce a table |
05F | activity06.html | activity06/ | string concatenation, functions and event handlers |
Choose some topics. Here are sample topics.
There are many other possibilities as well. The idea is to keep the material at a intro programming course level. However,also realize that the students need, at the end of the course, to be ready to move into CISC181, so you also need to challenge the students as well.
There are three ways you can increase the point value of these JavaScript exercises to you.
Writing a recursive "factorial" function or computing the prime numbers are not problems that most non-CS majors find exciting or interesting.
Real web pages don't get information from doing window.prompt(), and most don't provide feedback through window.alert(). The only pages that do that are the ones you find in overly "Computer Sciency" beginning JavaScript textbooks—texts written by someone who just took an old C++ program from a class like CISC181, and just translated:
That will work, but is is not what JavaScript is for. It is a lousy way to teach JavaScript—and if you give me that kind of assignment, you are likely to earn very few points for it.
One thing that you may notice is that there is an awful lot for a beginning programmer to try to deal with all at once—XHTML, the DOM, the event model, event handlers, not to mention the basics of learning programming! So, last Fall, I tried a different approach—using the JavaScript command line interpreter to help students begin to understand basic concepts of JavaScript interactively, separately from a web browser. The following two labs are examples of that approach.
06F | lab09.html | n/a | using the JavaScript command line interpreter to understand JavaScript (without having to also deal with HTML at the same time) |
06F | lab10.html | lab10/ | Understanding how to combine a function defined in an external JavaScript file with an XHTML form |
As you can see, lab09 (from 06F) introduces the JavaScript commmand line, and basic concepts of the language—but then there isn't much for the students to actually _do_. So here are some suggestions for what kinds of new labs you could create:
I have a limited number of CISC103 JavaScript textbooks (JavaScript and AJAX, Visual Quickstart Guide, 6th edition) that I can loan out—first come, first served. You will get 10-20 extra points per assignment if you carefully cross reference the content of your assignment with the content of the JavaScript textbook. That might take one of several forms:
It is ok to duplicate topics that are already covered in the four example labs that I supplied above. However, if you do, please do at least one "new" topic for each one that duplicates a topic already covered.
You'll turn in a tar file. It should be structured very much like this directory on copland/strauss:
/home/usra/d9/55560/public_html/cisc103/05F/activities
which is also available as:
http://copland.udel.edu/~pconrad/cisc103/05F/activities
except, there will be one more directory for each assignment.
For example, if you do three activities, your tar file will contain
activity01.html | HTML file describing the assignment, similar to activity03.html, activity04.html, activity05.html, etc. |
activity01 | directory with code for sample solution, similar to activity03, activity04, activity05, etc |
activity01.solution | directory containing sample solution (what you would expect the students to do). |
activity02.html | same three files/directories for your second activity |
activity02 | |
activity02.solution | |
activity03.html | same three files/directories for your third activity |
activity03 | |
activity03.solution | |
etc... |
Follow the submission instructions carefully!
Prepare your submission EXACTLY with this structure, as either a gzipped tar file, or as a zip file. Do NOT use any other compression format, and do not submit your exercises in MS Word, or with some other directory structure. Submission that are not in the proper format may receive significant deductions, or even be rejected without a grade being assigned.