CS 101: Introduction to Computing

Spring 2021

CS 101 is a core course offered to first-year B. Tech. students in all disciplines. This course gives a broad introduction to computer programming using the Python programming language.

Total Credits (C) Lecture (L) Tutorial (T) Practical (P)
4 3 0 2

Highlights

Outline

Instructor

Clint P. George — clint [at] iitgoa [dot] ac [dot] in
Office: F9, New Academic Block A
Phone: 832 249 0117

Teaching Assistants

Meetings (all online)

  1. Introduction to Computation and Programming Using Python, 2nd Edition with Application to Understanding Data by John V. Guttag. 2016. Note: Indian edition available in the market.

  2. How to Think like a Computer Scientist by Allen B. Downey. 2002.

  3. How to Think Like a Computer Scientist: Learning with Python 3 by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers. 2012. Note: Online chapters available here.

Course Eligibility and Requirements

Learning Outcomes

This course will enable students to

Student Evaluations

We follow a continuous evaluation plan throughout this course, which includes

Expectations from Students

Grading Policy (tentative)

The tentative grade distributions for the course are follows

Teaching plan

Note: This is a tentative course schedule. It will be updated often. Also, log on to Classroom to see lecture slides, videos, additional course materials, and announcements.

S/N Topic Date Tutorial/Lab
  Week 1: Introduction to Computing    
1a Course introduction and logistics April 7  
i   April 7 Lab 0 — Get started with Python programming. This interaction will help the students to get started with the course. In addition, we discuss how to set up a basic Python environment locally and or in a cloud (in a web browser).
Tutorial by Shruti Shet
1b What’s computing?
Homework 1
April 8  
  Week 2-3: Introduction to problem-solving and Python programming language    
2 Programming languages; Getting started with Python April 15  
ii   April 16 Lab 1 — Evaluation of Arithmetic Expressions.
Tutorial by Chitra Nayagam
3 Python elements, order of evaluation, operator precedence April 20  
4 Variables and assignment April 21  
  Classroom Quiz 1 April 21 Note: auto-graded
5 Boolean expressions, Branching Programs: if, if-else, if-elif-else April 22  
iii   April 23 Lab 2a — Branching statements
Tutorial by Anusree Debbarma
  Week 4: Conditional statements, input/output/ strings    
6 Conditional expressions: single, nested, compound April 27  
iv   April 27–30 Lab 2b — Additional excercise on branching statements
7 string objects and operations on strings April 28  
8 Input/output, type conversions April 29  
  Week 5: Loops    
9 Iteration: while, while else May 4  
v   May 4 Lab 3 — While loops
Tutorial by Sakar SALUNKE
  Classroom Quiz 2 May 5 Note: grades pending
10 Enumeration and for loops May 6  
  Week 6: Loops (continued) and solving simple numerical problems    
11 for loops. range, enumerate
Python script command line execution, Jupyter notebook IDE
May 11  
v   May 11–14 Lab 4 — Loops
Tutorial on Google colab IDE by Prince Mathew
12 Applications of loops May 12  
13 Approximate solutions, exhaustive search May 13  
  Week 7: Approximation algorithms: linear search, bisection search    
15 Bisection search May 18  
16 Comparing execution times, floats May 19  
17 Introduction to computational complexity May 20  
  Midterm – May 25, 2021    
  Week 8: Functions, scoping, and abstraction    
18 Solving problems by search (review), Newton-Raphson Jun 8  
19 Function definitions Jun 9  
    Jun 15 Tutorial: Functions by Shruti Shet
20 Functions: keyword arguments and default values Jun 10  
  Week 9: Scoping, recursion    
21 Variable scoping Jun 15  
    Jun 15 Tutorial: Recursion by Prince Mathew
22 Recursion: count-down, fibonacci numbers Jun 16  
23 Modules Jun 17  
  Week 10: Structured types and mutability    
24 Tuples, lists, and mutability Jun 22  
25 Lists and sets Jun 23  
26 Dictionaries Jun 24  
  Week 11: File handling, encoding    
27 File Input/Output, Discussion on encoding Jun 29  
28 Reading data via files Jun 30  
29 Writing data via files Jul 1  
  Weak 12: Testing, exception handling    
30 Testing, black-box testing, glass-box testing Jul 6  
31 Handling exceptions Jul 7  
32 Exception handling: else, finally; assertions: assert; Getting started with classes and objects Jul 8  
  Week 13: Classes and object-oriented programming    
33 Abstract data types and classes Jul 13  
34 Using classes for a real-world problem Jul 14