Topics Covered
- Java features: abstract classes, interfaces, inheritance, polymorphism, generics, iterators, exception handling, file I/O
- Recursion
- Worst case asymptotic running time analysis
- Abstract data types
- Lists, stacks, queues
- Trees (binary and binary search trees)
- Sorting algortihms (merge sort, quicksort)
- Hashing and hash tables
- Graphs
- Priority Queues (optional)
- Other sorting algorithms
Textbook
Check with your instructor for the textbook details. | |
|
Additional resources:
- Open DSA - online eBook
- Visualgo.net - visualising data structures and algorithms through animation
- Java Notes by Fred Swartz
- Think Java: How To Think Like a Computer Scientist by Chris Mayfield and Allen Downey
- Java, Java, Java: Object Oriented Problem Solving by Ralph Morelli and Ralph Walde
Prerequisites
The CSCI-UA 102 class at the Computer Science Department in Courant Institute of Mathematical Sciences is taught in Java.
Students starting the CSCI-UA 102 are expected to be familiar with Java at the level equivalent to one semester college
level course (usually CSCI-UA 101).
Topics covered in CSCI-UA 101: 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, 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, basics of recursion.
Java Review Resources
Students entering CSCI-UA 102 should be familiar with the sample material listed below.
If you took the equivalent of CSCI-UA 101 (Introduction to Computer Science) in a different programming language, or, if you
took CSCI-UA 101 a while ago and may need a refresher, here are some resources that may come in handy.
if you already know Python:
open books teaching Java from scratch:
- Think Java: How To Think Like a Computer Scientist by Chris Mayfield and Allen Downey
- Java, Java, Java: Object Oriented Problem Solving by Ralph Morelli and Ralph Walde
an online course teaching Java from scratch and tutorials:
- Object-Oriented programming with Java, part I
- Object-Oriented programming with Java, part II
- Java Programming Tutorial, Java Basics
online practice:
sample programming assignments given at the end of CSCI-UA 101:
- Jurassic Park Creation Lab Project
- WiFi locator based on open data Files needed for this assignment: NYC_Wi-Fi_Hotspot_Locations.csv and zip_codes_NYC.csv
- Sequential Ordering Interface Assignment
- Campaign Contributions
sample practice questions given in CSCI-UA 101:
Tutoring
This semester the CS Department will be offering
Synchronous Drop-In Tutoring
Tutors will be available throughout the semester on Zoom and in-person. Check the calendar for Zoom links to each session and the locations for the in-person sessions. Tutoring starts in the second week of classes and continues until the last week of classes (there is no tutoring available during the finals week or any days that there are no classes).
To access online drop-in tutoring you need to be logged into your NYU Google and NYU Zoom accounts - non NYU accounts will be unable to access this service! For instruction on how to activate your NYU Zoom account and how to log in see NYU Zoom
To provide feedback about tutoring (e.g., tutor is absent, tutor was very helpful, the room is too crowded, …), please, complete the following form: CS102 Tutoring Feedback Form
The following calendar is updated on a regular basis to reflect any last minute changes to the regular schedule.
To add this calendar to your own:- Open your own google calendar.
- Next to "Other calendars" on the left, click the Down arrow .
- Select Add by URL.
- Enter the calendar's public address in the field provided. The address is:https://calendar.google.com/calendar/embed?src=nyu.edu_94a70vllg9s26utu06kkoupp40%40group.calendar.google.com&ctz=America%2FNew_York
- Click Add Calendar.
Asynchronous Q&A
You may also get in touch with our tutoring team by using an online forum. Questions asked in this way will not be answered immediately. The response time may be a few hours or a few days.
To do this we will be using the "Ed" online discussion forum tool. Using Ed you will be able to ask the course tutors a private question. If the tutor determines that the question and answer may be beneficial to other student, they may make it public. Your questions can include code snippets as examples, but you should not post your entire assignments and as the tutors to review them or debug them.
To join this Ed discussion forum simply visit this link and register with your NYU E-mail address: https://edstem.org/us/join/D5YHCb Once you've registered please check out the "Welcome and How to Get Help" thread - we've posted some "ground rules" here on what should and should not be posted to Ed and how to use this resource to your advantage. When you're ready to ask a question simply click the "New Thread" button and select the category for your question. Then type your question in the box provided, using the "code" button ("<>") to add in Java code to your thread if applicable.