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
Clint P. George — clint [at] iitgoa [dot] ac [dot] in
Office: F9, New Academic Block A
Phone: 832 249 0117
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.
How to Think like a Computer Scientist by Allen B. Downey. 2002.
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.
This is a core course designed for first-year undergraduate students.
Course prerequisites: None
This course enables students to
Use computational techniques productively
Formulate reasonably complex problems involving iteration, search, file operations, sorting, etc. and solve them using algorithms
Implement algorithms using the Python programming language
We follow a continuous evaluation plan throughout this course, which includes
Classroom participation (lectures, tutorials, labs, etc.) is essential throughout the course. 80% percentage of attendance is mandatory for all class interactions. Poor attendance may lead to FX grade.
Programming/homework/lab assignments. Students must be able to formulate and solve real-world problems based on the theory covered in lectures and discussions. Discussions with classmates are encouraged, but every student must submit individual solutions in a prescribed form. All programming assignments and projects use the Python programming language.
Quizzes. There will be quizzes in lab hours.
End/mid semester examinations
Note: No makeup exam/quiz/assignments will be conducted.
Course load. We expect that every student will spend 8-10 hours a week in addition to lecture hours and other online/in-classroom interactions. It’s a programming-based course. We assume that students have access to computers with a Python programming environment.
Late submissions will not be accepted for programming assignments, homework, etc. Students must follow the submission guidelines mentioned in projects, assignments, quizzes, and exams to get full credits.
Academic Honesty. We expect that every student follows the highest standards of integrity and academic honesty. Copying/sharing code in exams, homework, lab sessions are not permitted. We may use automated software tools to detect plagiarism in assignments, exams, etc. If we detect any form of plagiarism in a submission, we grade the submission zero. See the IIT Goa policy for academic malpractices.
The tentative grade distribution for the course is follows
Lab Quiz 1 & Lab Quiz 2 (20%)
Midterm: Written + Lab exams (30%)
Homework/Programming/Lab assignments/Class participation (10%)
Final: Written + Lab exams (40%)
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 string s |
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 |