Spring 2014 Elective Course Descriptions

Spring 2014 Course List
Course Descriptions
Elective Course Archive

CSCI-UA.0421-001, Numerical Computing
5894
prereq: CSCI-UA.0102 & MATH-UA.0140
Introduction to numerical computation: the need for floating-point arithmetic, the IEEE floating-point standard. Importance of numerical computing in a wide variety of scientific applications. Fundamental types of numerical algorithms: direct methods (e.g., for systems of linear equations), iterative methods (e.g., for a nonlinear equation), and discretization methods (e.g., for a differential equation). Numerical errors: How can you tell if you can trust your answers? The use of graphics and software packages such as Matlab. Programming assignments.

CSCI-UA.0472-001, Artificial Intelligence
7644
prereq: CSCI-UA.0201 & CSCI-UA.0310
Many cognitive tasks that people can do easily and almost unconsciously have proven extremely difficult to program on a computer. Artificial intelligence tackles the problem of developing computer systems that can carry out these tasks. Focus is on three central areas in AI: representation and reasoning, machine learning, and natural language processing.

CSCI-UA.0478-001, Introduction To Cryptography
19195
prereq: CSCI-UA.0310
Provides an introduction to the principles and practice of cryptography and its application to network security. Topics include symmetric-key encryption (block ciphers, modes of operations, AES), message authentication (pseudorandom functions, CBC-MAC), public-key encryption (RSA, ElGamal), digital signatures (RSA, Fiat-Shamir), authentication applications (identification, zero-knowledge), and others, time permitting.

CSCI-UA.0480-001, Special Topics: Computer Vision
5895
prereq: CSCI-UA.0201
An introduction to the field of computer vision. Basic concepts will be covered such as edge detection, stereo vision, motion, color, texture and recognition.

CSCI-UA.0480-002, Special Topics: iPhone Programming
5896
prereq: CSCI-UA.0201
In this course, students will learn to create applications for Apple's iPhone 3G using Objective-C and the iPhone SDK. Since its introduction this past summer, the Apple SDK has been revealed to be a powerful platform upon which to build sophisticated applications for the iPhone.
Without actually having to own an iPhone, students will be able to build and test their applications on Intel Apple Macs using the freely available compiler and simulator. In addition to the development tools, students will become proficient in the object-oriented language Objective-C, the Apple iPhone Framework, and the principles of Cocoa development. This is a new, dynamic, constantly-evolving topic, and students will be at the forefront of a new technological advancement.

CSCI-UA.0480-003, Special Topics: Parallel Computing
5897
prereq: CSCI-UA.0201
Most of us have learned to program a single microprocessor using a high-level programming language like C/C++, Java, ... This is called sequential programming, because we think in sequential way and give the machine statements to be executed in sequence. However, this has to change. A single microprocessor (or single core) no longer exists in almost all computers we are using today (including your tablets and smart phones).
Most of our devices are now multicore processors. This means it contains several processors on-chip. To make the best use of these chips we need to program them "in-parallel". Sequential programming, for all platforms from smart phones to supercomputers, is falling out of fashion and taking back-seat to parallel programming. How to think in parallel? How to write code in parallel to make the best use of the underlying hardware? How is that new hardware different from the traditional one?What will the future be for the software and hardware? This is the topic of this course.

CSCI-UA 480-004, Special Topics: Algorithmic Problem Solving
7992
prereq: CSCI-UA.0310 Basic Algorithms
Many of the top firms in the technological and financial sectors are using algorithmic problems as interview questions for assessing candidate skill.
In this course we take this idea one step further and use algorithmic problem solving as way to hone programming skills. Students will use the material covered in the data structures and algorithms courses and learn new algorithmic techniques to solve challenging problems quickly. Each week will be devoted to a particular type of algorithm. Weekly problem sets will reinforce the lecture, and require students to implement their solutions in Java or C++.
Students completing this course will be well prepared to participate in programming competitions such as the ACM Inter-Collegiate Programming Contest, TopCoder, and Google's Code Jam.
Requirements: Basic Algorithms(prereq or coreq with permission).


top | contact webmaster@cs.nyu.edu