General information /
Schedule /
Course Description /
Grading /
See also
| Date | Lecture topic | Homework | Quiz
|
|---|
| Th 5/22 | Introduction, end user programming (VBA)
| hw01 [html, pdf] |
|
| Th 5/29 | Objects, properties, call-backs
| hw02 [html, pdf] |
|
| Th 6/5 | Textual data processing (Perl)
| hw03 [html, pdf]
| quiz1 [html, pdf]
|
| Th 6/12 | Context, objects, scripting as glue
| hw04 [html, pdf] |
|
| Th 6/19 | Server-side scripting (PHP)
| hw05 [html, pdf] |
|
| Th 6/26 | Client-side scripting (JavaScript)
| hw06 [html, pdf]
| quiz2 [html, pdf]
|
| Th 7/3 | Web applications and databases
| hw07 [html, pdf] |
|
| Th 7/10 | Marco Pistoia: Security for web languages
| hw08 [pdf] |
|
| Th 7/17 | Debugging for scripting languages
| hw09 [html, pdf]
| quiz3 [html, pdf]
|
| Th 7/24 | Other scripting languages (Bash, Python, Ruby)
| hw10 [html, pdf] |
|
| Th 7/31 | Review
| |
|
| Th 8/7 | Final exam [html, pdf] | |
|
All questions and example solutions in one file:
[html].
Example solutions:
hw01 [html, pdf],
hw02 [html, pdf, ppt],
quiz1 [html, pdf],
hw03 [html, pdf],
hw04 [html, pdf],
hw05 [html, pdf],
quiz2 [html, pdf],
hw06 [html, pdf],
hw07 [html, pdf],
hw08 [html, pdf],
quiz3 [html, pdf],
hw09 [html, pdf],
hw10 [html, pdf],
final [html, pdf].
Perl, PHP, JavaScript, VisualBasic -- they are often-requested skills
for employment, but most of us do not have the time to find out what
they are all about. In this course, you will learn how to use
scripting languages for rapid prototyping, web programming, data
processing, and application extension. Besides covering traditional
programming languages concepts as they apply to scripting (e.g.,
dynamic typing and scoping), this course will look at new concepts
rarely found in traditional languages (e.g., string interpolation,
hashes, and polylingual code). Through a series of small projects, you
will use different languages to achieve programming tasks that
highlight the strengths and weaknesses of scripting. For example, we
will investigate AJAX and security concerns for dynamic web pages. As
a side effect, you will practice teaching yourself new languages.
Syllabus
- Fundamentals: interpreters, dynamic typing, dynamic
scoping (Perl, VBA).
- Data processing: regular expressions, string
interpolation, hash tables (Perl), XML and DOM (JavaScript).
- Web programming: server (PHP), client (JavaScript),
databases, AJAX, security.
- Application extension: Automating tasks in large systems
(VBA).
- Other languages: Brief overview of Python, Bash (shell),
Ruby.
Recommended Books
All of these books are available in print. The ones marked [safari]
are also available as e-books for NYU students; however, they are
constrained to 4 simultaneous users.
- Programming Language Pragmatics, 2nd edition.
Michael Scott.
ISBN 0-12-633951-1, Morgan Kaufmann, 2006.
- Programming Perl, 3rd edition
[safari].
Larry Wall, Tom Christiansen, and Jon Orwant.
ISBN 0-596-00027-8, O'Reilly, 2000.
- Mastering VBA, 2nd edition.
Guy Hart-Davis.
ISBN 0-7821-4436-5, Wiley, 2005.
- Programming PHP, 2nd edition
[safari].
Rasmus Lerdorf, Kevin Tatroe, and Peter MacIntyre.
ISBN 0-596-00681-0, O'Reilly, 2006.
- JavaScript: The Definitive Guide, 5th edition
[safari].
David Flanagan.
ISBN 0-596-10199-6, O'Reilly, 2006.
Grades will be calculated to 25% from homeworks, 35%
from quizzes, and 40% from the final exam.
- Homeworks are assigned each week on Thursday, and
each homework is due one week later on Friday at 9pm. This
is a strict deadline. Homeworks involve both conceptual
questions and hands-on programming.
- Quizzes are at the end of the lectures on
6/5, 6/26, and 7/17. Each quiz is 35 minutes long. The
quizzes focus on conceptual questions. Quizzes are shorter
than the final exam, but similar in style.
- The final exam is on Thursday 8/7 from 6:00-8:20 in
Room CIWW 109. This is the same room and time as for
lectures. The final exam will cover material from the entire
semester.
Points from homeworks and quizzes
Each row contains the points of all twelve enrolled students, in
descending order for that homework or quiz.
hw01 50 50 48 48 48 48 47 47 45 45 39 39
hw02 50 47 46 45 44 42 36 31 30 29 19 6
hw03 50 49 47 46 46 45 43 43 42 40 39 37
hw04 50 50 49 48 40 39 33 33 32 29 26 23
hw05 50 50 50 50 50 50 50 50 48 48 46 26
hw06 50 50 50 50 48 48 48 48 48 48 46 45
hw07 50 50 50 48 48 48 48 48 47 46 46 35
hw08 50 50 49 49 49 49 49 48 47 46 44 0
hw09 15 15 15 15 15 15 15 15 15 12 12 0
hw10 50 50 50 50 50 50 50 50 50 50 49 41
quiz1 30 30 28 28 28 28 28 25 24 21 20 10
quiz2 30 29 26 26 26 26 24 22 22 22 19 17
quiz3 30.0 29.5 29.5 29.0 28.0 27.5 27.0 27.0 24.0 23.0 22.0 22.0
final 58 57 56 53 52 50 47 47 45 45 44 42
result 96.4 95.3 92.9 88.4 88.1 86.9 86.8 80.0 79.5 79.1 74.4 68.6
Academic integrity
Please carefully read the CIMS department's academic integrity policy.
- I encourage you to collaborate on homework assignments. But you
must write up and turn in your own answers. Also, you
must clearly indicate who you collaborated with.
- During quizzes and the final exam, you must not use any
reference material, and you must not communicate in any way.
- If I detect any incidents of cheating, I will report them
immediately to the department.
Assignment deadlines
The policy for late assignments is as follows:
- If you submit at least 1 minute late, but at most 3 hours
late, you receive 50% of the points for that homework.
- Otherwise, late homeworks are only acceptable if the
lateness is caused by circumstances beyond your control,
such as illness or a missed flight.
- In this case, you only get the points for the homework if
you provide official documentation, such as a doctor's
certificate, for the reason why your homework is late.
http://www.cs.nyu.edu/courses/summer08/G22.3033-002/index.html
This file was last checked into CVS $Date: 2012/01/08 12:54:38 $ UTC (New York is at UTC-5).