||All assignments and grades will be handled via NYU Classes, which is available
from your NYU Home account. This means:
- All assignments will be posted via NYU Classes
- You will submit all assignments via NYU Classes
- You will be able to check your grades via NYU Classes as the semester progresses.
||Open discussion on the forum is strongly encouraged for any questions/issues regarding:
This should be the first resource you tap when you have a technical question.
- General programming
- Java and Processing programming
- Discussions of lecture material
- Algorithm considerations
- Discussions of the programming assignments
- But NOT for sharing solutions!
We will use Piazza
for the discussion forum. The class Piazza forum will also be on the NYU Classes page
but you most likely find using the direct link here more convenient, so you can use tabbed
browsing and resize the window as you desire.
||I will send out class announcements via the email list.
All enrolled students should already be automatically signed
up for the mailing list. Please contact me if you are somehow not on the list.
||CS101 tutors will be available at:
||The following software will undoubtably be useful for this course:
- Java SE Development Kit (Java SE SDK (JRE + SDK))
- Java IDE: Eclipse is the Java IDE supported for this course, meaning that it is available in the labs and you may get help if you have Eclipse-related questions. However, you are free to choose another IDE if you'd like, such as NetBeans or JCreator, though if you run into problems with either, you may be on your own.
- Processing for graphics programming
Students will learn how to design algorithms to solve problems and how to translate these algorithms into working computer programs. Experience will be acquired through programming projects implemented in Java, a modern high-level programming language. This course is intended primarily as a first course for computer science majors and for students of other scientific disciplines.
Introduction to Java Programming, Brief Version, 10th Edition - By Y. Daniel Liang
- Note that the 10th edition is significantly different than previous versions.
- There will be a copy on reserve in Bobst.
- The comprehensive edition is NOT needed for this course, though it might
be a useful reference if you plan to take CSCI.UA.0102 Data Structures.
||This course covers the following topics:
- Basic programming review: control flow, loops, methods
- Basic data structures: arrays, multi-dimensional arrays, strings, objects
- Object oriented programming: inheritance, polymorphism, abstract classes, interfaces
- File input/output
- Event-driven programming
- Introductory graphics programming (via Processing)
Students with a lot of programming experience should consider taking a placement exam to possibly enroll directly in CSCI.UA.0102 Data Structures.
||If you have received a 4 or 5 score on the AP Computer Science Exam, you have already
received credit for CSCI.UA.0101 and therefore cannot enroll in it.
Instead, you should consider enrolling in CSCI.UA.0102 Data Structures. If you have
questions, please contact the Director of Undergraduate Studies for Computer Science.
||You should already have some familiarity with some high-level programming language, not necessarily Java, and be comfortable with the following concepts:
- Variables and basic data types such as int, float, double
- Basic arithmetic and Boolean operators and expressions
- Assignment and comparison statements
- Control flow: if/else statements, nested if/else statements
- Loops: for and while loops, nested loops
- Basic input and output
||If there is a question of whether you have the prerequisite knowledge and experience or not, please consider:
There are absolutely no downsides for you to take the placement exam, other than the time spent to take it, which is a small price to pay to ensure that you are enrolled in the ideal course for you.
- Taking a placement exam to determine which course would be best for you.
||If you do not have any previous programming experience, you will most
likely be best served by first:
- Taking CSCI-UA.0002 - Introduction to Computer Programming.