ESC101: Fundamentals of Computing (Jan-Apr 2019)

Syllabus

Stored program concept (with simple computer simulator), machine language and instruction formats, assembly language for the simple computer.Integer representation, finite representation of real numbers, overflow, underflow, errors due to finite representations. Expressions, values and variables, types, lvalue, rvalue, unary, binary, ternary operations. Conditionals, if-then, if-then-else, nested conditionals, switch-case. Loops, for, while, repeat, loop invariants, precondition, postcondition. Functions and return values, arguments, pass by value, the effect of passing pointers (like pass by reference). Recursion. Arrays, enums, searching, sorting. Pointers, lists, dynamic data structures, stack, queue, graphs, trees related algorithms, memory and its management. Elementary complexity motivation, concrete complexity, big O notation. Linux tools, introduction to shell programming. Elementary numerical problem solving will be addressed largely through some labs e.g. root finding, solutions of systems of linear equations, integration, solution of ODEs.

Teaching Staff

Main instructor: Swaprava Nath (swaprava@cse.iitk.ac.in) — office hours: by appointment, mail with [ESC101] in your subject line.
Faculty tutor: Piyush Rai
Admin TA(s): Garima Shakya (garima@cse.iitk.ac.in)
[it is highly recommended that you post your query either on Piazza or during your tutorial sessions before emailing the TAs, Tutors, or the Instructor]

Tutors

NameEmailSectionTutorial roomLab day for this section
Abhibhav Gargabhibhav@cse.iitk.ac.inA1T206Tuesday
Anant Narayan Vatsanantnv@iitk.ac.inA2T205Tuesday
Amrit Singhalamrits@cse.iitk.ac.inA3T204Tuesday
Gurpreet Singhguggu@iitk.ac.inA4T203Monday
Siddharth Agrawalsidarth@iitk.ac.inA5T112Monday
Shubham Kumar Bhartiskbharti@cse.iitk.ac.inA6T111Monday
Akshat Jindalakshatj@iitk.ac.inA7T110Wednesday
Anmol Porwalanmolp@iitk.ac.inA8T109Wednesday
Shubhojyoti Nathshubhoj@iitk.ac.inA9T108Wednesday
Pratham Kumar Vermaprathamv@iitk.ac.inA10T107Thursday
Prann Bansalprann@iitk.ac.inA11T106Thursday
Madhukantmkant@iitk.ac.inA12T105Thursday
Deepanshu Bansaldbansal@iitk.ac.inA13T104Monday
Ankit Jalanankitj@cse.iitk.ac.inA14T103Thursday
Paramkusam Niranjanniranjan@cse.iitk.ac.inPiazza tutorsPiazza
Anupriyanupriy@iitk.ac.inPiazza tutorsPiazza

The lab schedule is available from the DoAA site.

Important Links / Information

  • Course webpage: (this) [link]
  • Discussion Forum: Piazza [link]
  • Grading Website: Gradescope [link]
  • Gradescope entry code: MVBX4P
  • Lab Website: Prutor [link]

Times and Venues

  • Lectures: Mondays, Tuesdays, Wednesdays, 1200-1300 hrs at L20
  • Tutorials: Fridays, 1200-1300 hrs at the Tutorial Block
  • Labs: Mondays, Tuesdays, Wednesdays, Thursdays, 1400-1700 hrs at NCL CC-01, CC-02

Course Schedule

Due to institute holidays, we will have makeup lectures and labs. The tentative schedule is as follows. We may need to update it from time to time.

Additional materials, e.g., codes during the lecture, lab solutions are available here.

Course Events’ Calendar

Course Policies

Evaluation

The assessment of students taking this course shall be performed on the basis of performance in various components of the course. Note that week 1 will only have a introductory lab and a mock minor quiz which will not be graded.

  • 2%: Assignment 0 (setting up yourself for the course)
  • 10%: Lab assignments (11 labs, best 9 scores counted)
  • 8%: Minor quizzes (11 minor quizzes, best 9 scores counted)
  • 10%: Major quizzes (2 major quizzes of 5% each)
  • 15%: Mid-sem Lab Exam (check the schedule and calendar above)
  • 15%: End-sem Lab Exam (check the schedule and calendar above)
  • 15%: Mid-sem Theory Exam (scheduled by DoAA)
  • 25%: End-sem Theory Exam (scheduled by DoAA)

Practice Problems: practice problems will be released each week to help students prepare for the next week’s lab problems. You can solve these from your hostel etc. These problems will not be graded.

Bonus Problems: during some weeks, one or two bonus problems will be released to challenge students to explore more concepts and try solving tougher problems.

  • These problems will be auto-graded and submissions will be checked for copying and cheating.
  • Cases of cheating will be dealt as described below.
  • The weightage of these problems will be above and beyond the normal course evaluation.
  • This means that hypothetically a student may end up scoring more than 100% marks due to excellent performance in usual components of the course – labs/quiz/exams/project as well as excellent work in bonus problems.

Miscellaneous

  • All quizzes/exams will be open handwritten notes. This means you can bring a notebook containing notes that you have written yourself. No printed/photocopied material or electronic material will be allowed in quizzes/exams. Disciplinary action will be taken if this rule is violated, i.e., if a student is found in possession of unauthorized material in an exam hall.
  • During lab hours, only students sitting inside NCL labs will be able to access Prutor. This is to ensure that no one can attempt labs sitting at home. However, outside of lab hours, Prutor is available at CC/NCL/Halls etc.

Drop Policy (Course)

Students (whether project track or regular track) who choose to drop the course altogether must get their applications approved by the instructor by April 5, 2019, after giving a proper reason for the said drop.

  • Course drop applications must be filled out on the standard SUGC course-drop form.
  • April 5, 2019, is a senate-mandated deadline. There is no option for processing drop requests after this deadline.
  • The instructor cannot ensure the approval of a course drop application by DUGC convenors or the SUGC.
  • In the past, students who have not put in serious and demonstrable effort in a course have often had their drop applications rejected.

Absentee and Make-up Policy

Students are expected to attend all lectures, labs and tutorials, even though there is no attendance. Project track students are expected to attend all lectures and tutorials.

  • There will be no make-up lab or minor quizzes. We are already counting the 9 best labs and 9 best minor quizzes out of a total of 11.
  • There will be no make-up major quizzes, mid-sem lab, or theory exam, or end-sem lab exam.

For students with medical reasons for absence on day of exam, only upon producing medical certificates and an approval of leave from SUGC, the following will be permitted

  • Make up end-sem theory exam, on a date as scheduled by DoAA. Please note that in order to be eligible for this, an application must be approved by the instructor and the SUGC. The DoAA usually announces these details towards the end of the semester.
  • Prorating of major quiz 1 using mid sem theory exam
  • Prorating of major quiz 2 using end sem theory exam
  • Prorating of mid sem lab exam using end-sem lab exam marks
  • Prorating of mid sem theory exam using end-sem theory exam marks
  • Prorating of end sem lab exam using end-sem theory exam marks
  • There will be no cascaded prorating e.g. a student missing both major quiz 1 and mid sem theory exam will only have mid sem theory exam prorated using the (make-up) end sem exam and continue to get a zero for major quiz 1.

Use of Unfair Means

The use of unfair means by any student would be severely punished, by means of grade deductions, F grade award, referral to institute disciplinary committees and more. The following document would be referred to while deciding the penalty imposed.

Department Anti-Cheating Policy [link]

  • Use of electronic devices such as mobile phones, tablets, smart watches, wireless headsets is not allowed during labs/quizzes/exams and will count as cheating.
  • Copying code from the Internet during labs/quizzes/exams is not allowed.
  • Copying code from other students during labs is strictly forbidden and will be considered cheating.
  • Students allowing their work to be copied during labs/quizzes/exams will be penalized equally as those students who were copying from them.
  • Any form of harassment, intimidation, unfair lobbying, and activities with malicious intent in general, will be strictly dealt with.
  • The institute has a no-tolerance policy towards ragging and sexual harassment.
  • Students involved in use of unfair means will be disallowed from dropping the course.

Some helpful tips: Students should keep in mind the following points to save themselves and their friends from penalties.

  • Read-protect your directories so that others cannot copy from your directory.
  • Please logout/lock your computer after you are done with the lab. Please do not leave after just closing the browser since this allows others to intrude into your account.
  • Do not share your CC password with anybody – whether it be your friends or wingmates. You will be held responsible for activities conducted using your accounts.
  • Do not leave printouts, notes etc. containing your code unattended.
  • Do not write your name or your roll number in your lab assignment/exam submissions.
  • Do not hard code inputs in your program.

References

The following books may be useful as supplementary readings for this course.

  • Schaum’s Outline of Programming with C, by Byron Gottfried, McGraw-Hill India
  • Programming in ANSI C, by Balaguruswamy
  • The C Programming Language, by Kernighan and Ritchie, Prentice-Hall India
  • Let Us C, by Kanetkar

Virtual Classroom

We will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from your classmates, the tutors, TAs, and the instructor. Rather than emailing questions to the teaching staff, we encourage you to post your questions on Piazza.

Class link

Other Instruction Language Resource

Here is a set of recorded videos in Hindi. The recommended use of these resources are only at the time of extreme difficulty after all other current resources of the course have been exercised. You must always try to follow the lectures of the current offering of the course, ask the tutors, TAs about your doubts, and post your question on Piazza.

Advertisements