All Projects → purushottamkar → esc101-18-19-a

purushottamkar / esc101-18-19-a

Licence: MIT license
ESC 101A: Fundamentals of Computing (C Programming Course), IIT Kanpur, 2018-19-autumn offering

Programming Languages

HTML
75241 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to esc101-18-19-a

ml19-20w
CS 771A: Introduction to Machine Learning, IIT Kanpur, 2019-20-winter offering
Stars: ✭ 100 (+334.78%)
Mutual labels:  course-materials, iitk, iitkanpur
cs-exams
Examination preparation material for Computer Science students at Trinity College Dublin.
Stars: ✭ 44 (+91.3%)
Mutual labels:  course-materials
CS110Notes
1st time TAing for CS110 at Stanford: Principles of Computer Systems? - Stars are appreciated :)
Stars: ✭ 59 (+156.52%)
Mutual labels:  course-materials
PyTherm-applied-thermodynamics
Educational ipython source code for applied thermodynamics.
Stars: ✭ 62 (+169.57%)
Mutual labels:  course-materials
kubernetes-hy.github.io
Course material for the DevOps with Kubernetes free MOOC by the University of Helsinki
Stars: ✭ 57 (+147.83%)
Mutual labels:  course-materials
DRL in CV
A course on Deep Reinforcement Learning in Computer Vision. Visit Website:
Stars: ✭ 59 (+156.52%)
Mutual labels:  course-materials
Natural Language Processing Specialization
This repo contains my coursework, assignments, and Slides for Natural Language Processing Specialization by deeplearning.ai on Coursera
Stars: ✭ 151 (+556.52%)
Mutual labels:  course-materials
codapps
A course to learn how to code a mobile app - for complete beginners
Stars: ✭ 14 (-39.13%)
Mutual labels:  course-materials
compiler-course-unipi
Lab of the course Languages, Compilers and Interpreters (Cod. 653AA) @ UNIPI
Stars: ✭ 18 (-21.74%)
Mutual labels:  course-materials
devtools-course-theory
Course on Development Tools (in Russian)
Stars: ✭ 18 (-21.74%)
Mutual labels:  course-materials
ooprogramming
Intermediate course introducing Object Oriented Programming (OOP) principles applied to the Java language. Recommend to learners with previous experience.
Stars: ✭ 50 (+117.39%)
Mutual labels:  course-materials
MLclass
My main Machine Learning class
Stars: ✭ 56 (+143.48%)
Mutual labels:  course-materials
human-memory
Course materials for Dartmouth course: Human Memory (PSYC 51.09)
Stars: ✭ 239 (+939.13%)
Mutual labels:  course-materials
TeachingDataScience
Course notes for Data Science related topics, prepared in LaTeX
Stars: ✭ 102 (+343.48%)
Mutual labels:  course-materials
reinforcement learning course materials
Lecture notes, tutorial tasks including solutions as well as online videos for the reinforcement learning course hosted by Paderborn University
Stars: ✭ 765 (+3226.09%)
Mutual labels:  course-materials
Lunatech Scala 2 To Scala3 Course
Lunatech course - "Moving forward from Scala 2 to Scala 3"
Stars: ✭ 174 (+656.52%)
Mutual labels:  course-materials
RL course
The page of the Ural Federal University course "Reinforcement Learning and Neural Networks"
Stars: ✭ 23 (+0%)
Mutual labels:  course-materials
CSSS508
CSSS508: Introduction to R for Social Scientists
Stars: ✭ 28 (+21.74%)
Mutual labels:  course-materials
empirical-methods
Homepage for 17-803 "Empirical Methods" at Carnegie Mellon University
Stars: ✭ 103 (+347.83%)
Mutual labels:  course-materials
packt-mastering-fp
PacktPub "Mastering Functional Programming with JavaScript" video course materials
Stars: ✭ 17 (-26.09%)
Mutual labels:  course-materials

ESC 101A: Fundamentals of Computing (C Programming Course)

These are the course materials used for the 2018-19 autumn offering of the course ESC 101A (Fundamentals of Computing) at IIT Kanpur. This is an introductory C programming course taught to first year undergraduate students at IIT Kanpur.

Usage

The material in this repository may be used freely for the purpose of research and self-study. It can also be freely used and/or modified to create material to offer courses at an educational institution. If you are an instructor/professor/lecturer using this material for your course, you can make the author very happy by sending an email at the address [email protected] describing your experience using this material.

Credits

This course offering was made possible by the combined efforts of a large team.

  • Tutors: the course offering had an awesome team of student tutors (Prakhar Agarwal, Nikita Awasthi, Sanket Gandhi, Abhibhav Garg, Ankit Jalan, Kunal Kapila, Siddharth Mittal, Paramkusam Niranjan, Abhisek Panda, Parth Sharma, Shashank Shekhar, Massand Sagar Sunil, Ayush Tulsyan). The tutors conducted weekly tutorials for students as well as set nice and innovative problems for labs, exams and quizzes.
  • Teaching Assistants: The weekly lab sessions and examinations were made possible due to the contributions of more than 50 teaching assistants who helped students during labs and performed grading on exam submissions. Their names are listed in the concluding lecture slides. Lab and weekly quiz submissions were autograded using code that was developed jointly by Umair Z Ahmed and the instructor.
  • Admins: The course would also not have been possible without help from the course admins (Umair Z Ahmed for Prutor and Bhaskar Mukhoty for logistics), the CSE office staff members (Mr Prashant Kumar Sahu, Mr Rajesh Kumar, Mr Ranjan Kumar, Mr Anubhav Kumar Arya, Mr Amit Kumar Bharti) and CC/NCL staff members (Mr Gopesh Tiwari, Mr Soumitri Mishra, Mr Awanish Kumar).
  • Previous instructors: Material developed by previous instructors of the course (Prof. Sumit Ganguly, Prof. Nitin Saxena, Prof. Amey Karkare, Prof. Indranil Saha, Prof. Nisheeth Srivastava, Prof. Rajat Mittal (Hindi lectures), Prof. Vinay Namboodiri) was very helpful in developing fresh material for this offering. However, any faults/errors in the lecture slides, lecture codes, tutorial sheets or practice problems should be blamed on the author of this repository :) Please report any major errors, suggestions to the instructor at [email protected]

Compiler Used

For our offering, we used the CLang compiler for all laboratory, practice and exam problems. Please keep this in mind while checking the expected evaluation outputs in lab and practice problems as other compilers like GCC, Turbo C, Visual C etc. may offer rare and subtle differences in output. In particular, we used the Prutor interface [link] to conduct laboratory sessions and examinations.

Navigating the Repository

Here are brief descriptions of the various subdirectories of this repository

  • lecture_slides: these contain PPTX (Microsoft PowerPoint) files, one for each of the lectures in the course. The files can be opened using MS PowerPoint, Open Office, or Google Slides. The numbering of these files starts from 2 since the first lecture is typically used to explain the logistics of the course.
  • lecture_codes: for some of the lectures, we have code snippets that are used to illustrate a point or else present a working implementation of some concept. These code files are numbered according to the lecture number which they are supposed to accompany.
  • tutorial_sheets: these contain DOCX (Microsoft Word) files containing material covered during the weekly tutorials in the course. These files can be opened using MS Word, Open Office, or Google Docs. Tutorial sessions typically revised lecture material covered during the week as well as offered exercises to encourage discussions. Please note that the these sheets are written from the tutor's point of view although they would be useful for students as well.
  • lab_problems: the course had weekly labs with 4 lab sessions being held every week, each session having a different set of 3 problems. The total of 4 x 3 = 12 problems for each week are collected in a single HTML file (named Wn.html for the problems for week n). Please see below on how to read these files.
  • practice_problems: the course also offered some (2-3) practice problems to help students prepare for laboratory exercises the next week. The practice problems for each week are collected in a single HTML file (named Pn.html for the problems for week n). Please see below on how to read these files.
  • exam_papers: the course conducted two lab exams which mimicked the laboratory exercises, two "theory" exams which were attempted on pen and paper, and two quizzes. Please see below on how to read the files for the lab exams. The question papers for the theory exams and quizzes are given as PDF files. These contain a mixture of objective and subjective type questions.

How to Read Lab/Practice/Exam Problem Sheets

The title of any HTML file is a code-word. This can be discarded (in case you are curious, it encodes what type of problems -- lab/practice/exam -- does the file contain, in which week were those problems offered, and what general topic were these problems testing). What follows is a series of problem descriptions. Two problems are separated by a double horizontal line spanning the entire width of the page. For each problem, the following information is given.

  • Headers: first the title of the problem is stated in bold followed by a code of the form p1v1d1. Next the title is repeated followed by the marks for that problem within square brackets. The marks of the problem and the p-v-d- code can be ignored (in case you are curious, these encode the day of the week on which these problems were offered and the ordering of problems within that day).
  • Problem Statement: for lab/exam problems, detailed problem statements are offered, including cautionary warnings as well as one or two solved examples explaining why the problem demands a certain output on a certain input. For practice problems, shorter statements are offered which nevertheless contain all details required to solve the problem.
  • Grading Scheme: this is described only for lab/exam problems and would be missing for practice problems since practice problems were not graded. This portion can be discarded in general. We used autograders (that we developed ourselves) to automatically grade lab and exam submissions and the grading schemes describe how the autograder was told to assign partial marks.
  • Test Cases: this is a list of test cases where we describe an example input to the problem and the expected output. Test cases were of two types:
    • Visible: for test cases that were visible, both the input as well as the output were shown to the students while the lab/exam was going on.
    • Hidden: for test cases that were hidden, both the input as well as the output were hidden from students while the lab/exam was going on. Hidden test cases were always revealed to students after the lab/exam was graded.
    • The HTML files first list all the visible test cases and then all the hidden test cases. Typically, only the first one-third of the test cases were "visible" and the last two-third were hidden. For example, if for a problem, 6 test cases are given, this usually means that the first two were visible and last 4 were hidden.

Disclaimer

Any code made available in this repository is for the purpose of instruction only and does not offer any guarantees of utility or performance for specific applications.

Author

Purushottam Kar, IIT Kanpur website

License

This repository is licensed under the MIT license - please see the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].