Meeting: Tuesday & Thursday, 9:30AM-10:45AM @ WWH 109
Instructor: Randy Shepherd
Email: rjs471 [at] nyu.edu
Office hours: Monday & Wednesday, 4:45PM-6:15PM in WWH 425
Graders: Shashank Singhal - shashank.singhal [at] nyu.edu & Suruchi Sharma - sss665 [at] nyu.edu
Please direct them to Romeo Kumar - kumar [at] cs.nyu.edu
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.
Class participation is important. Students should note that I generally ask all students to close their laptops at the start of class (i.e. no checking email or web surfing during class) to promote participation. Also, please note that the second half of the course (when we get to objects) is substantially harder than the first half, so attendance will be even more important.
- 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.
Many materials used in this course are borrowed with permission from Joanna Klukowska and Craig Kapp
SyllabusPart 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
- Arrays (1D and 2D), operations on arrays
- Objects and classes
- Object oriented thinking and design
- Inheritance and polymorphism
- Graphics and animations (using Processing)
- Exception handling and text I/O
- Abstract classes and interfaces
"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.