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-teaching is especially important for succeeding in this course. Each student is expected to individually implement:

Each student will choose a project from a list of topics (See the Section Project Topics below), and submit the executable program, source code, and necessary documents at the semester end.

Scoring: 1) Java Project (60 points), 2) Python Project (20 points) and 3) Bi-weekly report (10 points). 4) GitHub Repository (5 points) 5) Course and Teaching Evaluation (CTE) (5 points).

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

Course Arrangement

  1. Lectures.
    • Time: Tuesday, 3:30PM - 4:20PM.
    • Classroom: Bldg 201, Teaching B Building.
  2. Tutorials.
    • Time: Tuesday, 6:00PM - 7:50PM and Thursday, 6:00PM - 7:50PM.
    • Classroom: Cheng Dao Bldg 102.
  3. Office Hours.
    • Guiliang Liu (Instructor): Tuesday, 4:30 PM - 5:30 PM, Bldg 201, Teaching B Building.
    • Linxin Yang (TA): Monday, 4:00 PM - 5:00 PM, Room 302, RB Building.
    • Yaomin Wang (TA): Thursday, 4:00 PM - 5:00 PM, No.110, The bigger room of SDS Research Lab, 4th Floor, Zhi Xin Building.
    • Chaoxun Guo (TA): Wednesday , 7:00 PM - 8:00 PM, Room 318, Dao Yuan Building.

Important Notes


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


  1. Code Examining: We will use the tutorial sessions in <2023-5-4> , <2023-5-9> and <2023-5-11> for examining your Java Project. Every student must join this session by registering with This Excel Form (An extra project checking session may be added depending on the needs from students.).
  2. Submission Due: The due for the final submission (Java + Python) will be <2023-5-12>. Please make sure you have submitted the project through the E-Learning platform (the submission channel will be release soon) before this date.
  3. Early Submission Bonus: If you can submit both the Java and Python project before the <2023-4-24>, 3 points (3/100 points) bonus will be added to your final scores.
  4. 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).
  5. 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.
  6. 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.

Github Repository (5 points)

To better report the progress of your project, you are required to create private (instead of public ones) github repositories for the class. The name of these projects should be CSC1004-Java-ProjectTopics and CSC1004-Python-ProjectTopics . If you want to know how to create a github repository and the basic git commands, please come to the tutorial. The link of this repository should be reported in the bi-weekly report (see below).

Bi-Weekly Report (10 points)

Please submit the weekly report based on the following format. Note that the link of this repository should be reported in the bi-weekly report (Check the format here ).

Course and Teaching Evaluation (CTE) (5 points)

A proper CTE will help both the instructor and teaching assistants (TAs). Please finish the CTE at our school's request. Once you have submitted, please submit the recordings or proof to the blackboard system. We will assign you the scores when we find your submission.

Candidate Topics for Java (60 points)

Please choose one topic from the following:

Python Project Topic (20 points)

Python Project: Image Classification. You are expected to write a python project that learns a model for image classification. For more details, please refer to here .

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)):

Note that zoom is keeping removing the video records from their cloud. If the link does not work, please find the backups in the "The blackboard App -> CSC-1004: Computational Laboratory Using Java -> content -> Lecture Recordings / Tutorial Recordings"

  1. Java Project Introduction
  2. Advanced Java Features
  3. Java Graphical User Interface (GUI)
  4. Java Socket Programming.
  5. Java Database (JDB).
  6. Java Web.
  7. Python Project.
Acknowledgement: The teaching materials use resource from JavaTPoint and W3School.