Course Information
Instructors
Dr. Mukesh Saini (Email: mukesh@iitrpr.ac.in)Dr. Sudeepta Mishra (Email: sudeepta@iitrpr.ac.in)
Lectures
Mon: 10-10:50 AM Tue: 10-10:50 AM Wed: 10-10:50 AMLabs
TBATutorials
Mon/; 8-8:50 AMContents
Introduction to computers programming; variable declaration, operators, assignments; if-then-else, while, do-while, for loop; arrays of basic data types; function calls, call by value, call by reference, recursion; pointers, multidimensional arrays, strings and text processing; structures, pointers to structures, file i/p and o/p; computer architecture, machine language and compilers, program verification, brief overview of other programming languages, object-oriented programming, etc.Outcomes
By taking this course, the students will be able to write computer programs to implement algorithms.Prerequisite
Nil.Course Requirements
Student are required to attend three lectures per week and appear in two exams. In addition, there will be lab sessions and quizzes. During lab sessions, the students are required to solve and implement programming assignments.Grading Policy
There will be approximately 4 lab exams, approximately 4 quizzes, a mid-sem exam and an end-sem exam. The tentative grade distribution is as follows:Quizzes (top n-1): 15%
Lab exams: 25%
Mid-sem exam: 24%
End-sem exam: 36%
A student must score at least 30% marks to pass the course.
Attendance Requirement
In online mode, there is no attendance requirement. In offline mode, minimum attendance requirement is 75%. Each lecture, tutorial, and lab will count as one unit irrespective of contact hours. The students with attendance less that 75% will get an 'F' grade.Code of Ethics & Professional Responsibility
It is expected that students who are taking this course will demonstrate a keen interest in learning and not mere fulfilling the requirement towards their degree. Discussions that help the student understand a concept or a problem is encouraged. However, each student must turn in original work. Plagiarism/copying of any form, will be dealt with strict disciplinary action. This involves, copying from the internet, textbooks and any other material for which you do not own the copyright. Copying part of the code will be considered plagiarism. Lending the code to others will be considered plagiarism too, for it is difficult to investigate who copied whose code. Students who violate this policy will directly receive a failing grade in the course. Remember - Your partial submission can fetch you some points, but submitting other's work as your own can result in you failing the course. Please talk to the instructor if you have questions about this policy. All academic integrity issues will be handled in accordance with institute regulations.Textbooks
- The C programming language. Kernighan, Brian, and Dennis M. Ritchie. Prentice hall, 2017. [Link].
- How to Solve it by Computer. Dromey, R. Geoff. Prentice-Hall, Inc., 1982. [Link].
Language/Tools
C (gcc)Teaching Assistant
Aroof Aimen, Priyankar Choudhary, Sravanthi Chede, SUDERSHAN KUMAR, Shivam Gupta, ARSHDEEP SINGH RESHMA TUDU, Amit Kumar Verma, Neeru Dubey, Harinder Kaur, RITIKESH SINGH, Shivam Kainth, CHARAN KANWAL, SINGH SIDDHARTHA DEKAContact Me
By appointment.Lectures and Calendar
Lectures | Week | Topics | Events | |
---|---|---|---|---|
L1, 2, 3 | Feb 1 - 5 | Basics of computer hardware: Computer architecture, CPU, emphasis to memory needed to store values in the computer, binary system. | ||
Feb 8 - 12 | Basics of hello world program: Different types of variables, character types, strings, integer types, different width integers, basic input and output methods (printf and scanf), format specifiers, indentation and commenting. | |||
Feb 15 - 19 | Basics of operators: Program to add two numbers, the need for variable declaration and what happens to the stack when we declare a variable, playing with integers, floats, doubles, unsigned integers, binary operators, unary operators, bitwise operators. | Quiz 1, Online, 8- 8:30 , Monday | ||
Feb 22 - 26 | Control statements: The need for control statements, different type of control statements, if-else, switch-case, etc. Nhe need for loops, discuss different types of loops and their requirement. | Lab assignment 1 deadline | ||
Mar 1 - 5 | Functions: Types of functions, recursion, introduction to pointers, call by reference, call by value, Introduction to file handling so that we can read input from files. | Quiz 2, Online, 8- 8:30 AM, Monday | ||
Mar 8 - 12 | Primitive data structures: Introduction to arrays | Mid semester examination | ||
Mar 15 - 19 | C Structures and Dynamic Memory Allocation (DMA) | |||
Mar 22 - 26 | Various sorting algorithms, introduction to time complexity and Big-Oh notation | Graded lab 2 release date: 23rd March, 5 PM (24 hours) Quiz 3, Online, 10:00-10:20 AM, Saturday (March 27) |
||
Mar 29 - Apr 2 | Stack, queue, Linked-list implementation of stacks and queues. | Graded lab 3, April 4, 9AM (24 hours). | ||
Apr 5 - 9 | Trees, BST, heap, and related problems, Program analysis, verification, good practices, OOP. | Quiz 4, Online, 8- 8:30 AM, Monday | ||
Apr 12 - 17 | End semester examination |
*This is a tentative list of topics that will be covered during the semester. The topics and schedule can change according to the need at the discretion of the instructor.