Computer programming - fall of 2019

Lectures

S.L. dr. ing. Alexandru IOVANOVICI

  • TBA

Labs

S.L. dr. ing. Alexandru IOVANOVICI, ing. Raul STOIN, ing. Mario SAVU

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.

Office hours

Thursdys, 10-12, B520

Additional slots can be provided on request

Resources

  • Syllabus
  • 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