Introduction to Computer Programming and Data Structures


Course offered at Instructors
tcg-crest-mini-logo Institute for Advancing Intelligence (IAI),
TCG Centres for Research and Education in Science and Technology (TCG Crest),
Kolkata, India
👤 Laltu Sardar
👤 Ritankar Mandal

✦ Class Timing: Monday & Thursday; 4.00 pm onwards

✦ Quick Links:   Syllabus  ,   Classes:Mid-Sem  ,   Classes:End-Sem  ,   Assignments  ,   Submitted_Assignments  ,   References  ,   Projects  

✦ End-Sem Questions ✦
✦ Input_Files ✦

🗣 Announcements


☑ The Project has been uploaded. Submission deadline: Dec 15, 2022
☑ Check your submitted assignments here.
☑ Assignment #07 has been uploaded. Submission deadline: Nov 19, 2022
☑ Assignment #06 has been uploaded. Submission deadline: Sep 30, 2022
☑ Assignment #05 has been uploaded. Submission deadline: Sep 20, 2022
☑ Assignment #04 has been uploaded. Submission deadline: Sep 9, 2022
☑ Assignment #03 has been uploaded. Submission deadline: Sep 1, 2022
☑ Guidelines for Assignment#02 added. Submission deadline extended to Aug 29, 2022
☑ Modified Assignment #02 has been uploaded. Submission deadline: Aug 25, 2022
☑ Assignment #01 has been uploaded. Submission deadline: Aug 17, 2022
☑ The classes will be start from Aug 11, 2022
☑ Marks Distribution: Mid-Sem: 40%, End-Sem: 60% and Lab Tests: 50%, Assignments: 50%

📆 Class Schedule: Mid-sem


# Date Topic Remarks
1 2022-Aug-11 Introduction to C programming, Control Flow. slides_01,
References: [1]
2 2022-Aug-18 The Evolution of Programming Languages
Types, Operators and Expressions- Part-I
Input from file
slides_02
slides_03_part-I
slides_00
3 2022-Aug-22 Types, Operators and Expressions- Part-II
Functions and Recursion
slides_03_part-II
slides_04
4 2022-Aug-25 Dynamic Memory Allocation,
Multiple inputs from file
Memory swaping, Writing multiple functions
Introduction to write a C project
slides_05
sample codes
sample data
sample project
5 2022-Aug-29 Structures -I slides_06_Part_I
6 2022-Sep-01 Structures -II
Execution time
slides_06_Part_II
sample_code_1
sample_code_2
7 2022-Sep-05 Command Line Arguments
Multi-Dimensional Arrays
Matrix Addition and Multiplication
slides_07
Practice problems
8 2022-Sep-08 Link lists: part-I slides_08
9 2022-Sep-12 Link lists: part-II slides_09
10 2022-Sep-15 Link lists: part-III slides_10
11 2022-Sep-19 Problem solving
with strings and arrays
slides_11
Sample codes
Practice problems
12 2022-Sep-22 Plotting a graph using Octave
Link lists: part-IV
sample code
Slides
13 2022-Sep-26 Link lists: part-V
Sorting a linked list
Slides
14 2022-Sep-29 Practice Class Practice problems
-- 2022-Oct-14 Mid-semester Exam Questions

📆 Class Schedule: End-sem


# Date Topic Remarks
-- 2022-Oct-24 -- National Holiday
1 2022-Oct-27 -- Most students absent
2 2022-Oct-31 Binary Tree Slides
Sample codes
Practice problems
3 2022-Nov-03 Stack, Queue Slides
Sample codes
Practice problems
4 2022-Nov-07 BFS, DFS, etc. Slides
Sample codes
Practice problems
5 2022-Nov-10 Polynomial Algoithms
Matrix Algorithms, Part-I
slides_13
C_cheetsheet_1 (source)
C_cheetsheet_2 (source)
6 2022-Nov-14 Introduction to Python3 demo code
python_cheetsheet_1 (source)
python_cheetsheet_2 (source)
python_cheetsheet_3 (source)
7 2022-Nov-17 Matrix Algorithms, Part-II
Eigen Values and Eigen Vectors
power_method_1 (source)
power_method_2 (source)
8 2022-Nov-21 Binary Tree: Part-I
9 2022-Nov-24 Binary Tree: Part-II Slides
10 2022-Nov-28 Merkle Tree
(An authentication tree)
Slides
SHA-256
Practice problems
11 2022-Dec-01 Project Discussion Slides
Sample codes
Practice problems
12 2022-Dec-05 Project Discussion Slides
Sample codes
Practice problems
13 2022-Dec-08 Problem solving Slides
Sample codes
Practice problems
-- 2022-Dec-20 End-semester Exam Question_Paper
Input_Files

✍ Assignments



☛ For assignment #AP0x0y, the FileName will be AP0x0y.c
☛ Assignments must be sent as zip format. Filename must be assignment_xyz_abc.zip where xy = assignment id and abc = your firstName. For example: assignement_01_laltu.zip will be the file name for 'Laltu Sardar' for assignment 01
☛ Send the zip file to laltu.sardar[at)outlook[dot)com. The subject will be "assignment_xy_abc" as defined above
☛ Discussion with friends is allowed. However, copying others' codes is strictly prohibited.
☛ In the beginning of each file, please include the followings
/************************************************************
File Name:
Problem ID:
Name:
Collaborators:
Acknowledgements:
Time Spent:
************************************************************/


# Topic Assignments Sample Solution
Mid-semester
1 Introduction to C, Control flow Assignments #01 AP0101 AP0102
AP0103, AP0104
AP0105, AP0106
2 Types, Operators and Expressions
math.h library
Assignments #02
Submission Guidelines
sample code for AP0101
sample input for AP0101
To be uploaded
3 Function, Recursion, Iteration,
Execution time
Assignments #03 To be uploaded
4 Multi-dimensional arrays
Matrix operations
Command line arguments
Assignments #04 To be uploaded
5 Strings, Matrices and Link lists Assignments #05
Submission instructions
To be uploaded
6 Lists and Sets Assignments #06 To be uploaded
End-semester
7 Polynomial Operations Assignments #07
sample input
To be uploaded
8 Graph Algorithms Assignments #08 To be uploaded
9 Matrix Operations Assignments #09 To be uploaded

📑 Projects


# Topic Remarks
1 End-to-end Encrypted Communication Project_1
2 Quick Verification of Transcripts for Univesities Project_2
. Project Rules:
1. Students can select any one of the projects
2. Students can form group
3. Each group must prepare a report
4. Each group will have to present their project with live demo
Exact Weightages:
1. Assignment_07-09--> 15/100;
2. Project--> 15/100;
3. End Sem Lab-Test--> 30/100


📚 References


  1. B. W. Kernighan and D. M. Ritchi: The `C' Programming Language, Prentice Hall, Englewood Cliffs, NJ, 1980.

  2. B. Gottfried: Programming in C, Schaum Outline Series, New Delhi, 1996.

  3. B. Stroustrup: The C++ Programming Language, 2nd ed., Addison-Wesley, California, 1995.

  4. D. M. Arnow and G. Weiss: Introduction to Programming using Java, Addison-Wesley, London, 1999.

  5. T. W. Pratt and M. V. Zelkowitz: Programming Languages: Design and Implementation, 4th ed., Prentice Hall, Englewood Cliffs, 2001.

  6. T. A. Standish: Data Structures, Algorithms and Software Principles, Addison-Wesley, Reading, Mass., 1995.

  7. A. M. Tannenbaum and M. J. Augesestein: Data Structures Using PASCAL, Prentice Hall, New Jersey, 1981.

  8. D. E. Knuth: The Art of Computer Programming. Vol. 1, 2nd ed. Narosa/Addison-Wesley, New Delhi/London, 1973

  9. E. Horowitz and S. Sahni: Fundamentals of Data Structures, CBS, New Delhi, 1977.

  10. A. Aho, J. Hopcroft, and J. Ullman: Data Structures and Algorithms, Addison-Wesley, Reading, Mass., 1983.

  11. T. Coreman, C. Leiserson and R. Rivest: Introduction to Algorithms, McGraw Hill, New York, 1994.

  12. S. Sahani: Data Structure, Algorithms and Applications in JAVA, McGraw Hill, New York, 2000.

Top