Spring 2023, Bilingual Class (Monday)


Dr. James Yu 余剑峤
Ms. Yueming Zhu 朱悦铭

Student Assistants

Lab 1 (Monday 78, LH3 509)

Lab 2 (Monday 78, LH3 508)

Instant Messaging

We have a QQ group for the course at 652080255.

Course Description

The course aims to cultivate students who have no programming experience before their university study. In this course, we will introduce the fundamentals of object-oriented programming language and programming techniques. The students will be familiar with the popular programming language Java and be able to construct programs for solving general problems. On completion of this course, the students should be able to:

  1. understand the basic components in a software system;
  2. know the basic syntax of the Java programming language;
  3. understand the features of object-oriented programming: abstraction, encapsulation, inheritance, polymorphism; and
  4. develop programs to solve real problems using integrated development environments.


Course Materials

There is no required text for this course. A reference textbook is “Java: How to Program (10th ed., late object version)” by Paul Deitel and Harvey Deitel. Lecture notes, lab sheets, and other materials will be posted periodically on this page.


There will be five written assignments, one project, and one final examination. We try very hard to make questions unambiguous, but some ambiguities may remain. Ask if confused or state your assumptions explicitly. Reasonable assumptions will be accepted in case of ambiguous questions.

Grade Breakdown

Schedule and Syllabus

Unless otherwise specified the lectures are 2:00pm to 3:50pm every Monday at Room 107, Lecture Hall 1, SUSTech.

Week #1Monday, Feb. 13Introduction to Computer Programming[slides] [lab]
Week #2Monday, Feb. 20Introduction to Java Applications[slides] [lab]
Week #3Monday, Feb. 27Control Statement I[slides] [lab]
Week #4Monday, Mar. 6Control Statement II[slides] [lab]
Week #5Monday, Mar. 13Arrays and ArrayLists[slides] [lab]
Week #6Monday, Mar. 20Methods: A Deeper Look[slides] [lab]
Week #7Monday, Mar. 27Introduction to Classes and Objects[slides] [lab]
Week #8Monday, Apr. 3Strings, Wrapper Class, and File IO[slides] [lab]
Week #9Monday, Apr. 10Class and Objects: A Deeper Look[slides] [lab]
Week #10Monday, Apr. 17Inheritance I[slides] [lab]
Week #11Monday, Apr. 24Inheritance II & Polymorphism I[slides] [lab]
Week #12Monday, May 1Labor Day Holiday
Week #13Monday, May 8Polymorphism II[slides] [lab]
Week #14Monday, May 15GUI programming[slides]
Week #15Monday, May 22Java Collections, Generic Methods and Classes[slides] [lab]
Week #16Monday, May 29Exception Handling and Recursion[slides]