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-3-28>: The instructor and TA are working on the final submission and marking regulations. We wil release once they are done.
- <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.
- Early Submission Bonus:
If you can submit both the java and python project before the April 24th (Monday), 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 ).
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 drop TAs an email so that the scores will be assigned to you.
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)):
- Java Project Introduction
- Advanced Java Features
- Java Graphical User Interface (GUI)
- Java Socket Programming.
- Java Database (JDB).
- Java Web.
- Week 10 (Apr. 4th) [slide] (coming soon)
- Week 11 (Apr. 11th) [slide] (coming soon)
- Python Project Introduction.
- Week 12 (Apr. 18th) [slide] (coming soon)
- Week 13 (Apr. 25th) [slide] (coming soon)
- Basic Machine Learning (ML) with python[slide] (coming soon).
- Week 14 (May 2nd) [slide] (coming soon)