Computer Programming (University of Rajasthan, July-November 2018)
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 18, new course material from July 24, 2018.
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 2018, due 31 August 2018. (pdf)
- Home assignment 2: Assigned 9 September 2018, due 7 October 2018. (pdf)
- HW 1 for non lab students. Assigned 9 September 2018, due 7 October 2018. (pdf)
- Midterm: 24 October 2018 (pdf)
- Main exam: 29 December 2018 (pdf) (scanned copy by Seema Surela)
- Performance report is submitted to HOD and sent to Examination Controller.
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: 18, 19, 23 July 2018 (pdf)
- Lecture 1, 2 and 3: First program, simple arithmetic, if statement: 24, 25 and 26 July 2018 (pdf)
- Lecture 4, 5, 6 and 7: C program control and math library: 30, 31 July, 1 and 2 August 2018 (pdf)
- Lecture 8, 9, 10 and 11: Basic concepts of programming languages: 6, 7, 8 and 9 August 2018 (pdf)
- Lecture 8 to 11 (revision): 13 and 16 August 2018
- Shifted class time for Dr Sunita Mahawar: 14 August 2018
- Holiday: Independence day in India: 15 August 2018
- Discussion on the problems in assignment 1: 20 and 21 August 2018
- Holiday: Eid al-Adha: 22 August 2018
- Lecture 12, 13 and 14: Describing Syntax and Semantics: 23, 27 and 28 August 2018 (pdf)
- Lecture 15, 16, 17: Random Numbers, scope rules and introduction to array: 29 August, 4 and 5 September 2018 (pdf)
- Teaching suspended because of students election: 30 August 2018
- No classes from 06 September 2018 to 26 September 2018 (on leave)
- Lecture 18, 19: C-arrays: 27 September and 1 October 2018
- Lecture 20, 21: C Formatted Input/Otput and reading/writing from/to file: 3 and 4 October 2018
- Discussed students problems in 4 lectures: 8, 9, 10 and 11 October 2018
- Lecture 22 and 23: Recursion, Pragmatics (Slides are from AKN): 15 and 16 October 2018
- Holidays: Dussehra Holiday: 17 and 18 October 2018
- No class due to mid-term exam of students: 22, 23, 24 and 25 August 2018
- No class from 29, 30 and 31 October 2018 (on leave)
- Holiday: Deepawali Holiday: 1, 5, 6, 7 and 8 November 2018
- Discussion on midterm questions: (2 hours) 12 November 2018
- Lecture 24: Discussion on different datatypes: 13 November 2018
- No class (on leave till the semester ends).