Course Content

  1. Introduction to computational thinking: problem decomposition, identifying patterns between subproblems, flow-charts and pseudocode for solving subproblems, developing recipes from scientific and engineering problems [2]

    [LAB] Lightbot game, setting up Python and Pip, Jupyter notebook, Python as an interpreter, running programs using Python, Hello world in Python.

  2. Python data types, reading and writing to console and files, basic arithmetic and logical operations. [2]

    [LAB] Exercise that uses data types and basic arithmetic and logical operations.

  3. Introduction to functions and object oriented programming [2]

    [LAB] Exercises on functions and object oriented programming.

  4. Coding style, exceptions, assertions, testing using PyUnit, debugging [2]

    [LAB] How to debug a code? Exercise that uses assertions, create and use simple test cases. After this lab, students are expected to make sure they handle exceptions in their code and do unit testing for their codes. They are also expected to write well-commented codes and follow proper naming conventions.

  5. Branching and iteration. [2]

    [LAB] Exercises on branching and iteration.

  6. Basic data structures: list, tuple, set. [2]

    [LAB] Exercises using list, tuple and sets.

  7. Basic data structures: dictionary, string [2]

    [LAB] Experiments to determine access time of different data structures and exercises using dictionaries and strings.

  8. Functions revisited, multi-file programming, modules, packages [2]

    [LAB] Coding across multiple files and exercises using functions.

  9. Recursions [2]

    [LAB] Exercises on recursion.

  10. Searching and sorting [2]

    [LAB] Searching though different data structures, binary search, insertion and bubble sort.

  11. Useful basic libraries: NumPy, Pickle [2]

    [LAB] Exercises using Numpy and Pickle.

  12. Useful basic libraries: Pandas, Matplotlib [2]

    [LAB] Exercises using Pandas and Matplotlib.

  13. IDEs, debugging tools, version control and Git [2]

    [LAB] A group project with 3-4 students; creating a git page for the project and sufficient commits from each project member. This will also be considered as the end-sem lab component.

Learning Outcomes

Students will be able to i) design and code moderate sized (100 to 200 lines) programs for solving simple computational tasks, ii) understand and debug moderate sized programs written by others, iii) use some fundamental data structures and algorithms, vi) familiarity with a few popular Python libraries.

Textbooks

  • Guttag, John. Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press, 2016. ISBN: 9780262529624.
  • Starting Out with Python, 5th Edition, 2021, Tony Gaddis ISBN-13: 9780136679110
  • Introduction to Programming in Python: An Interdisciplinary Approach. Robert Sedgewick , Kevin Wayne, Robert Dondero. Addison-Wesley Professional. ISBN-13: 978-0134076430

Reference Books

  • Allen B. Downey. Think Python: How to Think Like a Computer Scientist. O’Reilly Media. ISBN-13: 978-1449330729
  • Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython 2nd Edition by Wes McKinney ISBN-13: 978-1491957660
  • Automate the Boring Stuff with Python: Practical Programming for Total Beginners (Sweigart, Al) ISBN-13: 978-1593275990, ISBN-10: 1593275994

Past Offerings

(Note: Past offerings could be under a different course number.)
  • Offered in Jan-May, 2023 by Albert Sunny, Srimanta Bhattacharya, Sovan Das (IITPKD Mech), Piyush Kurur
  • Offered in Jan-May, 2022 by Unnikrishnan C (coordinator), Krishnamoorthy Dinesh, Vivek Chadurvedi
  • Offered in Jan-May, 2021 by Albert, Sandeep
  • Offered in Jan-May, 2020 by Albert, Sandeep
  • Offered in Jan-May, 2019 by Deepak, Jasine, Krithika, Mrinal
  • Offered in Jan-May, 2018 by Deepak, Debarati (CHE, IITPKD)

Course Metadata

Item Details
Course Title Introduction to Programming
Course Code ID1110
Course Credits 2-0-3-4
Course Category IC
Proposing Faculty Mrinal Kanti Das &Albert Sunny
Approved on Senate 20 of IIT Palakkad
Course status NEW
Course pre-revision code CS1020