· Undertake real-world design task
· Work as a member of a team
· Practice communication in written & oral form
· Learn more programming techniques
· Practice independent learning!


CS102 gives you an opportunity to put the basic computer literacy, design and programming skills you learnt in CS101 into practice. The course has two components. The first is simply a continuation of CS101 aimed at expanding the range of techniques you have available to solve problems. These new techniques will be presented in formal lectures and, as in CS101, you will be given lab. assignments designed to let you practice them. Material in this section includes recursion, files and some basic data structures, plus a little about object-oriented programming, event-driven architectures, searching and sorting. There will be written exams on these topics. The second component of the course is a semester-long design project. The ultimate goal is to produce a commercial-quality program which is fully documented, bug-free and easy to use. You will work in groups, each group selecting a different project. You will be expected to prepare a number of written reports and to present these in class. These documents will include basic requirements, specifications, detailed design and user manuals. Groups will discuss each other's work and offer suggestions and criticisms on it so as to help improve the final product. Projects will be undertaken using Java. Students will be expected to display creativity and an ability to learn independently.

CS102 Course Website
Syllabus and Classroom Materials
Quiz/Homework Grades