The Hebrew University Logo
Syllabus Programming Workshop in C & C++ - 67312
עברית
Print
 
PDF version
Last update 20-12-2023
HU Credits: 4

Degree/Cycle: 1st degree (Bachelor)

Responsible Department: Computer Sciences

Semester: 1st Semester

Teaching Languages: Hebrew

Campus: E. Safra

Course/Module Coordinator: Oded wertheimer

Coordinator Email: oded.wertheimer@mail.huji.ac.il

Coordinator Office Hours: By appointment

Teaching Staff:
Mr. Oded Wertheimer,
Ms. Yael Perez,
Mr. Avishai elmakies

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

Course/Module aims:
Familiarity with the C programming language syntax, and better understanding of how programming language and hardware interact.
Understanding the special characteristics, benefits and faults of using C++ programming language.


Learning outcomes - On successful completion of this module, students should be able to:
Read and write programs in C/C++ language.
Use pointers safely and correctly.
Understand memory management.
Apply generic programming.

Attendance requirements(%):
0

Teaching arrangement and method of instruction: Lectures, recorded lectures, TAs, labs and programming assignments.

Course/Module Content:
C part:
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

C++ part:
References
Functions overloading
Classes, fields and methods, members and static, constructors and destructors
Static and dynamic memory understanding and management
Const methods and objects
Nested classes
Namespaces
Inheritance
Virtual methods and polymorphism
Encapsulation, abstract classes and interfaces, multiple inheritance
Operators overloading
Copying and casting
Exceptions handling
Templates functions and classes
Principles of generic programming
Generic iterators
Templates specialization
Standard template library (STL)
Smart pointers
The new use of "auto" keyword
Lambda functions and Functors

Required Reading:
-

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

The C++ Programming Language
Book by Bjarne Stroustrup

Grading Scheme :
Written / Oral / Practical Exam 64 %
Submission assignments during the semester: Exercises / Essays / Audits / Reports / Forum / Simulation / others 36 %

Additional information:
A programming task will be administered after learning C and will constitute up to 10% magen to the final exam grade.
 
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