Department of CSE, IIT Kharagpur

Programming and Data Structure Laboratory
CS19003, Autumn 2020-21
Section 20

Lab hours: Tuesday, 9:00 -- 11:55 AM

Announcements

  • First class on Tuesday, Dec 1, 2020 at 9:00 AM -- join the online meeting room of Prof. S. Ghosh using this Google Meet link

  • Students divided into 7 groups -- see "Resources for Students" to know which group you are in

  • Every student should create an account on the Moodle system of CSE department -- see "Resources for Students"

  • There is a strict policy against adoption on unfair means / malpractice -- see "Resources for Students"

Lab-related resources for students

C programming resources

How a Lab session will proceed (unless declared otherwise)

  • At 9:00 am, ALL students should join the meeting room of Prof. S. Ghosh (see "Teaching Personnel" for the meeting room link). Prof. Ghosh will introduce the assignments of the day, make general declarations, etc. During this session, every student should keep their microphone on "mute", and only Prof. Ghosh will speak. If you have any question, do not start speaking suddenly. There is a "chat" where you can type in your question. Prof. Ghosh will see the question and answer in some time.

  • After the session with Prof. Ghosh, each student should join the meeting room of the specific TA to whom he/she is assigned. Students have been divided into 7 groups -- see "Resources for Students" to know which group you are in. Remember your group number. Each group has been assigned to a TA. See "Teaching Personnel" to know which TA your group has been assigned to, and join the meeting room of that TA.

  • On every regular Lab day, an assignment will be given, comprising of a set of C programming questions. You will have to solve the questions and submit your programs before the end of the Lab session. All assignment submissions will be via the Moodle system of the CSE department. You should familiarize yourself with the Moodle system on the first day, so that you can submit assignments henceforth. See "Rules for Lab Sessions and Assignments".

  • If there is any change to the above description, you will be notified. E.g., if a particular TA cannot attend the Lab session on a certain day, then the students of the corresponding group (allocated to that particular TA) will be asked to join the meeting room of other TAs for that day. Such changes will be declared as and when necessary.

Rules for Lab Sessions and Assignments

  • On every regular Lab day, an assignment will be given, comprising of a set of C programming questions. You will have to solve the questions and submit your programs before the end of the Lab session. Whatever programming platform you use, you will finally have to submit a C source file (.c file) for each question. We will not accept any other form of submission.

  • There can be multiple questions in a particular assignment. For each question, you need to submit a separate C source file (.c files). You should compress all .c files as a single .zip or .tar.gz file, and then submit the compressed file. The compressed file should be named as {ROLL_NUMBER}_{ASSIGNMENT_NUMBER}.{EXTENSION}. Example: If your roll number is 20CS10020, then for the first assignment A1, your submission file should be named as 20CS10020_A1.tar.gz or 20CS10020_A1.zip. Assuming that the assignment A1 has three questions, the individual program source files should be named as 20CS10020_A1_1.c, 20CS10020_A1_2.c, and 20CS10020_A1_3.c. Not following these instructions can lead to penalty.

  • Submissions (the compressed .zip or .tag.gz file) will need to be uploaded to the course Moodle. See "Resources for Students" to get the details of the Moodle. You should create your own account for Moodle. Keep your account password private.

  • For every assignment, the submission deadline on Moodle will be set to 11:55 AM (end of the scheduled lab hours). At this time (according to the Moodle clock), the submission link will close, and no further submission will be possible. You are required to submit your programs within the deadline. If you miss the deadline, you get zero marks for the corresponding assignment. It is advisable to submit 5-10 minutes early, without waiting for the last minute.

  • In the initial few weeks, the TAs will help you solve the assignments (if necessary). Feel free to ask them if you are having problems -- such interactions should be in the meeting room of your assigned TA. However, you should NOT only depend on the TAs, but try to become self-sufficient in solving the programming questions. Help from TAs will reduce as the semester progresses.

  • Assignments are to be done individually. As stated above, you can take the help of a TA. But you should NOT take the codes from any other student, or copy codes from the Web. Any sort of unfair means / malpractice will be heavily penalized. See rules about malpractice under "Resources for Students".

  • Attendance to every Lab session is mandatory. The TAs will be marking who all are present. Assignment submission of a student will NOT be accepted unless he/she is present during the lab session for interaction with the assigned TA. If any student misses a Lab session, he/she will have to provide a genuine compelling reason (e.g., medical emergency). The student will have to provide supporting documents to justify the reason.

Rules for Lab Tests

  • On the day of the test, a set of C programming questions will be given. You will have to solve the questions and submit your programs within the stipulated time via Moodle. You will have to submit a compressed file containing a C source file (.c file) for each question. [This part is very similar to what happens during a normal Lab session.]

  • The submission deadline on Moodle will be set according to the stipulated time for the test. At this time (according to the Moodle clock), the submission link will close, and no further submission via Moodle will be possible. You are required to submit your programs within the deadline. If you miss the deadline, you will be penalized 25% of the full marks of the test. It is advisable to submit 5-10 minutes early, without waiting for the last minute.

  • There will not be any help from TAs during a Lab Test.

  • Lab Tests are to be taken individually. You cannot take the help of any TA or any other student or any one else during the test. Also you are not allowed to look at any code on the Web or any book, etc during the test. Any sort of unfair means / malpractice will be heavily penalized, which may amount to getting zero in the whole test.

  • If any student misses a Lab Test, he/she will have to provide a genuine compelling reason (e.g., medical emergency). The student will have to provide supporting documents to justify the reason.

Good programming guidelines


You should follow some good programming practices while writing programs, so that it is easier for you as well as others to understand your codes:

  • Use meaningful variable names, that give an idea of what value a variable stores (e.g., variable names like ‘total’, ‘area’, etc., and not just ‘x’, ‘y’, 'z', etc).

  • While taking user-input, display a prompt, e.g., “Enter the next value: ”, or “Enter the length of side of the triangle: ” (which will inform the user what value is to be entered).

  • Use proper indentation in your codes

  • Document your code by writing meaningful comments. E.g., before a loop, write a short description of what the loop does in every iteration.

Course Evaluation

  • Weekly assignments: 40%

  • Programming tests (3 in number, with the third one being optional): 40%

  • Teacher interaction / viva: 20%