CS 101: Introduction to Computing

Autumn 2022

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

Weekly Meetings

  1. Introduction to Computation and Programming Using Python, 2nd Edition with Application to Understanding Data by John V. Guttag. 2016.
    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. Online chapters available here.

Course Eligibility and Requirements

Learning Outcomes

This course enables students to

Student Evaluations

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

Note: No makeup exam/quiz/assignments will be conducted.

Expectations from Students

Grading Policy (tentative)

The tentative grade distribution for the course is 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
  Introduction to Computing
1 Course introduction and logistics
3 What’s computing? notion of algorithms
  Introduction to problem-solving and Python programming language
4 Command prompt interface, terminal execution, programming languages
5 Programming language basics, objects, operators
6 Evaluating arithmetic expressions, Variables and assignment
  Programming basics
7 Python elements, order of evaluation, operator precedence
8 Boolean expressions, Branching Programs
  Conditional statements, input/output/ strings
9 Conditional expressions: single, nested, compound; if, if-else, if-elif-else
10 string objects and operations on strings
11 Input/output, type conversions
  Loops
12 Iteration: while, while else
13 Enumeration and for loops. range, enumerate
14 Applications of loops
  Structured types and mutability
15 Lists and mutability
  Midterm week – Dec 12, 2022
16 Sets, Dictionaries, Tuples
  Approximation algorithms: linear search, bisection search
17 Approximate solutions, exhaustive search
18 Bisection search
19 Comparing execution times
  Sorting
20 Sorting algorithms
  Functions, scoping, and abstraction
21 Function definitions
22 Variable scoping
23 Modules
  File handling, encoding
24 File Input/Output, Reading data via files, Discussion on encoding
25 Writing data via files
  Classes and object-oriented programming
26 Abstract data types and classes; using classes for a real-world problem
  Exception handling
27 Exception handling: else, finally; assertions: assert