The main things you should bring into this course include:
-
Above all, you need to bring a willingness to learn on your own. In this course you learn by doing and by asking questions. Frequently
we will provide short introductions (or lectures) on the material that
we ask you to learn; however, much of the learning happens when you explore the textbook, the exercises, and the subject matter on which the exercises are based.
-
Enthusiasm, curiosity, perseverance, and a "can do" attitude.
-
Willingness to work cooperatively with other students (inside the classroom and out) to enhance the learning environment for everyone.
-
Willingness to consistently devote enough time to the course.
-
Willingness to experiment with new Java classes/concepts that we discuss by writing little programs to try them out, without waiting for assigned programs
that specifically tell you to do so.
-
Commitment to keep up with the course and to ask questions when you do not understand something.
-
A strong comfort level with variables, assignment, if,
while and for loops, writing and calling
methods, formal and actual parameters, pass by value.
-
Comfort with defining and using classes (including inheritance), objects, methods, parameters, arrays, and exceptions.
-
Familiarity with some specific prerequisite course material, including (references to the corresponding sections of the Weiss textbook
where you can review them are in parentheses;
these textbook sections may also have some material that is new to you, but
most of it should be familiar)
-
recursion (7.1, 7.3)
-
inheritance, interfaces, polymorphism, static variables and methods, method overloading and overriding (4.1–4.6)
-
wrapper classes for primitive types, automatic wrapping and unwrapping (4.6.2–4.6.3)
-
Comparator objects (4.8)
-
elementary algorithm analysis, including big–Oh (5.1–5.2, 5.7–5.8)
-
logarithms and when they occur in algorithm analysis
(5.5)
-
Using
the Java Collections framework, including these
interfaces and classes: Collection, List, Iterator, ListIterator, Collections, Arrays (Chapter 6)
-
the basic ideas behind linear data structures: array, stack, queue,
array list, and linked list (Chapter 6)
-
Some implementation details of array lists and linked
lists.
-
elementary sorting methods including insertion, selection, and merge sorts. (8.1, 8.5,
selection sort)
-
Sequential and binary search of arrays (5.6.1–5.6.2)