CS 112: Introduction to Programming II

Here's the course description from the department handbook:
Prerequisite: CS - 110 (grade of C or better). Design and development of significantly sized software using top-down design and bottom-up implementation. Dynamically allocated data, object-oriented programming, architecture of memory, basics of language translation, and basics of algorithm analysis. Development of simple graphical user interfaces. Four hours lecture, two hours lab. Offered Fall and Spring.
Could you be less specific?
This class is designed to extend your skills in programming, both in Java and more generally. We'll talk about object-oriented design, good programming and software engineering practices, and knowledge necessary to be a proficient programmer. You'll also get an introduction to C.
What are the course requirements?
You'll have 5 programming assignments, plus a midterm and a final. There will also be in-class labs to work on - these will be graded as 'done' or 'not done'.
What sort of background should we have?
cs110 is the prerequisite. You should have some exposure to Java. We'll do a bit of Java review at the beginning of the class to shake off the rust.
What language will you be using?
Mostly Java. We'll spend 4 weeks at the end of the semester learning C.
What's the class like?
The class will be very lab-oriented. I'll often lecture for 15-20 minutes and then give you something to work on for the next 20-30 minutes. It will be very interactive. I believe that the best way to learn about programming is to actually do it yourself, so I'll give you lots to do.
What will we learn about?

The syllabus page has a tentative list of topics.