CS102A Introduction to Computer Programming A

Fall 2019, Bilingual Class


Dr. James Yu 余剑峤

Course Description

The course aims to cultivate students who have 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 and the working mechanism of the Internet and the Web;
  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 six 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 10:20am to 12:10pm every Tuesday at Room 102 of Lychee Hill Building No. 1, SUSTech. There are several lab classes, and mine is 14:00pm to 15:50pm every Tuesday at Room 406 of Lychee Hill Building No. 6, SUSTech.

Week #1Tuesday, Sept. 3Introduction to Computer Programming
Week #2Tuesday, Sept. 10Introduction to Java Applications
Week #3Tuesday, Sept. 17Control Statement I
Week #4Tuesday, Sept. 24Control Statement II
DeadlineSunday, Sept. 29Assignment 1 Due
Week #5Tuesday, Oct. 8Introduction to Classes and Objects
Week #6Tuesday, Oct. 15Methods: A Deeper Look
DeadlineSunday, Oct. 20Assignment 2 Due
Week #7Tuesday, Oct. 22Arrays and ArrayLists
Week #8Tuesday, Oct. 29Strings and wrapper class
DeadlineSunday, Nov. 3Assignment 3 Due
Week #9Tuesday, Nov. 5Class and Objects: A deeper look
EventMonday, Nov. 11Project Specification Release
Week #10Tuesday, Nov. 12Inheritance
DeadlineSunday, Nov. 17Assignment 4 Due
Week #11Tuesday, Nov. 19Polymorphism
Week #12Tuesday, Nov. 26Generic Classes and Methods
DeadlineSunday, Dec. 1Assignment 5 Due
Week #13Tuesday, Dec. 3Generic Collection
Week #14Tuesday, Dec. 10GUI programming
DeadlineSunday, Dec. 15Assignment 6 Due
Week #15Tuesday, Dec. 17Recursion
EventTuesday, Dec. 17Project Inspection
Week #16Tuesday, Dec. 24Exception handling