Computer programming - fall of 2019
S.L. dr. ing. Alexandru IOVANOVICI
Wednesday: 12-14, room A109, From Week 1 to Week7
Thursday: 10-12, room A117, From Week 1 to Week14
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.
- VM image.
- Midterm subjects (2018).
- Final exam, 1st att empt PbBytes; 2nd attempt (all for 2018).
- Midterm Problem 1 commented solution (solved for uint32_t). Sample solutions provided by Andrei Ardelean.
- Audio recordings of the lectures.
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 curiosities 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.
- Lecture 6: Recursion.
- Lecture 7: Pointers.
- Lecture 8: Arrays.
- Lecture 9: Strings.
- Lecture 10: Custom data types. Structures.
- Lecture 11: Input and Output
- Lecture 12: File I/O. Preprocessor
- Lecture 13: Dynamic memory allocation.
- Lecture 14: Buffer
- 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. Prob 5.
- 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