Home Research Teaching Publications index
September 2020
This course will give an introduction to C/C++ programming. This course also gives an insight on Data structure and Algorithms.This is an elective course for undergraduate.
CS101, Introduction to Computing
We expect every student to follow the highest standards of integrity and academic honesty. Copying/sharing code in exams, homeworks, labs are not allowed. See the IIT Goa policy for academic malpractices.
# | Date | Topic | Resources |
---|---|---|---|
Programming in C and C++ | |||
1 | 4/9 | Lecture 1.1 Hello World, Lecture 1.2- Comments, Lecture 1.3 - Basic data types (int, float, char), Lecture1.4 - Review with an example. Creating a resume | Lecture 1.1 Lecture 1.2 Lecture 1.3 Lecture 1.4 |
2 | 5/9 | Lecture 2.1 - if else, Lecture 2.2 - Functions, Lecture 2.3 - Scope of a variable | Lecture 2.1 Lecture 2.2 Lecture 2.3 |
3 | 6/9 | Lecture 3.1 - Arrays and Strings, Lecture 3.2 - Passing arrays to functions, Lecture 3.3 - Loops (for, while, do while), Lecture 4.1 - constants, Lecture 4.2 - Getting user input (using getchar function), Lecture 4.3- Using getchar to get user input from the keyboard, Lecture4.4 - Assignment 1, Calculator | Lecture 3.1 Lecture 3.2 Lecture 3.3 Lecture 4.1 Lecture 4.2 Lecture 4.3 Lecture 4.4 |
3 | 12/9 | Lecture 5.1 - Recursion, Lecture 5.2 - Recursion example (factorial) , Lecture 5.3 - Recursion Checking for correctness, Lecture 5.4 - Factorial function (lab) , Lecture 5.5 - Execution path for recursive functions , Lecture6.1 - Binary recursion (eg. Fibonacci number), Lecture 6.2 - Binary recursion,C programming ,Fibonacci numbers,Subsets of a set | Lecture 5.1 Lecture 5.2 Lecture 5.3 Lecture 5.4 Lecture 5.5 Lecture 6.1 Lecture 6.2 |
4 | 17/9 | Lecture 7.1 -Multiple recursion Example: mini Sudoku, Lecture 7.2- Mutual recursion Example: Tic Tac Toe | Lecture 7.1 Lecture 7.2 |
5 | 24/9 | Lecture 8.1 Binary and Decimal numbers, Lecture 8.2 Bits and Bytes, Lecture 8.3 Memory - Random access memory(RAM), Lecture 8.4 - sizeof operator | Lecture 8.1 Lecture 8.2 Lecture 8.3 Lecture 8.4 |
6 | 28/9 | Lecture 9.1- Introduction to pointers C programming, Lecture 9.2 -Introduction to pointers (lab), Lecture 9.3 Pointers and Functions, Lecture 9.4 - Pointers and Arrays | Lecture 9.1 Lecture 9.2 Lecture 9.3 Lecture 9.4 |
7 | 4/10 | Lecture 10.1 -Dynamic Memory allocation,malloc, calloc, realloc, free ,C Programming , Lecture 10.2 -scanf function , Lecture 10.3- File handling (file opening, reading, writing, closing) for text files, Lecture 11.1- Introduction to Structures, Lecture 11.2-Arrays of structures, Lecture 12.1 - Structures - shallow vs deep copy, Lecture 12.2-Structures - passing as parameters, returning structures | Lecture 10.1 Lecture 10.2 Lecture 10.3 Lecture 11.1 Lecture 11.2 Lecture 12.1 Lecture 12.2 |
8 | 6/10 | Lecture 13.1-Pointer to a pointer, Lecture 13.2 - Array of pointers, Lecture 13.3-Two dimensional arrays and pointers to pointers, Lecture 13.4-Command line arguments , Lecture 14.1-Recursion explained through trees,Fibonacci sequence, Lecture 14.2-Recursion explained through trees,Tic tac toe program | Lecture 13.1 Lecture 13.2 Lecture 13.3 Lecture 13.4 Lecture 14.1 Lecture 14.2 |
9 | 9/10 | Lecture 15.1 -Using scanf function, Lecture 15.2 -Structures, Dynamic memory allocation, C Programming , Lecture 15.3 -Reading and Writing text files, fprintf and fscanf functions | Lecture 15.1 Lecture 15.2 Lecture 15.3 |
10 | 10/10 | Lecture 16-Read/Write Bitmap (BMP) Image ,Display image in Text/ASCII Art ,C Programming , | Lecture 16 |
11 | 29/10 | Lecture 17.1- Challenge to programmers, Lecture 17.2- Header Files , Lecture 18.1 -Abstraction , Lecture 18.2- Encapsulation, Header files , Lecture 18.3- Data Abstraction, Why Class? | Lecture 17.1 Lecture 17.2 Lecture 18.1 Lecture 18.2 Lecture 18.3 |
12 | Lecture 19.1- Introduction to Classes ,Object oriented programming , Lecture 19.2- Constructors and Destructors in C++, Lecture 19.3 -Dynamic memory allocation in C++ ,new and delete , Lecture 19.4 -Polymorphism,Function overloading, Lecture 19.5 -Polymorphism,Operator overloading | Lecture 19.1 Lecture 19.2 Lecture 19.3 Lecture 19.4 Lecture 19.5 | |
Data Structures and Algorithm | |||
1 | 2/11 | 1.1 Introduction to Data Structures, 1.2 Abstract Data type (ADT), 1.3 List ADT , Implementation using array, 1.4 Introduction to Linked List, 1.5 Linked list,addFront and removeFront functions, 1.6 Linked list : length and search functions, add back function, 2.1 Building a Linked List - Part 1 : Singly linked list ,Friend class, 2.2 Building a Linked List - Part 2 :Singly linked list,operator overload, 2.3 Linked List with tail ,addBack function, 2.4 Introduction to doubly linked list, 2.5 Summary :Linked List, 2.6 Doubly linked list :remove a node in between,Reverse a doubly linked list, 3.1 Building a Linked List - Part 3 :Doubly linked list implementation, 3.2 Circularly linked list - Assignment | Lecture 1.1 Lecture 1.2 Lecture 1.3 Lecture 1.4 Lecture 1.5 Lecture 1.6 Lecture 2.1 Lecture 2.2 Lecture 2.3 Lecture 2.4 Lecture 2.5 Lecture 2.6 Lecture 3.1 Lecture 3.2 |
2 | 16/11 | 4.1 Stack data structure : LIFO principle, 4.2 Implementation of Stack ADT : Linked List application, 4.3 Stack implementation (lab), 4.4 Parentheses matching :Application of Stacks, 4.5 Application of Stack data structure ,Example: Matching parentheses (lab), 5.1 Queue data structure: FIFO principle,Queue ADT implementation , 5.2 Queue ADT implementation using linked list (lab) | Lecture 4.1 Lecture 4.2 Lecture 4.3 Lecture 4.4 Lecture 4.5 Lecture 5.1 Lecture 5.2 |
3 | 17/11 | 5.3 Tree data structure:Examples, 5.4 Tree terminology :Nodes-Edges,Parent-Child ,Root- Leaf-internal nodes, 6.1 Trees: Edges and Paths,Height and Depth of a tree,Ordered trees, 6.2 Tree Implementation, 6.3 Functions in a Tree ADT, 6.4 Tree: Algorithms for finding height and depth of a Tree, Recursion , 6.5 Trees :Summarizing properties of Trees , 6.6 Family Tree assignment | Lecture 5.3 Lecture 5.4 Lecture 6.1 Lecture 6.2 Lecture 6.3 Lecture 6.4 Lecture 6.5 Lecture 6.6 |
4 | 1/12 | 7.1 Binary Trees, 7.2 Full and Complete Binary Trees, 7.3 Properties of Binary trees, 8.1 Tree traversals: pre-order and post-order traversals , 8.2 Tree traversals : Inorder traversal, 9.1 Binary search trees (BST): Introduction | Lecture 7.1 Lecture 7.2 Lecture 7.3 Lecture 8.1 Lecture 8.2 Lecture 9.1 |
5 | 2/12 | 9.2 Binary Search Tree (BST): Search | Lecture 9.2 |
6 | 3/12 | 9.3 Binary Search Tree: Insertion and Deletion, 10.1 Analysis of Algorithms, 10.2 Asymptotic notation: Big O notation, 10.3 Analysis of Algorithms ,Asymptotic notation, Examples | Lecture 9.3 Lecture 10.1 Lecture 10.2 Lecture 10.3 |
7 | 7/12 | 11.1 Asymptotic notation :Theta and Omega notation, 11.2 Asymptotic notation: More examples, 11.3 Asymptotic notation :Introducing small o, 12.1 Asymptotic analysis of algorithms | Lecture 11.1 Lecture 11.2 Lecture 11.3 Lecture 12.1 |
8 | 8/12 | 13.1 Searching :Linear Search, 13.2 Searching :Binary Search | Lecture 13.1 Lecture 13.2 |
9 | 9/12 | 14.1 Sorting :Internal vs External, Stable sorting , 14.2 Insertion Sort, 14.3 Selection Sort | Lecture 14.1 Lecture 14.2 Lecture 14.3 |
10 | 10/12 | 15.1 Bubble Sort, 15.2 Swap function :swap without extra variable , 15.3 Merge Sort | Lecture 15.1 Lecture 15.2 Lecture 15.3 |
11 | 11/12 | 16.1 Simplified version of Quicksort algorithm :Worst case analysis,Average case analysis , 16.2 Quicksort algorithm | Lecture 16.1 Lecture 16.2 |