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

Other Resources

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

EMail   sg.[firstname]@gmail.com
Phone   +91 (33) 2575 2037 (Office)
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