The Hebrew University Logo
Syllabus PROGRAMMING WORKSHOP IN C & C++ - 67315
עברית
Print
 
close window close
PDF version
Last update 27-10-2019
HU Credits: 4

Degree/Cycle: 1st degree (Bachelor)

Responsible Department: Computer Sciences

Semester: 2nd Semester

Teaching Languages: Hebrew

Campus: E. Safra

Course/Module Coordinator: Dr. Dina Schneidman


Coordinator Office Hours:

Teaching Staff:
Dr. Dina Schneidman,
Dr. Barak Raveh

Course/Module description:
The course provides a thorough introduction to the C/C++ programming languages.

Course/Module aims:
Familiarity with the C programming language syntax, and better understanding of how programming language and hardware interact.
Understanding the basics of C++ classes and libraries, introduction to object oriented programming.

Learning outcomes - On successful completion of this module, students should be able to:
Read and write programs in C/C++ languages.
Understand memory management and pointers.
Apply generic programming in C.
Design readable, extendible and optimal programs.

Attendance requirements(%):
must attend TAs

Teaching arrangement and method of instruction: Frontal lectures, TAs, programming lab and programming assignments.

Course/Module Content:
Part 1 - C:
-----------------
The structure of a C Program
Built in data types and enumerators
Variables types (local, static, global)
Logical and arithmetic expressions
Bitwise operations
C standard library
Standard and File IO
Control-flow statements
Functions
Pointers
Static and dynamic memory understanding and management
Arrays
Structs, unions and bitfields
Strings
Error handling
The C preprocessor (macros, directives)
Program organization
Multiple files compilation and linkage (static, extern)
Make utility and building a makefile
Command-line arguments
Generic programming in C
Function pointers
Code optimization
Variadic functions

Part 2 - C++:
-----------------
Classes, fields and methods, members and static, constructors and destructors, const methods and objects
References
Functions and operators overloading
Static and dynamic memory understanding and management
Nested classes and Namespaces
Exceptions handling
Templates functions and classes
Principles of generic programming
Generic iterators
Templates specialization
Template meta-programming (TMP)
Standard template library (STL)
Inheritance
Virtual methods and polymorphism
Encapsulation, abstract classes and interfaces, multiple inheritance

Required Reading:
-

Additional Reading Material:
The C Programming Language
Book by Brian Kernighan and Dennis Ritchie
The C++ Programming Language
Book by Bjarne Stroustrup

Course/Module evaluation:
End of year written/oral examination 70 %
Presentation 0 %
Participation in Tutorials 6 %
Project work 0 %
Assignments 24 %
Reports 0 %
Research project 0 %
Quizzes 0 %
Other 0 %

Additional information:
Tests:
There will be two tests, one on C (35%) and the other on C++ (35%). The C test will be in the middle of the semester.

TAs:
This course has two hours of tirgul in small groups. The first hour is frontal and the second hour is a programming lab. Students must attend the tirgul group they are registered to.
 
Students needing academic accommodations based on a disability should contact the Center for Diagnosis and Support of Students with Learning Disabilities, or the Office for Students with Disabilities, as early as possible, to discuss and coordinate accommodations, based on relevant documentation.
For further information, please visit the site of the Dean of Students Office.
Print