"Everything should be made as simple as possible, but not one bit simpler." -- Einstein (attributed).
Clinical Associate Professor
Computer Science Department,
Courant Institute of Mathematical Sciences,
New York University
Warren Weaver Hall, Room 423
251 Mercer Street
New York, NY 10012
(212) 998 3146
This course prepares students to become active participants in open source projects. It begins with an overview of the philosophy and brief history of open source development, followed by an in-depth look at different types of open source projects and the study of various tools involved in open source development. In particular, it covers the collaborative nature of open source projects, community structure, version control systems, licensing, intellectual property, types of contributions (programming and non-programming) and the tool-chains that enable such contributions. The students are expected to contribute to existing open source projects.
s20 (tentative), s19
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++.
s20 (tentative), s19, s18, s17, s16, s15
Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language. Programming assignments are in both assembly language and other languages.
f19, f18, s18, f17, s17 f16, s16, f15, s15, f14, s14
The course is intended primarily as a second course for computer science majors but also suitable for students of other scientific disciplines. The students learn how to use and design data structures which organize information in computer memory. Data structures covered: stacks, queues, linked lists, trees (how to implement them in a high-level language, how to analyze their effect on algorithm efficiency, and how to modify them).
s16, f15, s15, f14, s14, f13
The course is intended primarily as a first course for computer science majors but also suitable for students of other scientific disciplines. The students learn how to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience is acquired through programming projects in a high-level programming language.
This course teaches key mathematical concepts using the new Python programming language. The first part of the course teaches students how to use the basic features of Python: operations with numbers and strings, variables, Boolean logic, control structures, loops and functions. The second part of the course focuses on the phenomena of growth and decay: geometric progressions, compound interest, exponentials and logarithms. The third part of the course introduces three key mathematical concepts: trigonometry, counting problems and probability. Students use Python to explore the mathematical concepts in labs and homework assignments. No prior knowledge of programming is required.
f11, s11, f10, s10, f09, s06, f05
The course is intended for prospective computer science majors and minors. It concentrates on problem-solving techniques using a high-level programming language. The course includes a brief overview of computer systems.
f11, s11, f10, s10, f09, s06, f05
The course is intended for prospective computer science majors and minors. In the course students are expected to work in small teams to complete programming assignments each week under the supervision of an instructor.
(special section for highschool seniors from Manhattan Hunter Science High School)
A technical introduction to computer science. Organization of hardware, software, information, and an introduction to programming. For potential Computer Science majors who may not be prepared for CSCI 135, science majors who need some basic computer knowledge, and for non-majors who want a more rigorous introduction to the field than CSCI 120.
CS Department Courant Institute NYU
echo "Last revised: "; $temp = pathinfo($_SERVER['PHP_SELF']); echo strftime("%b %d, %Y, %H:%M:%S", filemtime($temp["basename"])); ?> Joanna Klukowska