Computer Programming (University of Rajasthan, August-December 2016)
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 and Tuesday, 10:00 AM – 11:00 AM
Starting date: Revision of pre-requisites from August 1, new course material from August 8, 2016.
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.
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, desing issues for functions, accessing nonlocal enviroment, 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.
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
- Assignment 1: Assigned 29 August 2016, due 11 September 2016. (PDF File)
- Assignment 2: Assigned 2 October 2016, due 5 November 2016. (PDF File) (Optional, PDF File)
- Midterm: 18 October 2016 (PDF File)
- Questions in practical exam: 15, 16 and 17 November 2016 (PDF)
- Main exam: 9 January 2017 (PDF) (Scanned original)
- Questions in main exam (Practical): 16, 17, 18 January 2017 (PDF)
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). Total number of days when lecture delivered is 20.
You can run these programs with some online tools too. One of them is described here.
- Revision Lecture 0.1, 0.2: What is a language: 1 and 2 August 2016 References: Deitel 6th edition, Page 2-6; The Art of Programming Through Flowcharts & Algorithms by Anil Bikas Chaudhuri, Page 1-3; Download as pdf
- Feedback: Students didn't provide any feedback about these classes yet. For your feedback, please click here.
- Lecture 1: First program in c-language and errors in it.: 8 August 2016 (first file)
- Lecture 2: Arithmetic in c-language and their precedence.: 9 August 2016 (c file and online view)
- Holiday: Independence day in India: 15 August 2016
- All students were absent.: 16 August 2016
- Lecture 3 : Decision making and structured program devlopment in C.: 22 August 2016 (file 1, file 2, file 3 and file 4; for online running click here.)
- Lecture 4: The While Repetition Statement: 23 August 2016 (Please have a look at files file_1 and file_2; for online running click here.)
- Lecture 5: Break, continue and Switch Multiple-Section Statement: 29 August 2016 (Please have a look at files file_1, file_2, file_3 and file_4; for online running click here.)
- Teaching off: Students election preparation: 30 August 2016
- Holiday: Ganesh Chaturthi (Hindu festival): 5 September 2016
- Holiday: Samvatsari (Jain festival): 6 September 2016
- Holiday: Ramdev Jayanti and Tejadashmi (Hindu festival): 12 September 2016
- Holiday: Eid al-Adha (Muslim festival): 13 September 2016
- Lecture 6: Functions definitions and function prototypes in C: 19 September 2016 (Please have a look at files file_1, file_2 and file_3; for online running click here.)
- Lecture 7: Different datatypes and recursion: 20 September 2016 (Please have a look at files file_1, file_2 and file_3; for online running click here.)
- Lecture 8: Random Number Generation and Scope rules: 26 September 2016 (Please have a look at files file_1, file_2, file_3 and file_4; for online running click here.)
- Lecture 9: C-Arrays: 27 September 2016 (Please have a look at files file_1, file_2, file_3 and file_4; for online running click here.)
- Lecture 10: C-Arrays (few more examples): 3 October 2016 (Please have a look at files file_1, file_2, file_3, file_4 and file_5; for online running click here.)
- On Leave: 4 October 2016
- Holiday: Maha Navami (Hindu festival): 10 October 2016
- Holiday: Vijayadashami (Hindu festival): 11 October 2016
- Teaching off: Midterm exams: 17 October 2016
- Teaching off: Midterm exams: 18 October 2016
- Special Holiday: University holiday: 24 October 2016
- Special Holiday: University holiday: 25 October 2016
- Holiday: Govardhan Puja (Hindu festival): 31 October 2016
- Holiday: Bhai Dooj (Hindu festival): 1 November 2016
- Lecture 11: C-Pointers: 7 November 2016 (Please have a look at files file_1, file_2, file_3, file_4, file_5, file_6, file_7, file_8 and file_9; for online running click here.)
- Lecture 12: Binary operators, Pointers to Functions: 8 November 2016 (Please have a look at files file_1, file_2 and file_3; for online running click here.)
- Holiday: Guru Nanak Jayanti (Sikhism festival): 14 November 2016
- Teaching off: Midterm exams: 15 November 2016
- Lectrue 13: C Characters and Strings: 21 November 2016 (file 1, file 2 and file 3; for online running click here.)
- Lecture 14: C Characters and Strings (part 2): 22 November 2016 (file 1, file 2, file 3, file 4, file 5 and file 6; for online running click here.)
- Lecture 15: C Formatted Input/Output: 28 November 2016 (file 1, file 2, file 3, file 4 and file 5; for online running click here.)
- Lecture 16: C Structures, Unions and Enumerations: 29 November 2016 (file 1, file 2, file 3, file 4, file 5 and file 6; for online running click here.)
- Lecture 17: C File Processing: 5 December 2016 (file 1, file 2, file 3, file 4, file 5, file 6, file 7 and file 8)
- Lecture 18: C Data Structures and C Preprocessor: 6 December 2016 (file 1, file 2, file 3 and file 4)
- Revision Lecture 0.3: What we did and what we can do more. (No slides.): 13 December 2016