Skip to content

henryhxu/csci4140

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

153 Commits
 
 
 
 
 
 

Repository files navigation

CSCI 4140: Open Source Software Project Development (2021 Spring)

Administrivia

Schedule and Zoom meetings (CUHK account required)

  • Lectures:
    • Wed 10:30am -- 12:15pm, link
    • Thu 5:30 -- 6:15pm, link
  • Tutorials:
    • Thu 9:30 -- 10:15am, link

Piazza

  • The Piazza page for this course is here. All questions should be posted on Piazza instead of using emails.

Instructors

Member Role Office Hours
Hong Xu Faculty Th 1-3 pm, SHB 914. By appointments only.
Chuanwen Wang Head TA
Yang Yu TA

Grading

Assessment item Weight
Programming Assignments (x3) 39%
Programming Project 30%
Final Exam 31%

Lecture schedule

Slides are downloadable from CUHK network only.

Week Date Topic Date Topic
1 1/13 Introduction 1/14 Version control system
2 1/20 Introduction to web applications 1/21 Scripting & Interpreted Language
3 1/27 PHP 1/28 Node
4 2/3 Node 2/4 Authentication
5 2/10 Sessions 2/11 Chinese New Year holiday!
5 2/17 Chinese New Year holiday! 2/18 Javascript-1
6 2/24 Javascript-2 2/25 Javascript-2
7 3/3 Python 3/4 Python
8 3/10 Communication, VM and containers 3/10 VM and containers
9 3/17 Mobile app-1, Mobile app-2 3/18 Mobile app-3
10 3/24 HTML5 3/25 NoSQL
3/31 Reading week 4/1 Reading week
11 4/7 Reading week 4/8 NoSQL
12 4/14 Hadoop 4/15 Spark
13 4/21 Project presentations 4/22 Project presentations, Final exam

Tutorial schedule

Slides are downloadable from CUHK network only.

Week Date Topic
1 1/14 Git
2 1/21 CSS
3 1/28 PHP
4 2/4 Heroku & Database Connection
5 2/11 Chinese New Year holiday!
5 2/18 Node.js
6 2/25 Chrome Extension
7 3/4 Guide to Assignment 2
8 3/11 Bootstrap & React
9 3/18 Andriod Apps
10 3/25 Assignment 3
4/1 Reading week
11 4/8 Docker
12 4/15 Machine Learning
13 4/21 Spark

Assignments

Assignment Deadline
Assignment 1, Github Classroom Tutorial, Heroku Deployment Tutorial 23:59, February 20, 2021 HKT
Assignment 2 23:59, March 18, 2021 HKT
Assignment 3 23:59, April 1823, 2021 HKT

Project

The course project is free-style and leverages today's open-source development tools/methodology. Our aim is to bring in the fun in developing a complete project. Students can work in a group of up to 2 members. We don't have any sample ideas for you to "borrow". Instead, you will propose your own project that all your team members are excited about.

As a matter of fact, you're not free to implement anything, or disregrading a fair workload-to-score ratio. The course instructor and the tutors will meet the students in order to sort out an estimated score for whatever plans a team has proposed. We will host two project discussion sessions to help decide the project topic.

Phase 0: Forming Groups

Deadline: 23:39 Jan 30, 2021, HKT

No. Members Topic
1 WANG Tianchang 1155107799, LUO Yiyang 1155124470
2 Ding Baizeng 1155124617, Han Tianyang 1155091993
3 Cheng Mo 1155144832, Li Yan Lap 1155127269
4 Leong Chon Hou 1155113489, Tsui Nga Yin 1155102438
5 Myratgeldi Jumageldiyev 1155118066, Alshir Soyunjov 1155119170
6 Ng Ka Wang 1155125265, Lo Tsz Fung 1155109312
7 Rustami Ubaydullo 1155102622, Sean Kevin O'Hare 1155116399
8 Jimmy Chim Lam CHU 1155110971
9 CHEUNG Hon San 1155110567, TONG Kai Tik 1155133189
10 ZHENG Zeqin 1155108667, Wong Kin Chi 1155109665
11 Chan Chi Chung 1155094762, Chan Kwun To 1155092996
12 CHEN Ying Chi 1155100383, YEH Shann Wei 1155100333
13 Chi Hung IP 1155109945

Phase 1: Topic Discussion

Deadline: 23:59 February 27, 2021 HKT

Zoom meeting for the project discussion: here

Please find the time of your group's appointment for a six-minute discussion with the course instructors at this doodle link using your group ID. Post a question on Piazza if none of the timeslots there works for you. You will need to submit a project proposal (5% of your project mark) before the meeting. The submission instructions are available here.

Sample proposals can be found below:

Phase 2: Topic Decision & Details

Deadline: 23:59 March 9, 2021 HKT (tentative)

You will need to finalize your project proposal (5% of your project mark) before the deadline.

Phase 3: Building Your Project

After you have finalized your proposal till project submission deadline.

Deadline: April 30

You will need to submit the source code, and a report of your project (60% of your project mark).
Students are required to submit a signed declaration form that can be downloaded here. Failure to comply with the University Policy may result in disciplinary action.

Phase 4: Project Presentation

Time: April 21,22 Location: Online

You will demonstrate what you have built in this semester to your classmates and the teaching team. Each group will have 10 minutes (including 1 minute for setup, 7 minutes for presentation, and 2-minute Q&A). All members need to present. You need to turn on camera when presenting. The presentation is worth 30% of your project mark.

Please submit your presentation slides to BlackBoard the night before your time slot. Failure to do so will result in 5-mark deduction.

Grading scheme for the presentation

Each group member will get the same mark for the presentation.

  • (15%) Content, e.g. breadth and depth of the material presented, efforts involved in the project, etc.
  • (10%) Quality, e.g. the use of English, the logical structure of the presentation, eye contact, etc. Using notes or other aids and simply reading out the notes will be penalized.
  • (5%) Slide design, clarity, conciseness, appropriate use of animations, etc.

Tips for a good presentation:

  • On content: Present a clear, logical, and interesting story.
  • On delivering: Speak up, and use the mic. Use simple English words, short sentences. Be enthusiastic about whatever you want to talk about. Do NOT memorize and recite. You only need to remember the key points you want to cover, not the exact sentences. Use eye contact with the audience. Use body language and gestures. Try to engage the audience with jokes or questions.
  • On slide design: Do NOT use small fonts. Keep the slides simple and clear. No fancy background. Put only the necessary contents on slides. Do NOT put every sentence on slides, and read them out. Use examples and animations and figures to visualize the talk. You may even use videos or audio clips if you are confident in controlling time.

Presentation Schedule https://docs.google.com/spreadsheets/d/1tPZ6DxCki5ejS-JUSxG7ahBpevsff9nzS_38UUlFygo/edit?usp=sharing

Proposal and report submission instructions

  • Submit on Blackboard, by going to the corresponding entries under "Course contents". You can submit as many times as you want and we only take the latest version to grade.
  • Submit PDF files only. Submissions in other file formats will result in ZERO marks for this item.
  • Page limit: 1 page for the initial proposal, 2 pages for the final proposal, 5 pages for the report. Page limit includes everything, e.g. figures and references if any. Do NOT use a cover page with just title and authors; just include the author info on the first page. Reports that exceed the page limit will result in 30% deduction of marks automatically.
  • Format: A-4 size paper, 12pt Times New Roman, single-lined spacing, single column. Violation of these formatting requirements will result in 30% deduction of marks automatically.

Final Exam

Time: May 6, 3:30pm. Location: Zoom.

Model answer for the final exam is available here.

Course Policies

Contact information

If you have a question, the best way to contact us is via the class Piazza site. We'll be conducting all class-related discussion here this semester. The instructor and TAs will check the site regularly. The quicker you begin asking questions on Piazza (rather than via emails), the quicker you'll benefit from the collective knowledge of your classmates and instructors. However, please avoid posting answers or hints for either homeworks or projects before the assignment is due.

You can mark a question as private on Piazza if your question is personal or not of interest to other students. If you wish to talk with one of us individually in person, you are welcome to come to the instructor's office hours and the tutorial sessions. We prefer using these methods instead of sending email, which does not scale well to a class of this size.

Announcements

The instructors and TAs will periodically post announcements, clarifications, etc. to the Piazza site. Hence it is important that you check it regularly throughout the semester.

Prerequisites

The prerequisites for CSCI 4140 are CSCI 2100/2520 or ESTR 2102. We assume basic knowledge of HTML, Python and PHP, and a basic familiarity using Linux systems.

Honesty in academic work

Your attention is drawn to University policy and regulations on honesty in academic work, and to the disciplinary guidelines and procedures applicable to breaches of such policy and regulations. Details may be found at the Faculty's Policy on Academic Honesty and the University's Guidelines on Academic Honesty.

With each assignment, students will be required to submit a signed declaration that they are aware of these policies, regulations, guidelines and procedures. The declaration form can be downloaded here.

In the case of group projects, all students of the same group should be asked to sign the declaration, each of whom is responsible and liable to disciplinary actions should there be any plagiarized contents in the group project, irrespective of whether he/she has signed the declaration and whether he/she has contributed directly or indirectly to the plagiarized contents.

For assignments in the form of a computer-generated document that is principally text-based and submitted via VeriGuide, the statement, in the form of a receipt, will be issued by the system upon students' uploading of the soft copy of the assignment.

Assignments without the properly signed declaration will not be graded by teachers. Only the final version of the assignment should be submitted via VeriGuide.

The submission of a piece of work, or a part of a piece of work, for more than one purpose (e.g. to satisfy the requirements in two different courses) without declaration to this effect shall be regarded as having committed undeclared multiple submission. It is common and acceptable to reuse a turn of phrase or a sentence or two from one's own work; but wholesale reuse is problematic. In any case, agreement from the course teacher(s) concerned should be obtained prior to the submission of the piece of work.

Collaboration

All homework must be done on your own. You can work together in a group on the course project. For homeworks, you must never read, see, or copy the solutions of other students, and you must not allow other students to see your solutions. For project, you must never read, see, or copy the code or solutions of other students (other than your project partner, for group projects), nor allow students other than your partner to see your solutions or code.

You may use books or online resources to help solve homework problems only if explicitly permitted in the homework/project instructions, but you must always credit all such sources in your writeup and you must never copy material verbatim. Not only is this good scholarly conduct, it also protects you from accusations of theft of your colleagues' ideas. You must not ask for homework/project solutions on Stack Overflow or other online sites; you may ask for help with conceptual questions, but you must credit your sources. You must not receive help on assignments from students who have taken the course in previous years, and you must not review homework or project solutions from previous years.

You must ensure that your solutions will not be visible to other students. If you use GitHub or another source control system to store your solutions electronically, you must ensure your account is configured so your solutions are not publicly visible. If you use GitHub, GitHub offers free student accounts that allow you to keep your solutions private; please use one.

We believe that most students can distinguish between helping other students understand course material and cheating. Explaining a subtle point from lecture or discussing course topics is an interaction that we encourage, but you should never read another student's assignment solution or partial solution, nor have it in your possession, either electronically or on paper (other than for project partners). You must never share your written solutions, or partial solutions, with another student, not even with the explicit understanding that it will not be copied. You must write your homework solution strictly by yourself.

Warning: In particular, you should be aware that copying or sharing solutions, in whole or in part, from other students in the class or any other source without acknowledgment constitutes cheating. Any student found to be cheating will (1) be referred to the relevant Offices of the Department, the Faculty and the University, (2) receive negative points on the assignment (i.e., worse than not doing it at all), and, depending on severity, (3) fail the course.

Textbook

The class does not have a required textbook. Please don't feel obligated to buy a textbook.

Lecture notes

We will provide lecture notes and/or slides for many of the lectures. These materials are not a substitute for attending class, as our discussion in class may deviate from the written material. You are ultimately responsible for material as presented in both lecture and tutorial.

Tutorials

Tutorial will sometimes cover important material not presented in lecture, and we expect you will attend.

Re-grading policies

Any requests for grade changes or re-grading must be made within one week of when the work was returned. A re-grade request must be addressed to the instructor and the corresponding TA via email. We will not accept verbal re-grade requests. Note that a re-grade can result in a decreased score as well as an increased score.

Bear in mind that a primary aim in grading is consistency, so that all students are treated the same. For this reason, we are unlikely to adjust the score of individual students on an issue of partial credit if the score allocated is consistent with the grading policy we adopted for that problem.

Late homework policy

We understand that sometimes a student may require additional time for submitting their homeworks for various reasons. Thus, we allow late homework/project submissions with penalty. Please do not ask for any extension besides the grace period you have.

In particular, 1) an assignment may be submitted within three days (72 hours) of the official deadline; 2) we will give no credit for homework turned in 72 hours after the deadline. The penalty on the homework mark starts at 25% on the first day and increments by 25% for each additional day in the grace period. We will count one day in the grace period even if a submission is only 10 minutes late.

We allow a two-day (48-hour) grace period with 15% penalty per day for late project submission.

Advice

We offer students of CSCI 4140 the following tips.

1. Don't wait until the last minute to start homeworks and projects! The homeworks and projects can be time-consuming. Pace yourself. Students who procrastinate generally suffer.

2. Make use of office hours! The instructor holds office hours expressly to help you. You are free to attend as many office hours as you wish. You will likely get more out of an office hour visit if you have spent some time in advance thinking about the questions you have, and formulating them precisely. (In fact, this process can often lead you to a solution yourself!)

3. Participate actively in tutorial sections! Tutorial sections are not auxiliary lectures. They are an opportunity for interactive learning. The success of a tutorial section depends largely on the willingness of students to participate actively in it. As with office hours, the better prepared you are for the discussion, the more you are likely to get out of it.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors