Indian Institute of Information Technology, Allahabad

Introduction to Programming

July-Dec 2022 Semester


Course Information

Course Description: In this course, students learn the concepts of computer programming and practice them using C language.

Course Outline:

Unit 1: Introduction, Pseudocode, Data type, Operators, Expressions and statements, Operator precedence vs. order of evaluation, Type casting, Integral promotions, Conversions (standard type and arithmetic), if-else condition, for loop, while loop, do while loop, Jump statements

Unit 2: 1-D arrays, Strings, 2-D arrays, Structure and Union, Pointers, Functions, Recursions, Header files (math.h, time.h, custom headers), External functions

Unit 3: Pointers, Arrays vs. pointers, Pointers to pointers and pointers to functions, Bitwise operators, struct and union, Pre-processor directives and macros, I/O handling

Unit 4: Dynamic memory allocation, Linked lists, Command line arguments, Standard libraries

Course Instructor

Dr. Shiv Ram Dubey

Class Schedule (Section A)
Class: Monday 09.00 AM - 11.00 AM, Lab: Monday 03.00 PM - 05.00 PM, Tute: Tuesday 03.00 PM - 05.00 PM
Course Ethics
  • Students are strictly advised to avoid the unethical practices in the course including tests and practice components.
  • It is best to try to solve problems on your own, since problem solving is an important component of the course.
  • You are allowed to discuss class material, problems, and general solution strategies with your classmates. But, when it comes to formulating or writing solutions you must work/implement by yourself.
  • You are not allowed to take the codes from any source, including online, books, your classmate, etc. in the assignments and exams.
  • You may use free and publicly available sources (at idea level only), such as books, journal and conference publications, and web pages, as research material for your answers. (You will not lose marks for using external sources.)
  • You may not use any paid service and you must clearly and explicitly cite all outside sources and materials that you made use of.
  • Students are not allowed to post the code/report/any other material of course assignment/project in public domain or share with any one else without written permission from course instructors.
  • We consider the use of uncited external sources as portraying someone else's work as your own, and as such it is a violation of the Institute's policies on academic dishonesty.
  • Instances will be dealt with harshly and typically result in a failing course grade.
  • Cheating cases will attract severe penalties.

Schedule

Date Topic Class Material
L01-04: Nov 14-15, 2022 Introduction Slide
L05-06: Nov 21, 2022 Data Types and Expressions Slide
L07-10: Nov 22, 2022 & Nov 28, 2022 Conditionals and Branching Slide
L11-16: Nov 29, 2022 & Dec 05-06, 2022 Loops and Iteration Slide
L17-18: Dec 12, 2022 Arrays Slide
L19-22: Dec 13, 2022 & Dec 19, 2022 Function Slide
L23-24: Dec 20, 2022 Recursion Slide
L25-26: Jan 02, 2022 Structures Slide
L27-28: Jan 09, 2022 Two Dimensional Array Slide
L29-30: Jan 16, 2022 Pointers Slide
L31: Jan 23, 2022 Dynamic Memory Allocation Slide
L32-33: Jan 23, 2022 & Jan 30, 2022 Linked List Slide
L34: Jan 30, 2022 File Handling and Command Line Argument Slide

Grading

  • C1 (30%)
  • C2 (30%)
  • C3 (40%)

Prerequisites

  • Ability to deal with abstract mathematical concepts

Books/References

  • The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie, Prentice Hall
  • Programming with C, Byron Gottfried
  • Programming in ANSI C, E. Balaguruswamy
  • Expert C Programming: Deep C Secrets by Peter van der Linden, Prentice Hall
  • C Programming FAQs by Steve Summit, Deborah Lafferty, Addison-Wesley Professional
  • C Traps and Pitfalls by Andrew Koenig, Addison-Wesley Professional
  • The C Puzzle Book by Alan R. Feuer, Addison-Wesley Professional
  • Data Structures, S. Lipschutz, Schaum’s Outline Series
  • C99 standard (ISO/IEC 9899:TC3)

Disclaimer

The content (text, image, and graphics) used in this slide are adopted from many sources for Academic purposes. Broadly, the sources have been given due credit appropriately. However, there is a chance of missing out some original primary sources. The authors of this material do not claim any copyright of such material.