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:
- A medium-sized java project (2000-5000 lines of code).
- A smaller python project (around 500 lines of code).
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
- Lectures.
- Time: Tuesday, 3:30PM - 4:20PM.
- Classroom: Bldg 201, Teaching B Building.
- Tutorials.
- Time: Tuesday, 6:00PM - 7:50PM and Thursday, 6:00PM - 7:50PM.
- Classroom: Cheng Dao Bldg 102.
- 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
News.
Some news will be added to here at the student′s request.
- <2023-4-25> Please register the Code Examining session and fill Course and Teaching Evaluation (CTE) as soon as possible.
- <2023-4-03>: The instructor and TA have posted the final submission date and marking regulations. Plese check this page.
- <2023-3-07>: The instructor and TA have made a survey (link). Please fill it before this Friday (3.10).
- <2023-2-28>: The instructor has added the advanced feature "Cheating mode". I would like to thank Junxi Zhang for proposing it.
- <2023-2-18>: The instructor has added the advanced feature "Editing History" under the topic "Java Chat Room". I would like to thank Hanjun Zheng for proposing it.
- <2023-2-14>: The instructor has added more resources to the project "Java Movie Management System" for supporting self-learning.
- <2023-1-11>: The instructor has added the advanced features "Voice Chat" and "Message History" under the topic "Java Chat Room". I would like to thank Zihao Fang for proposing them.
Polices.
- 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.).
- 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.
- 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.
- 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).
- 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.
- 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 ).
Candidate Topics for Java (60 points)
Please choose one topic from the following:
- Java Movie Management System. You are expected to write a movie management system in Java.
The basic features include 1) User and Manager Systems, 2) Login System, and 3) Java GUI.
For more details, please refer to here .
- Java Chat Room. You are expected to write a chat room with Java.
The basic features include 1) Multi-Client Chat 2) Login System, and 3) Java GUI.
For more details, please refer to here .
- Java Games.You are expected to write a game with Java.
The basic features include 1) New Game Designs 2) Login System, and 3) Java GUI.
For more details, please refer to here .
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"
- Java Project Introduction
- Advanced Java Features
- Java Graphical User Interface (GUI)
- Java Socket Programming.
- Java Database (JDB).
- Java Web.
- Python Project.
Acknowledgement: The teaching materials use resource from
JavaTPoint and
W3School.