0% found this document useful (0 votes)
13 views28 pages

2021-22 Sem 2 ENGG1340-COMP2113-intro-rbluo (Revision 2)

The document outlines the course structure and expectations for ENGG1340 / COMP2113, focusing on software development technologies and programming skills. It includes details on the teaching team, course format, major topics, assessment methods, and plagiarism policies. Students are expected to engage in self-learning, attend problem-solving sessions, and complete assignments and projects on time.

Uploaded by

mikewaics
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views28 pages

2021-22 Sem 2 ENGG1340-COMP2113-intro-rbluo (Revision 2)

The document outlines the course structure and expectations for ENGG1340 / COMP2113, focusing on software development technologies and programming skills. It includes details on the teaching team, course format, major topics, assessment methods, and plagiarism policies. Students are expected to engage in self-learning, attend problem-solving sessions, and complete assignments and projects on time.

Uploaded by

mikewaics
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 28

ENGG1340 / COMP2113

Computer Programming II / Programming Technologies


2021-22 Semester 2

About the Course

Dr. RB Luo
Teaching Team
Team A Team B
Module 1, 2, 4, 9, 10
Primarily responsible Five problem solving sessions Module 3, 5, 6, 7, 8
of Project Three assignments
Mid-term quiz and final exam

Instructors Dr. RB Luo Dr. Chenxiong Qian


([email protected]) ([email protected])

Teaching Assistants Mr. Tim C.K. Lai Mr. Kevin Y. K. Lam


([email protected]) ([email protected])

Mr. Marco K. H. Wong Ms. Shumin Li


([email protected]) ([email protected])

Ms. Qiuhui Li Mr. Yao Lai


([email protected]) ([email protected])

Mr. Yekai Zhou Ms. Runjian Chen


([email protected]) ([email protected])

* Consultation hours details are available in Moodle


I have already taken COMP1117 / ENGG1330 before

and here’s ANOTHER programming course?


What is this course about?
• You’ll learn about the various software development technologies
and tools that a competent computer science professional should
know and be good at

• To prepare you with solid programming skill and background to


cope with the upcoming challenges in the fundamental and
advanced courses in the Computer Science curriculum

• To get you to start developing professional practice in coding

Go check out "The Eight Levels of Programmers"


Major Topics

• Linux programming environment

• Version control

• C/C++ programming language


Course Format

• This is a self-learning course


• The ability of self-learning a new programming language is itself a learning objective of this course
• This is not supposed to be an easy course
• Module-based with checkpoint submissions as progress check
• Five Problem-solving sessions (tentatively in the 6th, 9th, 10th, 11th, and 13th week)
• One on-site mid-term quiz
• One group project
A tentative
course calendar
• Changes and new
arrangements will be
announced in the "News
Announcement" forum
• Do not switch off the email
notification of the "News
Announcement" forum
• All announcements made in
"News Announcement"
forum are considered
delivered
Five Problem-solving sessions
• Tentatively in the 6th, 9th, 10th, 11th, and 13th week
• Time change is unlikely, but if necessary, will be announced in Moodle earliest
possible
• Fully online and mandatory. Attendance will be taken
• Each student will be assigned to a group of 25-35, the grouping will be
announced by the 4th week
• Time slots
• Monday 12:30-14:20 ENGG1340B1, ENGG1340B2
• Tuesday 10:30-12:20 COMP2113B, COMP2113C
• Tuesday 13:30-15:20 ENGG1340C1, ENGG1340C2
• If you have another class time-clashed with your assigned problem-solving session time slot,
make a request to TA Kevin with screenshot proofs. We might assign you to another time slot
• Requests after Jan 31st will not be considered
• Requests without a proof will not be considered
• Emails badly written will not be considered
• Students TAs will work through selected coding problems during the session
Ten modules
• Ten modules
• #1: Linux Environment
• #2: Shell Script + Version Control
• #3: C/C++ Basics
• #4: Makefile, Programming Style, Basic Debugging, Python/C++ Comparison
• #5: Functions
• #6: Arrays, Strings
• #7: File I/O & Structures & Recursion
• #8: Pointers & Memory Management
• #9: C Specifics and GDB debugger
• #10: Standard Template Library
Ten modules

• Learning materials with clear objectives will be provided


• Learning materials & notes
• Practice exercises for self-review
• Readings & references
• Checkpoint tasks (require submission and w/deadline)
• You need to complete the module checkpoint tasks and submit to
Moodle before a given deadline for each module
Three assignments

• Programming assignments that you should complete individually and


submit by the deadline
• Three weeks to complete
• Read assignment instructions carefully and start early.
• Deadlines are strictly enforced
• Late Policy: if submit within 3 days after the deadline, 50%
deduction. After that, no mark
• Exceptions will be considered case by case for only medical reasons
or formal leaving
Assignment Grading
• No credit for a program that cannot compile or run in a standardized environment (CS' server
"academy11")
• It is possible that your code runs fine in your own computer or servers but doesn't run in academy11. Always
compile and test run your code in academy11 before submission

• Learn to write code that is not specific to a particular programming environment is a learning objective of the
course

• Your code will be auto-graded for technical correctness. Sample test cases are provided but
additional test cases are used for grading
• Your project code will be graded for appropriate coding styles too
• Rebuttal is allowed for possible technical errors or misunderstandings
• Please send your rebuttal request to your responsible student TAs (you will soon know the assignments), they will
work out a decision with the lecturers

• Rebuttal should be done in a week after the release of scores


Mid-term quiz
• On-site individual written test
• Mar 25th, 2022 at CPG-LG.1
• Closed book
• Question types:
• Multiple choice questions
• Short questions
• Programming questions
• There will be NO make-up or supplementary quiz. If no-show, the worst score
among the three assignments will be used for projecting the quiz score
• Subject to the fluid situation of the pandemic, the quiz might be canceled. If so,
other parts in the continuous assessment will be scaled up proportionally
Project
• You will work in a group of two, but grading will be done on an individual basis
according to:
1. Individual contribution tracked by GitHub
2. Peer review

• You will work on the project for 7-8 weeks, with intermediate milestones to
complete
• You will need to come up with specific ideas about a given topic
• At the end, you would have finished a complete project which incorporates the
skills you learned from this course
• More details to be announced according to the calendar
Assessment

• Continuous Assessment (70%)


• Problem-solving Sessions Attendance [5%]
• Ten Checkpoint Task Submissions [10%]
• Three Programming Assignments [30%]
• One Programming Project [15%]

• One Mid-term Quiz [10%] (contingent)


• Final Written Examination (30%)
On Plagiarism
• Discussions of materials and problems are encouraged. But make sure
that your submission is your own work
• Plagiarism detection software will be used in the grading of every
assignment
• Acts that would be considered as committing plagiarisms:
• Copying (in part or in full) from peers, senior students, internet sources (no matter
they are open source or private)
• Sharing your work to peers

• You should learn how to best protect your own work from potential leak
On Plagiarism
• The teaching team is responsible for maintaining assessment
fairness among all students, and so do you
• This is about academic and professional ethics, so we take it very
seriously
You should protect your work from Tips on how to avoid plagiarism:
I used my classmate’s potential leak and make sure you
computer to code and left my don’t submit anything which is not - Don’t look for too many references
work there. He accidentally your own work from the Internet
uploaded my code as his - Just get some idea and don’t read
submission into the code. Think on your own
There are classical problems which - Don’t share your code to others
are good coding exercises. Since (including posting to anywhere
The coding problem is typical,
you are submitting for assessment where others can access)
and I found answer from the purposes, you are required to - Code on your own
Internet, so I just copy and submit your own work
submit it
Plagiarism Policy
• As defined in the University’s Regulations Governing Conduct at Examinations, plagiarism is
the unacknowledged use, as one’s own, of work of another person, whether or not such
work has been published. Or put it simply, plagiarism is copying the work of another person
without proper acknowledgement. In case of queries on plagiarism, students are strongly
advised to refer to “What is Plagiarism?” (https://tl.hku.hk/plagiarism/)
• First Attempt: Students who admit committing plagiarism for the first time shall be warned in
writing and receive a zero mark for the component concerned. For those who do not confess,
the case would be referred to the Programme Director for consideration
• Subsequent Attempt: If students commit plagiarism more than once during the course of
studies, the case shall be referred to the Programme Director for consideration. The Programme
Director will investigate the case and consider referring it to the University Disciplinary
Committee, which may impose any of the following penalties: a published reprimand,
suspension of study for a period of time, fine, or expulsion from the University
Plagiarism example 1 • Change code sequence won’t work
Plagiarism
example 2

• Change variable
names won’t work
Plagiarism example 3
• Change comments won’t work
Plagiarism example 4
• Change code style won’t work
What do we expect from you?
• Be responsible for your learning progress
• It is expected that you spend roughly 10 hours per week for the course

• Check Moodle, enable notification <- This is the only official direct
communication channel for the course
• Follow course schedule
• Read instructions carefully
• Seek help whenever necessary
• Actively engaged in discussions (online/ offline)
• Be prepared to become a competent computer science professional
What kind of support do you have?

• Self-learning ≠ learn merely on your own without external help


• Self-learning = develop skills to acquire new knowledge (including
skills to seek help and advice)

Seek help and support form:


• Moodle online Q&A and discussions
• Problem-solving sessions
• Consultations
Tips for getting effective help

What NOT to do when seeking help

• Ask without doing some research if there are already answers to similar
issues Be well-prepared before you ask

• Merely throw your codes at TAs / STAs and hoping that they will debug
for you
• Post your assignment code or answers to Moodle
Tips for getting effective help
• Highly recommended to have online communications on Moodle so
everyone can share and learn

• How to ask?
• Be specific Bad example Good example
I don’t understand. Why isn’t this variable effective
inside this loop?
• Provide the context / background
Bad example Good example
It doesn’t work. I got this error when compiling
Why? my code with this Makefile
How do I ask a good question? (stackoverflow)
ð https://stackoverflow.com/help/how-to-ask
References

• You don't need these books unless you do


• Problem Solving with C++
• C++ How to Program
• C++ Primer
• A point to note: we will teach C++ as well as C
• Strings (C-string vs. string class)
• Standard I/O (printf/scanf vs. cin/cout)
• file I/O (FILE * vs. fstream)
• Memory management (malloc/free vs new/delete)
Get Started Now

Your first task: Finish Module 0 (available


already) and Module 1 (available by early
next week) checkpoints and submit by the
deadline in the third week

You might also like