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:
Prof Dina Schneidman, Dr. Barak Raveh, Mr. Avishai elmakies, Ms. Maysan Bader, Mr. Avinoam Hershler, Mr. Niv Bruker
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(%):
modest Magen for attending lectures and 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
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
Interface vs. implementation
Part 2 - C++:
-----------------
Classes, member variables and functions (methods), 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
Standard template library (STL)
Inheritance
Virtual methods and polymorphism
Encapsulation, abstract classes and interfaces, multiple inheritance
Smart pointers
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 70 %
Submission assignments during the semester: Exercises / Essays / Audits / Reports / Forum / Simulation / others 30 %
Additional information:
Exams:
There will be a single exam in both C and C++. A mid-term C quiz will take place in the middle of the semester (Magen - it can only improve the final grade).
A modest attendance bonus (Magen) can account for up to ~5% of the final grade (Magen
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.
|