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.
Main instructor: Swaprava Nath (email@example.com) — office hours: by appointment, mail with [ESC101] in your subject line.
Faculty tutor: Piyush Rai
Admin TA(s): Garima Shakya (firstname.lastname@example.org)
[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]
|Name||Section||Tutorial room||Lab day for this section|
|Anant Narayan Vatsemail@example.com||A2||T205||Tuesday|
|Shubham Kumar Bhartifirstname.lastname@example.org||A6||T111||Monday|
|Pratham Kumar Vermaemail@example.com||A10||T107||Thursday|
|Paramkusam Niranjanfirstname.lastname@example.org||Piazza tutors||Piazza|
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
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
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.
- 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.
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
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.
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.