Scripting Languages
CSCI-GA.3033.003, Summer 2012

General information / Course Description / Schedule / Grading / See also

General Information

Lecture: Thursdays 6:00-8:20, Room WWH 109
Instructor: Martin Hirzel, hirzel@cs.nyu.edu, CIWW 328
Instructor office hours: Thursdays 5:00-6:00pm, Room CIWW 328, or by appointment
July 19 guest lecturer: Dr. Marco Pistoia
August 3 guest lecturer: Dr. Priya Nagpurkar
Graders: Aditya Bhatia (ab4239@nyu.edu), Christian Keitel (ck1456@nyu.edu), Ashish Walia (ashish.walia@nyu.edu)
Mailing list: http://www.cs.nyu.edu/mailman/listinfo/csci_ga_3033_003_su12

Course Description

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

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.

Prerequisites

The course is designed to be relatively self-contained. You need to be familiar with some existing C-like language (one of C, C++, Java, or C#, to name a few). But you do not need prior knowledge of either web design or scripting languages for this course. As long as you have a basic understanding of computer science, you should be able to pick up the new languages in the class.

Grading

Grades will be calculated to 25% from homeworks, 11% from quiz1, 19% from quiz2, and 45% from the final exam.

Academic integrity

Please carefully read the CIMS department's academic integrity policy.

Assignment deadlines

The policy for late assignments is as follows:

Points from homeworks and quizzes

Each row contains the points of all participating students, in descending order by points for that particular row. That means that the same student might be further left in one row and further right in another, depending on how well they did on that part of the class.
hw01  39 39 38 38 38 37 37 37 36 36 36 36 35 35 35 35 35 34 34 34 34 33 33 33 33 33 33 33 33 32 32 32 31 31 30 30 30 30 29 28 27 27 26 25 25 19
hw02  40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 39 39 39 39 39 39 38 38 38 38 38 38 38 38 38 37 37 37 36 36 35 35 35 35 35 34 34 34 33 33 27
quiz1 29 29 29 28 28 28 27 27 27 26 26 25 25 25 25 25 24 24 24 24 24 24 24 23 23 23 23 23 22 21 21 21 21 20 20 20 19 19 19 18 17 16 16 15 14 11 9
hw03  40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 39 39 39 39 39 39 39 39 39 38 38 38 38 38 38 37 36 35 35 34 28 26 15
hw04  40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 39 39 39 38.5 38 38 38 38 38 37 37 36 35 34 28 26 15
hw05  40 40 40 39 39 39 37 37 37 37 37 36 36 36 36 36 36 36 36 36 36 36 36 35 35 35 35 34 34 33 33 33 33 32 32 32 32 32 32 31 31 29 28 28 27 26
hw06  30 30 30 30 30 30 30 30 30 29 29 29 29 29 29 29 29 29 29 29 29 29 28 28 28 28 28 28 28 28 28 28 28 28 27 27 27 26 26 25 25 25 23 22 22
hw07  40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 39 39 39 39 39 39 39 39 38 38 37 37 37 37 36 36 35 35 35 35 35 30 27 19
quiz2 40 39 39 39 39 38 38 38 36 36 36 35 35 34 34 34 34 34 34 33 33 32 32 32 32 32 31 31 31 31 31 30 29 29 29 27 26 25 24 24 24 24 23 16
hw08  40 40 40 40 40 40 40 40 40 40 40 40 40 40 38 38 38 38 38 38 38 38 38 38 37 37 37 36 36 36 36 35 35 35 35 35 35 34 33 30.5 29 27 23 23 22.5 20
hw09  40 40 39 38 38 38 38 38 38 38 38 37 37 37 37 37 37 37 37 37 37 37 37 37 37 37 36 36 36 36 36 36 36 36 36 35 35 35 35 35 35 35 34 33 31 30
hw10  40 40 40 40 40 40 40 40 40 39 39 39 39 39 39 39 38 38 38 38 38 38 38 38 38 38 36 35 34 29
final 60 60 60 59 59 58 58 58 57 57 57 56 56 56 56 56 56 56 56 56 56 55 55 55 55 55 54 54 54 53 53 53 52 51 51 51 50 46 46 45 45 44 42 41 39

Schedule

Date Lecture topic Homework Quiz
Th 5/24 Introduction; End user programming (VBA) hw01  
Th 5/31 Objects, properties, call-backs hw02  
Th 6/7 Textual data processing (Perl) hw03 quiz1
Th 6/14 Context, objects, scripting as glue hw04  
Th 6/21 Server-side scripting (PHP) hw05  
Th 6/28 Client-side scripting (JavaScript) hw06  
Th 7/5 Web applications and databases hw07  
Th 7/12 Debugging for scripting languages hw08 quiz2
Th 7/19 Dr. Marco Pistoia: Security for web languages hw09  
Th 7/26 Other scripting languages (Bash, Python, Ruby) hw10  
Th 8/2 Review; Dr. Priya Nagpurkar: Performance    
Th 8/9 Final exam Version A and Version B   (final)


See also

Graduate cs.nyu.edu courses: http://cs.nyu.edu/webapps/summer2012/courses
Graduate cs.nyu.edu schedule: http://cs.nyu.edu/webapps/summer2012/Graduate/courses
Scripting languages course: Summer'08 (Hirzel)
Graduate cs.nyu.edu calendar: http://cs.nyu.edu/webapps/Graduate/calendar
Academic integrity policy: http://cs.nyu.edu/web/Academic/Graduate/academic_integrity.html

http://cs.nyu.edu/courses/summer12/CSCI-GA.3033-003/
This file was last checked into CVS $Date: 2013/06/16 19:11:26 $ UTC (New York is at UTC-5).