Looking ahead: what's in store for you
What comes next in Units 3-5 and 6-8
Units 3, 4 and 5 will focus on data structures, sorting and searching:
- We got a small taste of data structures when we used the
mysterious arraylist in Module 0.
- Using the arraylist made sense but we don't know
how it works. That is, if we had to write code to implement
an arraylist, how would we do it?
- Units 3-5 will focus on three types types of core data
structures: linked lists, queues and stacks.
- We'll begin by reviewing multidimensional arrays and going a
little deeper.
- Remember the parentheses-matching problem? We will see how
easy that becomes when we learn how to use a stack.
- Likewise, we will learn not only how to use data structures
for problems but also how to build them.
- We will also get a first glimpse at even more powerful
data structures called trees (we'll see why they are so
named), and the rather cool-sounding hash tables.
-
Each of these data structures turn out to be useful in different
applications and are a foundational building block.
- They are also a favorite technical interview question.
- Along with data structures, we will learn to use a
powerful, yet initially strange, approach to programming: recursion.
- In recursion, a method is written to call itself.
- This appears weird, but if used correctly, can elegantly
solve many problems.
- Lastly, we'll learn a few simple ideas in performing sorting
and searching. Both are computational building blocks that are
useful as parts of other applications.
And what about units 6-8?
- These units have two goals: (1) understanding objects;
and (2) building applications.
- At this time, many aspects of building an application have
been hidden behind tools created to simplify such as
DrawTool
or
IOTool.
- Beyond input-output and drawing, we will need to understand:
- How to build an interface with buttons, menus and such.
- How to enable communication between programs (such as
phone-to-server).
- How to write code that sits behind websites.
- A significant part of the course will address objects.
- Objects are Java entities that allow constructing larger
units that combine both methods and data structures.
- Such entities can then be used many times and in different ways.
- Objects are also an approach to organizing large volumes
of code, and simplifying the interactions between multiple
people who contribute to a single application.
- Lastly, we will also learn a new programming language,
the C language.
- Yes, the name is just that one letter. And yes, there were
prior abandoned attempts called A and B.
- C is a somewhat more basic and not as friendly to use as
Java, but powerful in some aspects.
- The latter property makes C the language of choice for so-called
embedded applications: code that runs on small
devices.
We will occasionally step back and point out a few things
about the rest of the Gateway curriculum. We'll have more
to say about the other units (Unit 9 onwards) at a another time.
Back to Unit-2