CLA Programming Essentials in C Overview (January 24, 2017)
CLA Programming Essentials in C Overview (January 24, 2017)
ESSENTIALS IN C
OVERVIEW
DEVELOPED BY
CONTENTS
1. OVERVIEW
2. COURSE DESIGN
3. SCOPE AND SEQUENCE
4. HOW TO USE THE COURSE
5. CERTIFICATION
6. WHY LEARN PROGRAMMING
7. WHY LEARN C
8. C/C++ EXAMPLES
9. KEY TAKEAWAYS
The CLA: Programming Essentials in C curriculum is designed for students who want to learn the fundamentals of
programming through the C language.
CURRICULUM DESCRIPTION
This course covers the universal concepts of computer programming, as well as the syntax, semantics and data types of
the C language.
TARGET CERTIFICATION
The CLA: Programming Essentials in C curriculum helps students prepare for the CLA C Programming Language Certified
Associate certification exam. C Programming Language Certified Associate (CLA) is a professional certification that measures
the ability to accomplish coding tasks related to the basics of programming in the C language, as well as fundamental
programming techniques, customs and vocabulary, including the most common library functions and the usage of the
preprocessor.
Module 0: explains the process of installing and using the programming environment.
Module 1: introduces common computer programming concepts, e.g. integers and variables.
Module 2: introduces the concepts of data types and flow control.
Module 3: further discusses the concepts of flow control, introducing more data types and logic in computer
science.
Module 4: touches on the subject of aggregating data into arrays.
Module 5: explains the differences between arrays and structures.
Module 6: introduces the subject of functions.
Module 7: discusses files and streams.
Module 8: elaborates on the subject of the pre-processor and declarations.
Each student has access to hands-on practice materials, quizzes and assessments to learn how to utilize the skills and
knowledge gained on the course and interact with some real-life programming tasks and situations.
Course Content
Lab exercises
CURRICULUM OBJECTIVES
Memory management,
Functions,
Files and streams,
Structuring the code: functions and modules,
Preprocessor directives and complex declarations.
5 - Memory management and memory allocation and deallocation: malloc() and free()
structures (cont.) functions,
arrays of pointers vs. multidimensional arrays,
structures,
declaring, using and initializing structures,
pointers to structures and arrays of structures,
basics of recursive data collections.
6 Functions functions,
how to declare, define and invoke a function,
variables scope, local variables and function parameters,
pointers, arrays and structures as function parameters,
7 Files and streams (cont.) stream manipulation: fgetc(), fputc(), fgets() and fputs() functions,
raw input/output: fread() and fwrite() functions.
ACADEMIC INSTITUTIONS
Source: The 2016 Value of C++ Institute Certification Report based on a survey
conducted online from June 22 to June 24, 2016, among C/C++ certified
individuals.The survey was conducted by Fundacja IT and C++ Institute.
Source: The 2016 Value of C++ Institute Certification Report based on a survey
conducted online from June 22 to June 24, 2016, among C/C++ certified
individuals.The survey was conducted by Fundacja IT and C++ Institute.
To become a creator: a highly creative and powerful one. Go as far as your imagination lets you.
Strong programming skills are a hot commodity on the job market!
Boost your earning potential!
Programming is the language of the future.
Learning to program means learning to think in abstract and more precise ways.
It will help you do better in other areas!
It will be fun!
It is omnipresent, people use numerous C powered devices on a daily basis, whether they realize it or not.
There have been millions (well, actually billions) of lines of code written in C, which means almost unlimited
opportunities for code reuse and learning from well-crafted examples.
It is close to the machine, which actually lets you understand how computers work!
It has been the backbone of a number of other languages (e.g. C++, Java, or Python have borrowed many basic
features directly or indirectly from C).
C is the lingua franca of programming!
It is fast.
There is a large and very active C/C++ community.
It will give you a solid foundation and allow you to learn other programming languages (e.g. C++, Java, or C#)
much easier and much faster.
It will be fun!
Do you remember Doom III, StarCraft, Master of Orion III, or Warcraft III? You have probably played (or at
least heard of) Diablo I or Diablo II?
If you like computer games, then you must have heard of Electronic Arts. All of these games have to do with C/C++
programming.
The truth is that a large majority of computer games and game engines have been developed in C/C++.
Electronic Arts video game engine and (probably) all Microsoft games are no exception.
Not surprisingly, most of the operating systems are written in the C/C++ languages. These not only include
Windows and Linux (the Linux kernel is almost entirely written in C), but also Google Chrome OS, RIM Blackberry
OS 4.x, Symbian OS, Apple Mac OS X, iPAD OS, Apple iPhone iPod Touch, and Cisco IOS (which is mainly comprised of
compiled C and C++ code).
Think of Internet Browsers like Microsoft Internet Explorer, Google Chrome, Mozilla Firefox, Safari, Netscape
Navigator and Opera.Yes, they all, too, were developed in C/C++.
And what about the major websites? Google? Facebook? Twitter? YouTube? Amazon? PayPal?
Yes.They were all written, to a greater or lesser extent, in C/C++. Other examples?