ESC101: Fundamentals of Computing

Winter 2018 (January 5, 2018 - April 20, 2018)

Lecture Hours: Monday, Wednesday and Friday 12:00 noon to 1:00 pm
Lecture Venue: L20
Tutorial Hours: Tuesday 12:00 noon to 1:00 pm
Tutorial Venue: Tutorial Block
Lab Hours: Tuesday 12:00 noon to 1:00 pm
Lab Venue: New Core Lab (CC-02)

Instructor: Indranil Saha (Email: isaha[at]cse[dot]iitk[dot]ac[dot]in)
Faculty Tutor: Purushottam Kar (Email: purushot[at]cse[dot]iitk[dot]ac[dot]in)
Guest Instructors:
    Purushottam Kar (Email: purushot[at]cse[dot]iitk[dot]ac[dot]in)
    Swaprava Nath (Email: swaprava[at]cse[dot]iitk[dot]ac[dot]in)

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, ifthen, ifthenelse, nested conditionals, switchcase.Loops, for, while, repeat, loopinvariants, precondition, postcondition. Functions and return values,arguments, passbyvalue, effect of passing pointers (like passbyreference). 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 addressed largely through some labs e.g. root finding, solutions of systems of linear equations, integration, solution of ODEs.

Grading Policy

Theory - 48%
Minor Quizzes(8) - 8%, Major Quizzes(2) - 10%, Mid-Semester Examination - 15%, End-Semester Examination - 25%

Labs - 42%
Lab Assignments - 12%, Mid-Semester Examination - 15%, End-Semester Examination - 15%

Our department follows this anti-cheating policy strictly.


Course Schedule