Computer Programming (University of Rajasthan, August-November 2015)

Instructor: Sanjeev Kumar

Home | Assignments | Notes | Links | Contact

This is a Masters in Physics course at Department of Physics, University of Rajasthan, Jaipur. Course is now over and page is being preserved as is.

Several textbooks will be used during the course. The five books pictured above (click to enlarge) are among the recommended ones. A list of other C-programing language textbooks can be found on the internet.

The course contents are as follows:

  1. Basic concepts of programming languages: Programming domains, language evaluation criterion and language categories. Describing Syntax and Semantics, formal methods of describing syntax, recursive descent parsing, attribute grammars, dynamic semantics. Names, Variables, Binding, Type checking, Scope and lifetime.
  2. Data types, array types, record types, union types, set types and pointer types, arithmetic expressions, type conversions, relational and Boolean expressions, assignment statements, mixed mode assignment, statement level control structure, compound statements, selection statement, iterative statements, unconditional branching, guarded commands. Fundamentals of sub-program, design issues, parameter passing methods, overloaded subprograms, generic subprograms, separate and independent compilation, desing issues for functions, accessing nonlocal enviroment, user defined overloaded operators, implementing subprograms, blocks, implementing dynamic scooping.
  3. Programming in C: Character set, variables and constants, keywords, Instructions, assignment statements, arithmetic expression, comment statements, simple input and output, Boolean expressions, Relational operators, logical operators, control structures, decision control structure, loop control structure, case control structure, functions, subroutines, scope and lifetime of identifiers, parameter passing mechanism.
  4. Arrays and strings, structures, array of structures, Unions of structures, operations on bits, usage of enumerated data types. Bit-fields, Pointers to Function, Function returning Pointers.

In above list, I will teach topics given in 3rd and 4th bullets. Prof A.K. Nagawat will take care of first two parts. Mainly, I am following the book Deitel. (pdf) (google drive).

Book by Robert B. Sebesta can be found here. (pdf) (google drive)

Assignments

Notes

These are handwritten notes/slides that I prepare to help me teach the course. Although I usually use them while teaching, there are occasions when I teach something that was not written in the notes, or do not teach something that I had written in the notes. So they are not an accurate record of the course (nor are they intended to be). Also, though each set of notes is roughly matched to a given lecture, it often happens that part of the material written for a given lecture is taught in the following lecture (if I run out of time).

Pre-requisites: The basic pre-requisites for this course are a proper knowledge of basic logics and algorithm makings: How to solve a problem by hand and how to work logic.

Dates and timings:

  • Monday and Tuesday, 10:00 AM – 11:00 AM
  • Starting date: Revision of pre-requisites from August 3, new course material from August 10, 2015.

Venue: Smart room 2

Links:

Contact:

Calendar: My Calendar and availability