{"id":1694,"date":"2024-11-22T15:56:21","date_gmt":"2024-11-22T14:56:21","guid":{"rendered":"https:\/\/cisco.inf.unideb.hu\/?page_id=1694"},"modified":"2024-11-22T15:56:21","modified_gmt":"2024-11-22T14:56:21","slug":"programming-essentials-in-c","status":"publish","type":"page","link":"https:\/\/cisco.inf.unideb.hu\/?page_id=1694","title":{"rendered":"Programming Essentials in C"},"content":{"rendered":"\n<p>The <strong>CLA: Programming Essentials in C<\/strong> course (short form: <em>C Essentials<\/em>) covers the basics of programming in the C programming language and touches on fundamental programming techniques, customs and vocabulary, including the most common library functions and the usage of the pre-processor.<\/p>\n\n\n\n<p>The aim of the course is to familiarize the student with the basic concepts of computer programming and developer tools, present the syntax, semantics and data types offered by the language, and allow the student to write his or her own programs using standard language infrastructure, regardless of the hardware or software platform.<\/p>\n\n\n\n<p>The course is broken down into <strong>eight modules<\/strong> followed by an additional Module 0. introducing the recommended programming environments, and instructions on how to install and use them.<\/p>\n\n\n\n<p>Each student has access to <strong>hands-on practice materials<\/strong>, <strong>labs<\/strong>, <strong>quizzes<\/strong>, and <strong>assessments<\/strong> to learn how to utilize the skills and knowledge gained on the course and interact with some <strong>real-life programming tasks and situations<\/strong>.<\/p>\n\n\n\n<p>Students who complete the course will be able to accomplish coding tasks related to the basics of programming in the C language, and to understand and utilize the fundamental notions and techniques used in the language.<\/p>\n\n\n\n<p>Furthermore, they will be ready to attempt the following qualifications:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CLE &#8211; C Certified Entry-Level Programmer (coming late 2019);<\/li>\n\n\n\n<li>CLA &#8211; C Certified Associate Programmer.<\/li>\n<\/ul>\n\n\n\n<p>from the <a href=\"https:\/\/cppinstitute.org\" target=\"_blank\" rel=\"noreferrer noopener\">C++ Institute<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Course syllabus<\/h4>\n\n\n\n<p><strong>Module 0: Installing And Using Your Programming Environment<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Introduction to IDE<\/li>\n\n\n\n<li>Online tools<\/li>\n\n\n\n<li>Edube Interactive<\/li>\n<\/ul>\n\n\n\n<p><strong>Module 1: Absolute Basics &#8211; Introduction to Computer Programming<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>languages: natural and artificial,<\/li>\n\n\n\n<li>machine languages,<\/li>\n\n\n\n<li>high-level programming languages,<\/li>\n\n\n\n<li>obtaining the machine code: compilation process,<\/li>\n\n\n\n<li>writing simple programs,<\/li>\n\n\n\n<li>variables,<\/li>\n\n\n\n<li>integer values in real life and in C,<\/li>\n\n\n\n<li>integer literals,<\/li>\n\n\n\n<li>comments.<\/li>\n<\/ul>\n\n\n\n<p><strong>Module 2: Data Types, operations, and the basics of flow control<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>floating-point values in real life and in C,<\/li>\n\n\n\n<li>float literals,<\/li>\n\n\n\n<li>arithmetic operators,<\/li>\n\n\n\n<li>priority and binding,<\/li>\n\n\n\n<li>post- and pre-incrementation, decrementation,<\/li>\n\n\n\n<li>operators of type op=,<\/li>\n\n\n\n<li>the <em>char<\/em> type and ASCII code,<\/li>\n\n\n\n<li><em>char<\/em> literals,<\/li>\n\n\n\n<li>equivalence of <em>int<\/em> and <em>char<\/em> data,<\/li>\n\n\n\n<li>comparison operators,<\/li>\n\n\n\n<li>conditional execution and if keyword,<\/li>\n\n\n\n<li>the <em>printf()<\/em> and <em>scanf()<\/em> functions<\/li>\n<\/ul>\n\n\n\n<p><strong>Module 3: Flow Control (continued), more data types, computer logic<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>conditional execution: the <em>else<\/em> branch,<\/li>\n\n\n\n<li>integer and float types,<\/li>\n\n\n\n<li>conversions,<\/li>\n\n\n\n<li>typecast and its operators,<\/li>\n\n\n\n<li>loops: <em>while<\/em>, <em>do<\/em>, and <em>for<\/em>,<\/li>\n\n\n\n<li>controlling the loop execution: <em>break<\/em> and <em>continue<\/em>,<\/li>\n\n\n\n<li>logical and bitwise operators.<\/li>\n<\/ul>\n\n\n\n<p><strong>Module 4: Aggregating Data Into Arrays<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>switch: different faces of \u2018if\u2019,<\/li>\n\n\n\n<li>arrays (vectors),<\/li>\n\n\n\n<li>sorting in real life and computer memory,<\/li>\n\n\n\n<li>initiators,<\/li>\n\n\n\n<li>pointers,<\/li>\n\n\n\n<li>an address, a reference, a dereference and the <em>sizeof<\/em> operator,<\/li>\n\n\n\n<li>simple pointers, pointers to nothing (<em>NULL<\/em>),<\/li>\n\n\n\n<li>the &amp; operator,<\/li>\n\n\n\n<li>pointer arithmetic,<\/li>\n\n\n\n<li>pointers vs. arrays: different forms of the same phenomenon,<\/li>\n\n\n\n<li>strings,<\/li>\n\n\n\n<li>string manipulation.<\/li>\n<\/ul>\n\n\n\n<p><strong>Module 5: Memory Management And Structures<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>array indexing,<\/li>\n\n\n\n<li>using pointers: perils and disadvantages,<\/li>\n\n\n\n<li>the <em>void<\/em> type,<\/li>\n\n\n\n<li>arrays of arrays and multidimensional arrays,<\/li>\n\n\n\n<li>memory allocation and deallocation: the <em>malloc()<\/em> and <em>free()<\/em> functions,<\/li>\n\n\n\n<li>arrays of pointers vs. multidimensional arrays,<\/li>\n\n\n\n<li>structures,<\/li>\n\n\n\n<li>declaring, using and initializing structures,<\/li>\n\n\n\n<li>pointers to structures and arrays of structures,<\/li>\n\n\n\n<li>the basics of recursive data collections.<\/li>\n<\/ul>\n\n\n\n<p><strong>Module 6: Functions<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>functions,<\/li>\n\n\n\n<li>how to declare, define and invoke functions,<\/li>\n\n\n\n<li>the scope of variables, local variables and function parameters,<\/li>\n\n\n\n<li>pointers, arrays and structures as function parameters,<\/li>\n\n\n\n<li>function result and the <em>return<\/em> statement,<\/li>\n\n\n\n<li><em>void<\/em> as a parameter, pointer and result,<\/li>\n\n\n\n<li>parameterizing the <em>main<\/em> function,<\/li>\n\n\n\n<li>external functions and the <em>extern<\/em> declarator,<\/li>\n\n\n\n<li>header files and their role.<\/li>\n<\/ul>\n\n\n\n<p><strong>Module 7: Connecting to the Real World &#8211; Files And Streams<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>files vs. streams,<\/li>\n\n\n\n<li>header files needed for stream operations,<\/li>\n\n\n\n<li>the <em>FILE<\/em> structure,<\/li>\n\n\n\n<li>opening and closing streams, open modes, the <em>errno<\/em> variable,<\/li>\n\n\n\n<li>reading and writing to\/from a stream,<\/li>\n\n\n\n<li>predefined streams: <em>stdin,<\/em> <em>stdout<\/em>, and <em>stderr<\/em>,<\/li>\n\n\n\n<li>stream manipulation: the <em>fgetc()<\/em>, <em>fputc()<\/em>, <em>fgets()<\/em>, and <em>fputs()<\/em> functions,<\/li>\n\n\n\n<li>raw input\/output: the <em>fread()<\/em>, and <em>fwrite()<\/em> functions.<\/li>\n<\/ul>\n\n\n\n<p><strong>Module 8: Preprocessor And Complex Declarations<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>preprocessor,<\/li>\n\n\n\n<li><em>#include<\/em> &#8211; how to make use of a header file,<\/li>\n\n\n\n<li><em>#define<\/em> &#8211; simple and parameterized macros,<\/li>\n\n\n\n<li>the <em>#undef<\/em> directive,<\/li>\n\n\n\n<li>predefined preprocessor symbols,<\/li>\n\n\n\n<li>macrooperators: <em>#<\/em> and <em>##<\/em>,<\/li>\n\n\n\n<li>conditional compilation: the <em>#if<\/em> and <em>#ifdef<\/em> directives,<\/li>\n\n\n\n<li>avoiding multiple compilations of the same header files,<\/li>\n\n\n\n<li>scopes of declarations, storage classes,<\/li>\n\n\n\n<li>user-defined types,<\/li>\n\n\n\n<li>pointers to functions,<\/li>\n\n\n\n<li>analyzing and creating complex declarations.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The CLA: Programming Essentials in C course (short form: C Essentials) covers the basics of programming in the C programming language and touches on fundamental programming techniques, customs and vocabulary, &#8230;<\/p>\n","protected":false},"author":18974,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-fullwidth.php","meta":{"_themeisle_gutenberg_block_has_review":false,"footnotes":""},"class_list":["post-1694","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/cisco.inf.unideb.hu\/index.php?rest_route=\/wp\/v2\/pages\/1694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cisco.inf.unideb.hu\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cisco.inf.unideb.hu\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cisco.inf.unideb.hu\/index.php?rest_route=\/wp\/v2\/users\/18974"}],"replies":[{"embeddable":true,"href":"https:\/\/cisco.inf.unideb.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1694"}],"version-history":[{"count":1,"href":"https:\/\/cisco.inf.unideb.hu\/index.php?rest_route=\/wp\/v2\/pages\/1694\/revisions"}],"predecessor-version":[{"id":1695,"href":"https:\/\/cisco.inf.unideb.hu\/index.php?rest_route=\/wp\/v2\/pages\/1694\/revisions\/1695"}],"wp:attachment":[{"href":"https:\/\/cisco.inf.unideb.hu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}