Title:

The C Programming Language

Code:IJC
Ac.Year:2017/2018
Term:Summer
Curriculums:
ProgrammeFieldYearDuty
IT-BC-3BIT1stElective
Language of Instruction:Czech
Public info:http://www.fit.vutbr.cz/study/courses/IJC/public/
Credits:5
Completion:examination (written)
Type of
instruction:
Hour/semLecturesSem. ExercisesLab. exercisesComp. exercisesOther
Hours:3900013
 ExaminationTestsExercisesLaboratoriesOther
Points:7000030
Guarantor:Peringer Petr, Dr. Ing., DITS
Lecturer:Peringer Petr, Dr. Ing., DITS
Instructor:Hruška Martin, Ing., DITS
Janků Petr, Ing., DITS
Faculty:Faculty of Information Technology BUT
Department:Department of Intelligent Systems FIT BUT
Prerequisites: 
Introduction to Programming Systems (IZP), DIFS
Schedule:
DayLessonWeekRoomStartEndLect.Gr.St.G.EndG.
Wedexam - řádná2018-05-09D10515:0016:501BIA
Wedexam - řádná2018-05-09D10515:0016:501BIB
Wedexam - řádná2018-05-09D10515:0016:502BIA
Wedexam - řádná2018-05-09D10515:0016:502BIB
Wedexam - řádná2018-05-09D10515:0016:503BIT
Wedexam - 1. oprava2018-05-23D10516:0017:501BIA
Wedexam - 1. oprava2018-05-23D10516:0017:501BIB
Wedexam - 1. oprava2018-05-23D10516:0017:502BIA
Wedexam - 1. oprava2018-05-23D10516:0017:502BIB
Wedexam - 1. oprava2018-05-23D10516:0017:503BIT
Friexam - 2. oprava2018-06-01D10513:0014:501BIA
Friexam - 2. oprava2018-06-01D10513:0014:501BIB
Friexam - 2. oprava2018-06-01D10513:0014:502BIA
Friexam - 2. oprava2018-06-01D10513:0014:502BIB
Friexam - 2. oprava2018-06-01D10513:0014:503BIT
 
Learning objectives:
  The goal is to introduce students to ISO C programming language and programming techniques in C.
Description:
  The C programming language as defined by ISO standard. The definition of C language, pointers, modularity, C standard library. Debugging and testing of programs. Basic overview of C++, using the C++ standard library.
Learning outcomes and competences:
  Basic knowledge of C programming language, including pointers, address arithmetic, and dynamic memory allocation/deallocation. Modular programming in C.
Syllabus of lectures:
 
  1. Introduction. Overview of C language (K&R, ANSI C, ISO C90, ISO C99, ISO C11). Basic language constructs, examples of C programs.
  2. Definition of C language: lexical elements, declaration syntax, basic types, variables.
  3. Array, address space, address, pointer. Pointers and arrays, address arithmetic. Alignment, little/big endian. Dynamic memory allocation.
  4. C-strings, multi-dimensional arrays, structures, unions.
  5. Enumerations. Expressions, operators, type casting, operator precedence. Statements.
  6. Functions, argument passing. Pointers to functions. Command line arguments. The C preprocessor: macros, conditional compilation.
  7. Program structure, compilation units. Linking. Program "make".
  8. The C standard library. Debugging support, character classification, internationalization. Input/output, files.
  9. The examples of standard library use. String and memory management. Time functions. Math library, complex library.
  10. Creation of shared libraries. Linking of code written in various languages. 
  11. C++ basics, typical differences of C and C++. New operators of C++, overloading, namespaces.
  12. Input/output in C++, streams. Basic use of C++ standard library (containers, iterators, algorithms, strings). Simple examples.
  13. Profiling and program optimization. Rules for writing portable code. Program checking tools. Program documentation tools.
Syllabus - others, projects and individual work of students:
 
  • 2 assignments
Fundamental literature:
 
  • Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989
  • Stroustrup, B.: The C++ programming language, 4th edition, Addison-Wesley, 2014
  • ISO: Programming languages - C, WG14/N869 Committee Draft, 1999
  • ISO: Programming languages - C, N1570 Committee Draft, 2011
Study literature:
 
  • Herout, P.: Učebnice jazyka C, 6. vydání, Kopp, 2010
  • Kernighan, B.; Ritchie, D.: The C Programming Language, 2nd edition, Addison-Wesley, 1989
  • Teaching materials available on WWW.
Progress assessment:
  assignments
 

Your IPv4 address: 54.81.71.68
Switch to IPv6 connection

DNSSEC [dnssec]