Skip to content
Skopje, North Macedonia, April 2019
Skopje, North Macedonia, April 2019
On this page

C Programming

XXX

<p>The <i>« E301B Programmation C »</i> activity, taught to students in 
third year of bachelor in electronics and in computer science engineering
at the <a href="https://www.vinci.be/fr-be/ecam">ECAM Brussels Engineering
School</a> (ECAM), is about <b>C programming</b>. In addition to the
programming language, the course also presents how data are represented in
the memory, the structure of a program in memory and some basic elements
about system programming.</p>

<p>I started to give this course in 2017 and I am currently giving it for
the third time. The course is taught in English, but all the material is
available in English and <a href="/fr/teaching/ecam/c/">in
French</a>.</p>


<h2>Documents</h2>

<ul>
  <li>General information about the course</li>
  <li>
  <a href="/files/ecam/general/ECAM-Competency-Based-Assessment-Slides.pdf">
  Competency Based Assessment <img src="/images/pdf.png" width="16"
  height="16" alt="PDF"></a></li>
  <li><a href="/files/ecam/c/ECAM-C3BE-Competencies-List.pdf">Grid of
  skills to acquire <img src="/images/pdf.png" width="16" height="16"
  alt="PDF"></a></li>
</ul>


<h2>Theory</h2>

<ul>
  <li><a href="/files/ecam/c/ECAM-C3BE-Session1-Slides.pdf">Session 1:
  Introduction to C Programming <img src="/images/slides.png" width="16"
  height="16" alt="Slides"></a></li>

  <li><a href="/files/ecam/c/ECAM-C3BE-Session2-Slides.pdf">Session 2: Data
  Memory Representation <img src="/images/slides.png" width="16" height="16"
  alt="Slides"></a></li>

  <li><a href="/files/ecam/c/ECAM-C3BE-Session3-Slides.pdf">Session 3:
  Memory Structure and Pointer Manipulation <img src="/images/slides.png"
  width="16" height="16" alt="Slides"></a></li>

  <li>Session 4: Program Structure and Standard Library</li>

  <li>Session 5: Structuring Data</li>

  <li>Session 6: Reading and Writing Files</li>
</ul>


<h2>Practice</h2>

<ul>
  <li><a href="/files/ecam/c/ECAM-C3BE-Quizz1.pdf">Quizz 1: Number
  representation <img src="/images/pdf.png" width="16" height="16"
  alt="PDF"></a></li>
  <li><a href="/files/ecam/c/ECAM-C3BE-Quizz2.pdf">Quizz 2: Bit
  manipulation <img src="/images/pdf.png" width="16" height="16"
  alt="PDF"></a></li>
  <li><a href="/files/ecam/c/ECAM-C3BE-Quizz3.pdf">Quizz 3: Memory and
  introduction to pointer <img src="/images/pdf.png" width="16" height="16"
  alt="PDF"></a></li>
  <li><a href="/files/ecam/c/ECAM-C3BE-Quizz4.pdf">Quizz 4: Memory and
  pointer arithmetic <img src="/images/pdf.png" width="16" height="16"
  alt="PDF"></a></li>
  <li><a href="/files/ecam/c/ECAM-C3BE-Coding1.pdf">Coding 1: Simple
  console output pattern <img src="/images/pdf.png" width="16" height="16"
  alt="PDF"></a></li>
  <li>Work: Creating a game in console mode with C</li>
</ul>


<h2>Resources</h2>

<h3>Official book</h3>

<ul>
  <li>Sébastien Combéfis. (to be published). Bases de la programmation et
  découverte du langage C. UKO Publication.</li>
</ul>

<h3>Reference books</h3>

<ul>
  <li>Brian W. Kernighan. (1988). The C Programming Language (2nd
  edition). Prentice Hall. <small>(ISBN: 978-0-131-10362-7)</small></li>
  <li>Peter Fenwick. (2018). Introduction to Computer Data Representation.
  Bentham Science Publishers. <small>(ISBN: 978-1-608-05883-9)</small></li>
</ul>

<h3>Other books</h3>

<ul>
  <li>Mark Siegesmund. (2014). Embedded C Programming: Techniques and
  Applications of C and PIC MCUS. Newnes.
  <small>(ISBN: 978-0-128-01314-4)</small></li>
  <li>Steve Oualline. (1997). Practical C Programming (3rd edition).
  O'Reilly. <small>(ISBN: 978-1-565-92306-5)</small></li>
  <li>Stephen G. Kochan. (2014). Programming in C (4th edition).
  Addison-Wesley. <small>(ISBN: 978-0-321-77641-9)</small></li>
</ul>

<h3>Scientific references</h3>

<ul>
  <li>D. M. Ritchie, S. C. Johnson, M. E. Lesk and B. W. Kernighan. UNIX
  Time-Sharing System: The C Programming Language. In <i>The Bell System
  Technical Journal</i>, 57(6):1991-2019, 1978.</li>
  <li>David Goldberg. What Every Computer Scientist Should Know About
  Floating-Point Arithmetic. In <i>ACM Computing Surveys</i> (CSUR), 23(1):5-48, 1991.</li>
</ul>

<h3>Online resources</h3>

<ul>
  <li><a href="http://www.cplusplus.com/reference/clibrary/">C Library 
  Reference</a>, The C++ Resources Network, 2019.</li>
  <li>
  <a href="https://www.h-schmidt.net/FloatConverter/IEEE754.html">IEEE-754
  Floating Point Converter</a>.</li>
  <li><a href="https://www.onlinegdb.com/online_c_compiler">Online C
  Compiler</a>, Mritunjay Singh Sengar.</li>
</ul>