CSC-1004: Computational Laboratory Using Java

Course Introduction

This course is a computational lab course for the purpose of strengthening programming skill. As a laboratory course, CSC-1004 will be delivered in the format of finishing projects. Self-learning is especially important for succeeding in this course. Each student is expected to individually implement:

Each student will must finish three projects and submit the executable program, source code, and videos.

Scoring: 1) Java Project (60%), 2) Python Project (30%) and 3) Advanced Features (10%).

For the detailed scoring scheme, please check the project introduction below.


Course Arrangement

  1. Lectures.
    • Time: Friday, 10:30AM - 11:20AM.
    • Classroom: Bldg 103, Teaching B Building.
  2. Tutorials.
    • Time: Friday, 6:00 PM - 8:50 PM (3 sessions, each session takes 50 mins).
    • Classroom: Teaching D Bldg 314.
  3. Office Hours.
    • Guiliang Liu (Instructor): Friday, 11:20 AM - 12:20 PM, Bldg 103, Teaching B Building.
    • NING, Zhihan (Leading TA): Wednesday, 8:00 PM - 9:00 PM, Room 318, Daoyuan Building.
    • QIAO, Guanren (TA): Thursday, 2:00 PM to 3:00 PM, Seat No.87, 4th Floor, Zhixin Building.
    • CAI, Weilin (TA): Monday 4:00 PM to 5:00 PM, Room 318B, Chengdao Building.
  4. Undergraduate Consulters (they are in our slack group, please find them for help!).
    • Feivel Ehren Hermanto (USTF, Former Student), Email:122040011@link.cuhk.edu.cn.
    • LI, Yirui (USTF, Former Student), Email:122090288@link.cuhk.edu.cn.
    • QIU, Runheng (USTF, Former Student), Email:122090437@link.cuhk.edu.cn.
    • Bao, Mingyi (Student Volunteer), Email:123090003@link.cuhk.edu.cn.
    • Zhang, Wangmeiyu (Student Volunteer), Email:123090825@link.cuhk.edu.cn.

Important Notes

News.

Some news will be added to here at the student′s request.

Polices.

  1. Submission Due: Please make sure you have submitted the project through the E-Learning platform (the submission channel will be released). The due for the final submissions are:
    • Java Chat Room: 2024.2.25
    • Java Game: 2024.4.07
    • Python Game: 2024.5.19
  2. Late Policy. A late submission should receive a 10% penalty for each date after the due. Note that the penalty can accumulate until it reaches 100% (late for 10 days). If you need special care (e.g., for surgery and other health problem), DO NOT wait until the last moment, and please let me know in advance (see my contact below).
  3. Late Drop. A late drop from the course is not encouraged. Under some very special circumstance, student may apply for a late drop, but there is no guarantee that the request can be approved. Note that the decision is made by both the instructor and the school office.
  4. Plagiarism. Plagiarism is strictly prohibited. If the instructor or TAs catch the sign of plagiarism in your project, you will receive a penalty and take the consequences, potentially including failing the course, a warning record, suspension of your study or even dismissal from the school. You must finish the coding by yourself (without any group members). DO NOT let others borrow your codes for reference. If any plagiarism happens, both the borrower and the lender receive a penalty.

Project Topics

Each student must individually finish the following projects:

  1. Java Chat Room. You are expected to create a Java Chat Room. The basic features include 1) Multithreading Implementation, 2) Chat Room Functions, and 3) Message Display. For more details, please refer to this project page .
  2. Java Game. You are expected to create a game with Java. The basic features include 1) Preliminary Game Rules 2) Java GUI, and 3) Direct Mouse Control. For more details, please refer to this project page .
  3. Python Games.You are expected to create a game with Python. The basic features include 1) Preliminary Snake Game Rules 2) Python GUI, and 3) Direct Keyboard Control. For more details, please refer to this project page .

Course syllabus and Timetable

Topics covered will include the following (The instructor will consistently upload slides and the timeline might be changed at the needs from students)):

  1. Java Project Introduction
  2. Java Inheritance
  3. Java Socket Programming and I/O
  4. Java Multi-Threading
  5. Java Graphical User Interface - Part I
  6. Java Graphical User Interface - Part II
  7. Java Graphical User Interface - Part III
  8. Java Graphical User Interface - Part IV
  9. Python Basic
  10. Python Class
  11. Python Graphical User Interface(GUI)
Acknowledgement: The teaching materials use resource from JavaTPoint and W3School.

Contact