Computer programming - fall of 2019
S.L. dr. ing. Alexandru IOVANOVICI
Schedule according to the official one.
You have to attend all the labs and obtain a passing grade for all the required and graded activities in order to pass the laboratory part of the subject.
Lab standings can be found here.
Thursdys, 10-12, B520
Additional slots can be provided on request
- Last year's course page is here.
- Example Exam (for illustrative purposes and as a frame of reference). Those who consider themselves proficient in programming should try and solve this and later discuss with us the results. PB1.
- VM image.
- Midterm subjects.
- Final exam, 1st attempt PbBytes; 2nd attempt.
You might be interested in the following ones too:
- Richard M. Reese, Understanding and Using C Pointers, 2013
- Kochan, Stephen G. Programming in C. Sams Publishing, 2004.
- Press, William H. Numerical recipes 3rd edition: The art of scientific computing. Cambridge university press, 2007.
- Coursera online course: Programming Languages; Not using C, but interesting if you have curiosties in "many of the concepts that underlie all programming languages"
- Khan Academy online.
- What can C++ do for embedded systems developers? - Bjarne Stroustrup
- The Developement of the C programming language - Dennis Ritchie
- A set of video lectures about the maths and programming behind autonomous driving.
- Quora question about Linus Torvalds, C vs C++, Java, ...
Lecture slides and supplementary material
- Lecture 1: Introduction to programming. Basic program structure.
- Lecture 2: Conditional execution of the programs. Operators.
- Lecture 3: Character type. Basic I/O. Loops 3
- Lecture 4: Iteration. Side-effects. Break, continue, goto
- Lecture 5: Internal representation of data. Bitwise operations. PrintsBits.
- Lecture 6: Recursion. Digits and factorial
- Lecture 7: Arrays. Copy positives.
- Lecture 8: Strings.
- Lecture 9: Custom data types. Structures.
- Lecture 10: Input and Output
- Lecture 11: Pointers. Pointers and qsort.
- Lecture 12: Dynamic memory allocation. Fibbonaci strings.
- Lecture 13: File I/O. Preprocessor
Lab Assignments (2018 version)
- Week 1: Introduction. Basics of the language. Conditional execution of the programs.
- Week 2: Character based I/O. Conditions. Loops1
- Week 3: Basic input processing. Loops 2
- Week 4: Internal representation. Bitwise operations (1). Prob 3., Prob 4.
- Week 5: Internal representation. Bitwise operations (2)
- Week 6: Recursion. Prob 6.
- Week 7: Arrays
- Week 8: Strings (character arrays)
- Week 9: Input and output
- Week 10: Pointers
- Week 11: Dynamic allocation
- Week 12: Files
- Week 13: Preprocessor. Modular compilation
- Week 14: Structures