CS 101: Introduction to Computing

Autumn 2023

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