Courses @ CIMS-NYU

CSCI-UA.0480 Special Topics: Open Source Software Development (OSSD)

s20 (tentative), s19, s18

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.

CSCI-UA.0480 Special Topics: Algorithmic Problem Solving (APS)

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++.

CSCI-UA.0201 Computer Systems Organization

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.

CSCI-UA.0102 Data Structures

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).

CSCI-UA.0101 Intro To Computer Science

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.

CORE-UA.0109 Quantitative Reasoning: Math and Computing

f19, f18, f17, f16

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.

Independent Study Projects

  • Wearable Electronics, f19
  • Contributing to Humanitarian Open Source Software Projects, f18
  • Free Open Source Software, f15

Courses @ Hunter College

SCI 135 Software Analysis and Design I

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.

CSci 136 Supervised C++ Programming Lab

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.

CSci 127 Introduction to Computer Science

(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

    Joanna Klukowska