ESc 101 or Engineering Sciences Compulsory 101 is a first year course for all B.Tech students.It is also called Fundamentals of Computing and serves as an introductory course on programming. The course aims at developing an algorithmic way of thinking, in terms of flowcharts, or a sequence of fixed and well defined steps. The programming language used is mainly C, though the course material is mostly language-independent. It also serves as an introduction to the Linux Operating System. This course is also a prerequisite for higher level courses from the CSE Department like Data structures and Algorithms.
Basic programming concepts and constructs such as arrays, loops, stacks, pointers, files are covered along with basic linux operations. The course serves as a starting point for those who want to delve into more complex concepts like Object oriented programming, Functional programming etc. The course content is generally available at Moodle website.
For those who already have had prior experience with programming, and would like to pursue some more advanced topics, there is an option for an ATP(Advanced Track project) where one can implement something tangible like a game or an app or can study/research about the known problems. Generally students are selected for ATP by a small programming exercise to test proficiency in basic concepts.
Class size and structure
The class strength of this course is approximately 420. There are 3 lectures, a tutorial and a lab every week. Lectures are mainly interactive, with slides being the main medium of presentation. Tutorials focus on problem solving, and also serve as doubt-clearing sessions. Every week a programming assignment is provided, supposed to be solved during the lab sessions. Doubt clearing sessions can also be conducted on-demand basis. A class of 420 is generally divided into 10-15 sections, comprising of around 30 students each. For each section, tutorials are conducted in separate remedial classes in tutorial blocks. Labs of the course are conducted on second floor of New Core Lab.
Almost equal weightage is given to both theory and practical assignments. Assignments are put up every week, consisting of 3-4 questions with varying difficulty. Students are expected to come up with a theoretical solution, and implement it during their corresponding lab session. TA's are present in all the labs to help the students in case of any difficulty.
The administrative / examination details are generally as follows -
- 1 weekly short quiz
- 1 Lab Assignment per week
- 1 Mid-Semester Examination (including lab exam)
- 1 End-Semester Examination (including lab exam)
ESC101 is generally considered to be one of the most practical out of all first year courses, as it has applications in many domains. This course mainly focuses on implementation of algorithms rather than design.
Books and Online refrences
- Let us C by Yashavant P. Kanetkar-Amazon
- The C Programming Language -Flipkart