# Information information

Introduction to Programming | A1 for MTech (CS)Instructor : Sourav Sen Gupta | RCBC, ISI Kolkata

Lectures : Monday and Thursday (11:15-13:00)

Assignments : Mid-Sem Exam : End-Sem Exam = 20 : 30 : 50

## In a nutshell

This course is targeted at students with little or no programming experience, and its main goal is to provide the students with an understanding of the role computation can play in solving problems. It aims to help students, regardless of their prior background and experience, to feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals.This course assumes no prior programming experience on part of the students, and hence aims to be self-contained. Since computer programming involves computational modes of thinking, it will help to have some mathematical and logical aptitude.

# Lectures lectures

# | Date | Topic | Res | Ref |
---|---|---|---|---|

1 | 24 Jul 2014 | First Lecture : Orientation | Slides | -- |

2 | 24 Jul 2014 | First Lecture : Basics | Slides | KR 5--21 |

3 | 31 Jul 2014 | Second Lecture : GDB and Assembly | Slides | GDB |

4 | 31 Jul 2014 | Second Lecture : GDB and Assembly | Slides | GDB Tut |

5 | 04 Aug 2014 | Third Lecture : Problem Solving with C | Slides | Dromey |

6 | 07 Aug 2014 | Third Lecture : Problem Solving with C | Slides | Dromey |

7 | 14 Aug 2014 | Fourth Lecture : Pointers and Arrays | -- | KR 97--100 |

8 | 14 Aug 2014 | Fourth Lecture : Pointer Arithmetic | -- | KR 100--103 |

9 | 18 Aug 2014 | Fifth Lecture : Pointers and Functions | -- | KR 93--97 |

10 | 21 Aug 2014 | Fifth Lecture : Generic Swap Function | Codes | -- |

11 | 25 Aug 2014 | Sixth Lecture : Pointers and Strings | Codes | KR 104--118 |

12 | 28 Aug 2014 | Sixth Lecture : Pointer to Function | -- | KR 118--121 |

13 | 04 Sep 2014 | Tutorial : Recap for Mid-Sem | -- | -- |

Break : 08 - 15 Sep 2014 : Mid-Semester Exams | ||||

14 | 18 Sep 2014 | Random stuff : GMP Library | Codes | GMP |

15 | 22 Sep 2014 | Seventh Lecture : Basic Data Structure | -- | -- |

16 | 25 Sep 2014 | Seventh Lecture : Pre/In/Post-Fix | -- | -- |

Break : 01 - 07 Oct 2014 : Puja Holidays | ||||

17 | 22 Oct 2014 | Eighth Lecture : Recursive Solutions | Codes | KR 86--88 |

18 | 27 Oct 2014 | Ninth Lecture : Python and Sage | Codes | Details |

19 | 30 Oct 2014 | Ninth Lecture : Python and Sage | Codes | Details |

20 | 31 Oct 2014 | Ninth Lecture : Python and Sage | Codes | Sage NB |

21 | 03 Nov 2014 | Tenth Lecture : Files and Buffers | -- | KR 151--162 |

22 | 07 Nov 2014 | Tenth Lecture : Standard I/O Library | -- | KR 241--248 |

23 | 10 Nov 2014 | Eleventh Lecture : Macros in C | -- | KR 88--92 |

24 | 14 Nov 2014 | Tutorial : Recap for End-Sem | -- | -- |

The End : 17 - 28 Nov 2014 : Semester Exams |

# Python Module python

This is a crash course in Scientific Computation using Python, covering basics of Python programming language, and some interesting computing tools like NumPy and Sage.### Learn Python

- Learn Python the Hard Way, Zed A. Shaw | learnpythonthehardway.org

Read through this book, and diligently complete each exercise prescribed herein. - Google's Python Class | developers.google.com/edu/python/

After going through the*Hard Way*, it is time to take a decent online class. - Useful Modules in Python | wiki.python.org/moin/UsefulModules

Now find yourself the Python module that you want, and learn it independently.

### Other Resources

- Think Python, Allen B. Downey | www.greenteapress.com/thinkpython/ | PDF
- Dive into Python, Mark Pilgrim | www.diveintopython.net | PDF

### Scientific Python

- Sage | Open-source Mathematics Software System | www.sagemath.org
- SageNB | The Sage Notebook (try it online first) | www.sagenb.org
- SciPy | Python stack for Scientific Computation | www.scipy.org
- NumPy | Python for Numerical Computation | www.numpy.org
- SymPy | Python for Symbolic Computation | www.sympy.org

### Sample Codes

We wrote/saw a few sample codes in Python and Sage during this mini-module on Python.You can find some of those here -- Python Sample Codes and Sage Sample Worksheets.

# Assignments assignments

Assignments constitute 20% of the total marks (4 assignments with varying weightage).# | Assignment | Resources | Posted | Due on |
---|---|---|---|---|

0 | Introduction to C | -- | 24 Jul 2014 | Never ;-) |

1 | Problem Solving using C | LaTeX file | 8 Aug 2014 | 18 Aug 2014 |

2 | Pointers in C | LaTeX file | 28 Aug 2014 | 31 Aug 2014 |

3 | Basic Data Structure | LaTeX file | 01 Oct 2014 | 20 Oct 2014 |

4 | File Handling in C | LaTeX file | 06 Nov 2014 | 05 Dec 2014 |

# Tests tests

The tests constitute 80% of the total marks. There will be two tests over the duration of the course, and both the scores will be counted towards the computation of the final grade.#### Mid-Semestral Examination

This will contribute towards 30% of the total marks. [Question Paper]#### Semestral Examination

This will contribute towards 50% of the total marks. [Question Paper]This will be an open-resources test. Academic resources such as class-notes, books and other reference materials will be allowed. In addition, each examinee will be allowed to bring one USB storage device (pendrive, not Ext-HDD) containing any academic resource of their choice.

## Reach Sourav

sg.[firstname]@gmail.com+91 (33) 2575 2037 (Office)

Room 404, 3rd Floor, Deshmukh Building

## Updates

- Endsem : 19 November 2014.
- Endsem Recap : 14 Nov : 4-6 PM
- Assignment 4 posted (due 17 Nov 2014).
- Python resources posted.
- Assignment 3 posted (due 20 Oct 2014).
- MidSem : 15 Sep 2014 : Question posted.
- Extra Tutorial : 11 Sep, 11:00-13:00.
- Assignment 2 posted (due 31 Aug).
- Assignment 1 posted (due 18 Aug).
- Assignment 0 posted (optional).
- Basic course information posted.
- Course website is now online.

## References

- The C Programming Language

B W Kernighan and D M Ritchie

Prentice Hall, India, 1990 - Data Structures

Seymour Lipschutz

McGraw Hill, India, 2014 - Write Great Code (1 & 2)

Randall Hyde

No-Starch Press, 2004, 2006 www.nostarch.com/greatcode.htm - Programming Pearls

John Bentley

Addison-Wesley, 2000

www.cs.bell-labs.com/cm/cs/pearls/ - How to Solve it by Computer

R G Dromey

Prentice Hall International, 1982