Graduate Special Topics in Computer Science

NOTE: for descriptions of standard graduate computer science courses, see Graduate Course Descriptions.

CSCI-GA.3033-001 Cloud Computing

See the course homepage for more information.

CSCI-GA.3033-002 Production Quality Software

In this course, students learn to develop production quality software. Lectures present real-world development practices that maximize software correctness and minimize development time. A special emphasis is placed on increasing proficiency in a particular programming language by doing weekly development projects and participating in code reviews. Assignments become more sophisticated as the semester progresses, eventually incorporating unit tests, build scripts, design patterns, and other techniques. The course culminates with an assignment that requires students to contribute to an open-source project of their choice.

CSCI-GA.3033-003 Scripting Languages

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.

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.

top | contact