Intro To Computer Science

CSCI-UA.0101-005 SPRING 2018









Useful links



General Information

Meeting: Monday & Wednesday, 12:30PM-1:45PM @ CIWW 202

Instructor: Candido Cabo

Email: ccabo [at]

Office hours: Wednesday, 2PM-3PM in WWH 328


Waitlist Questions

Please direct them to Romeo Kumar - kumar [at]


Students will learn how to design algorithms to solve problems, and translate these algorithms into working computer programs using the Java programming language. This is a first course for computer science majors, or for students from other scientific disciplines. Students are expected to already have some programming experience (it doesn't have to be in Java). This can be either by taking the prerequisite course CSCI-UA.0002 or the placement exam.


  • Understand fundamentals of programming such as variables, conditional and iterative execution, methods, etc.
  • Understand fundamentals of object-oriented programming.
  • Understand basics of how programs are executed by a computer.
  • Have the ability to write computer programs to solve specified problems.
  • Be able to use a software development environment to create, debug, and execute programs.



Part 1: Fundamentals of Programming

  • Introduction to computer science and Java
  • Primitive data types and elementary programming, simple input/output
  • Conditional execution and selection statements
  • Mathematical functions, characters and strings
  • Iterations
  • Methods
  • Arrays (1D and 2D), operations on arrays

Part 2: Object oriented programming and design

  • Objects and classes
  • Object oriented thinking and design

Part 3: Advanced concepts

  • Inheritance and polymorphism
  • Graphics and animations (using Processing)
  • Exception handling and text I/O
  • Abstract classes and interfaces
  • Recursion



Students without programming experience should take the more introductory course -- CSCI.UA.0002. Students with a lot of programming experience may take a test out exam to move directly to CSCI.UA.0102 (Data Structures).


In this course you will be using Java, an object oriented language. You do not need to have any experience specifically with Java, but you need to be familiar with basic computer programming concepts:

  • Variables
  • The assignment operator
  • Arithmetic, relational and logical operators and expressions
  • Selection structures (if/else)
  • Repetition structures (for, while)
  • Basic input and output


"Introduction to Java Programming, Brief Version", 10th edition, by Y. Daniel Liang. This is a required textbook. There is a copy on reserve in Bobst.

NYU Classes

There is also a NYU Classes (access it via NYU Home) page for the course. You will need to submit all the assignments through NYU Classes. I will post your grades there.



Many materials used in this course site are borrowed with permission from Joanna Klukowska, Craig Kapp and Randy Shepherd.