CS 102 Algorithms and Programming II (Fall 2021-2022)


         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 laboratory 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 and demonstrate your project. 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.

Important Announcements

There will be no labs on September 22, 2021, Wednesday. First lab (Lab 0) will be on

         September 29, 2021, Wednesday 13:30-17:20, Labs: B201-B202.

CS102 Moodle Page (Announcements, Projects and Assignments)

Course Schedule:

         Tuesday 13:30-14:20, 14:30-15:20 (B-206), Friday 08:30-09:20 (B-206) (Spare Hour), 09:30-10:20 (B-206)

Lab Schedule:

         Wednesday 13:30-17:20 (Labs: B201-B202)

Course Rules:

1.     Grading (Tentative):

1.     25% Midterm: Essay/written

2.     25% Final: Essay/written

4.     15% Laboratory Work (Programming Assignments)

3.     25% Project (Group)

3.     10% Quiz and Homework

2.     Those who get below 30 out of 100 from the midterm and below 75 out of 100 from the programming (lab) assignments will get an FZ grade regardless of their other grades. Not to get an FZ grade, each student is expected to make a reasonable contribution to each stage of the project. The students who got an FZ grade cannot take the final exam.

4.     Attendance to the lectures and laboratory mandatory.

5.     You will fail the course if the attendance is below a certain percentage.

6.     Those who fail to attend more than one lab without any excuse (a valid medical report, etc.) will fail the course.

o    Schedule

(Select "Offerings", "Computer Engineering", CS102 (Your section), and "Course Detail".

o    Syllabus

(Select "Offerings", "Computer Engineering", CS102 (Your section), and "Syllabus".


o    Required: Cay S. Horstmann, Big Java: Late Objects, Enhanced eText 2nd edition. Cay S. Horstmann, 2016, Wiley. Wiley - Students Resources, Wiley Student Companion Site: Contains Useful Materials, including Source Codes, Video Examples, Worked Examples, and so on.

o    Recommended: John Lewis and William Loftus, Java Software Solutions, 9th Edition, Addison-Wesley, 2017. Pearson - Companion Web Site: Contains Useful Materials, like Video Notes, Programming Examples Source Codes, and so on.

Last updated: September 01, 2021