Information  |   Announcements  |   Mid-Sem Classes  |   End-Sem Classes  |   Assignments  |   References  
Course offered at | Instructors |
---|---|
Institute for Advancing Intelligence (IAI),
TCG Centres for Research and Education in Science and Technology (TCG Crest), Kolkata, India |
👤 Dr. Laltu Sardar ✉ |
Course Objective: To equip students with a foundational understanding of programming principles and problem-solving skills through the C language, this course emphasizes the development, implementation, and analysis of basic data structures and algorithms. It aims to foster computational thinking and the ability to write efficient, structured, and well-documented code. Students will learn to design, write, and analyze programs, understand core data structures, and apply these concepts to real-world problems.
Prerequisites:
1. Typing Skills: Proficiency in typing is essential for efficient coding. If not proficient, students should practice and improve their typing skills before or during the course. Online typing tutors and practice tools [
Typing.com,
10FastFingers, etc]
can be helpful.
2. Machine: While owning a laptop is not strictly necessary, it is highly recommended for convenience and flexibility in practicing code. If a student does not have access to a personal laptop, it is crucial that they dedicate sufficient time in the computer lab to practice coding and reinforce their learning. If necessary, classes can also be shifted to the lab.
✦ Class Timing: Tuesday-- 4:00 PM onwards & Thursday-- 2.30 PM onwards; |
✦  PDS Syllabus   ✦  IAI Time-Table   ✦  IAI Complete Syllabus   ✦  Course-page QR Code   ✦  Topics   |
✦ Marks Distribution: Mid-Sem: 40%, End-Sem: 60% and Lab Tests: 50%, Assignment and Project: 50% |
✦ Pass Marks: According to AcSIR policy |
# | Total Marks 100 | Assignments | Lab Tests | Total |
---|---|---|---|---|
1 | Mid-Semester | 20 | 20 | 40 |
2 | End-Semester | 30 | 30 | 60 |
✦ | Total | 50 | 50 | 100 |
✦ Old course-pages: 2022-23: Sem-I;   2022-23: Sem-II;   2023-24: Sem-I |
✦ Attendance: See your attendances here. |
✦ Languages to be taught:
C : The main focus: To Develop programming thinking *C++ : First object oriented programming *Python : Mainly For AI/ML *Solidity : For blockchain researchers * Depends on time and interest of students |
✦ Preferred softwares-- --Text editor: Atom ; Notepad++ --Terminal for ubuntu: build in terminal --Terminal for windows: mobaxterm or terminal in Windows Subsystem for Linux (WSL) |
☑ The PDS classes will be start from August 13, 2024 |
# | Date | Topic | Instructor | Remarks |
---|---|---|---|---|
1 | 2024-Aug-13 | Introduction Compiling C Code Tokens, Operators, Variable, Control Flow |
Dr. Laltu Sardar | slides_ms_01 |
💃 | 2024-Aug-15 | Holiday--Independence Day | --- | -- |
2 | 2024-Aug-20 | Data Types and their Representations Operators and Expressions |
Dr. Laltu Sardar | slides_ms_02 homework |
3 | 2024-Aug-22 | Dynamic Memory Allocation Matrix Addition |
Dr. Laltu Sardar | slides_ms_03
code |
4 | 2024-Aug-27 | Structures in C File Operation in C |
Dr. Laltu Sardar | slides on Structures slides on File I/O code |
5 | 2024-Aug-29 | Arrays and Strings: | Dr. Laltu Sardar | slides on Arrays slides on Strings |
6 | 2024-Sep-02 | Problem Solving: Strings | Dr. Laltu Sardar | codes |
7 | 2024-Sep-06 | Problem Solving | Dr. Laltu Sardar | slides on input/outputs |
8 | 2024-Sep-09 | Linked List: Create, Insertion | Dr. Laltu Sardar | slides on linked list codes |
9 | 2024-Sep-13 | Linked List: Searching, Deletion | Dr. Laltu Sardar | problem_set Debugging codes |
10 | 2024-Sep-17 | Programming Practice Class | Dr. Laltu Sardar | |
11 | 2024-Sep-19 | Stack & Queue | Dr. Laltu Sardar | slides on stack & queue codes |
12 | 2024-Sep-24 | TypeCasting Command Line Arguments Ellipsis Function and Recursion |
Dr. Laltu Sardar | slides on type_casting cmd_line_args ellipsis function & recursion |
13 | 2024-Sep-26 | Programming Practice Class | Dr. Laltu Sardar | -- |
14 | 2024-Oct-01 | Programming Practice Class | Dr. Laltu Sardar | -- |
15 | 2024-Oct-04 | Binary Search Tree Insert, Search, Traverse, Delete |
Dr. Laltu Sardar | slides on BST, codes |
16 | 2024-Oct-08 | Programming Practice Class | Dr. Laltu Sardar | slides_ms_16 |
💃 | 2024-Oct-10 | Holiday--Durga Puja - Saptami | Dr. Laltu Sardar | 🏖 |
17 | 2024-Oct-10 | Mid-Semestral Lab Test | Dr. Laltu Sardar | questions sample_solutions |
# | Date | Topic | Remarks |
---|---|---|---|
1 | 2024-Oct-31 | Holiday | -- |
2 | 2024-Nov-04 | Modular Programming, Hash Table |
slides on modular progs., slides on hash table |
3 | 2024-Nov-07 | Practice Time | -- |
4 | 2024-Nov-11 | Hash table (cont.), Polynomials |
slides on Polynomials |
5 | 2024-Nov-14 | Graph Representations, Breadth First Search |
Homework |
6 | 2024-Nov-19 | Practice Class: Hash Table | -- |
7 | 2024-Nov-21 | BFS, DFS: Implementations | codes |
8 | 2024-Nov-25 | Determinant, Dominant Eigen Value and Vector | reference |
9 | 2024-Nov-28 | AVL Tree | slides_es_09 Visualizing AVL Tree |
10 | 2024-Dec-03 | AVL Tree Implementation | -- |
11 | 2024-Dec-05 | Practice class | -- |
12 | 2024-Dec-10 | Class cancelled: Asiacrypt conference | -- |
13 | 2024-Dec-24 | End-Semestral Lab Test | Questions Sample solution |
# | Topic | Assignments | Deadline | Remarks |
---|---|---|---|---|
Mid-semester | ||||
0 | Warming-up: Basics of C programming | Warm-up problem set | 2024-Aug-19 | |
1 | Matrix Operations | Assignment #01 | 2024-Aug-26 | |
2 | Array and Strings | Assignment #02 | 2024-Sep-08 | |
3 | Linked Lists | Assignment #03 | 2024-Sep-18 | |
4 | Stack, Queue: Using linked List and Array |
Assignment #04 | 2024-Sep-29 | |
End-semester | ||||
5 | Stack and Queue: Basics Some Generic functions |
Assignment #05 | 2024-Nov-03 | |
6 | Polynomials Sorting |
Assignment #06 | 2024-Nov-24 | |
7 | Hash Table | Assignment #07 | 2024-Nov-17 | |
8 | AVL Tree: A Height Balanced BST | Assignment #08 | 2024-Dec-01 | Visualizing AVL Tree |
9 | Advanced Matrix Algorithms: Inverse, Determinant, Dominant Eigen Value and Vector |
Assignment #09 | 2024-Dec-08 |
# | Points |
---|---|
1 | Header ☛ In the beginning of each file, please include the followings
/************************************************************ |
2 | Acknowledgement ☛ In acknowledgement part, refer books, websites, etc., from where any part of your code is inspired |
3 | Submission File ☛ Assignments must be sent as zip format. The name of the zip files must be of the form fname_assignment_xy.zip where xy = assignment id and fname = your firstName in small case. For example: laltu_assignement_01.zip will be the file name for 'Laltu Sardar' for assignment 01 |
4 | Individual File
☛ For assignment ID #AP0x0y, the program FileName will be fname_ap0x0y.c. E.g., laltu_ap0102.c. Thus, if assignment 01 contains 5 problems, laltu_assignement_01.zip should contain the files-- laltu_ap0101.c, laltu_ap0102.c, ..., laltu_ap0105.c. ☛Then add pdf version of each file having the same format fname_ap0x0y.pdf. Execute enscript --color --highlight=c -o fname_ap0x0y.ps fname_ap0x0y.c and then ps2pdf fname_ap0x0y.ps for each .c file to get .pdf files. Submit your test files, if any only in .txt format.
☛ Arbitrary naming may reason for being undetected by the machines. |
5 | Submission Link ☛ Upload the zip via this Submission Link ☛ Check submission log from This Link |
6 | Sharing Code ☛ Discussion with friends is allowed. However, copying others' codes is strictly prohibited. Minimum 50% Marks will be deducted for taker. The giver will get minimum 25% negative marks. If we can't distinguish giver and taker, both may get negetive upto 50%, of the allotted marks. |
7 | Crosschecking ☛ Please Crosscheck i) filenames, ii) variable names and iii) indentation before submission |
8 | Late Submission ☛ Deductions due to late submission: 1 day-- 10%; 2 days-- 20%; 3 days-- 30%; >= 4 days --May not even checked |
# | Title | Author(s) | ISBN |
---|---|---|---|
1 | The `C' Programming Language | B. W. Kernighan and D. M. Ritchi | 978-0131101630 |
2 | Schaum's Outline of Programming with C | Byron S. Gottfried | 978-0070240353 |
3 | Schaum's Outline of Data Structures with C | Seymour Lipschutz | 978-0070701984 |
4 | Introduction to Algorithms | T. Coreman, C. Leiserson and R. Rivest | 978-0262046305 |
5 | Fundamentals of Data Structures | E. Horowitz and S. Sahni | 978-8173716058 |
6 | Data Structures and Algorithms | A. Aho, J. Hopcroft, and J. Ullman | 978-0201000238 |
# | Website | Useful for |
---|---|---|
1 | https://www.codechef.com | To Practice Coding |
2 | https://www.geeksforgeeks.org | To Learn Coding |
3 | https://unstop.com | To Practice Coding |
4 | https://www.hackerrank.com | To Practice Problem Solving Skills |
5 | https://www.cs.usfca.edu/~galles/visualization/Algorithms.html | To Visualize Data Structures and Algorithms |