Computer Programming (University of Rajasthan, July-November 2019)
Instructor: Sanjeev Kumar
Pre-requisites
The basic pre-requisites for this course are a proper knowledge of basic logic and algorithm makings: How to solve a problem by hand and how to work logic.
Message Channel
If you want to get updates on mobile, send your mobile number on email and get updates on whatsapp/hike/sms.
Dates and timings
Monday, Tuesday, Wednesday and Thursday, 10:00 AM – 11:00 AM
Starting date: Revision of pre-requisites from July 25, new course material from July 30, 2019.
Venue
Smart room 2
Links
Contact
Email: sanjeev@uniraj.ac.in
Office: R201
Mobile: +91 9462807073
Calendar
About the course
This is a Masters in Physics course at Department of Physics, University of Rajasthan, Jaipur.
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. Syllabus is covered from two books, one is by Robert Sebesta and another is Deitel.
Details about these books can be found by clicking here.
The course contents are as follows:
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.
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, design issues for functions, accessing nonlocal environment, user defined overloaded operators, implementing subprograms, blocks, implementing dynamic scooping.
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.
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.
Assignments
Home assignment 1: Assigned 14 August 2019, due 31 August 2019 (pdf)
Computer lab assignment: Assigned 14 August 2019, due 31 August 2019 (pdf)
Home assignment 2: Assigned 19 September 2019, due 11 October 2019 (pdf)
Main exam: 9 January 2020 (pdf) (scanned copy by Twinkle Rani)
Performance report has submitted to HOD on 17 October 2019.
Notes
There are few handwritten notes/slides that I prepare to help me to teach the course. Since, few of them are same from previous years. 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).
Revision lecture: 25, 29 July 2019 (pdf)
Lecture 1-2: First day in computer lab: 30 July 2019
Lecture 3: First c program: 31 July 2019
Lecture 4: simple arithmetic, if statement: 1 August 2019
Lecture 5, 6: If statement and examples: 5, 6 August 2019
Lecture 7, 8: For and while loop: 7, 8 August 2019
Lecture 9: Switch-case with examples and random numbers: 13 August 2019
Lecture 10: First assignment and instructions: 14 August 2019
Lecture 11: Functions and their uses in c programming: 19 August 2019
Lecture 12: Recursion in c-programming: 20 August 2019
Teaching off due to student election: 26-29 August 2019
Lecture 14, 15, 16: Some array examples and introduction to pointer: 3, 4 and 5 September 2019
Discussion class: 9 September 2019
Holiday: Muharram: 10 September 2019
Discussion classes: 11, 12 and 16 September 2019
Lecture 17: User defined and default functions for string: 17 September 2019
Lecture 18: User defined and ctype library functions: 18 September 2019
Lecture 19: Structure in c-programming: 19 September 2019
Lecture 20: Uses of structure in function and pointer view: 23 September 2019
Discussion classes 24 and 25 September 2019
Lecture 21: Basics of programming language: 26 September 2019
Lecture 22: Lexeme and identifiers: 30 September 2019
No class from 1 October to 13 October 2019 due to midterm exams.
Lecture 23, 24: : 14, 15 October 2019
Discussion class: 16 October 2019
No class on 17 October 2019 shifted in longer discussion yesterday.
No class from 21 October to 29 October 2019 due to Deepawali vacation.
Lecture 25: : 30 October 2019
Lecture 26: : 31 October 2019
Lecture 27: : 4 November 2019
Lecture 28: : 5 November 2019
Lecture 29: : 6 November 2019
Lecture 30: : 7 November 2019