2019 - 2020
|Extended Introduction to Computer Science
|FACULTY OF EXACT SCIENCES
This introductory course presents fundamental concepts of computer science, along with foundations of programming and programming languages. The language used is python, version 3, which will serve as the platform for presenting a variety of topics of general interest in computer science.
Sample topics: Sorting and searching; introduction to data structures; hash tables; representation of characters and strings, string matching; image representation and processing; error correcting codes; text compression; numerical computations and their stability; operations on very large numbers and their applications in number theory (primality testing) and in cryptography (generating a joint secret key); object oriented programming; recursion; concepts in functional programming, representation of infinite object; etc.
Several approaches for representing each problem and its input, and for finding a solution, will be presented. The emphasis will be on structured solutions, their correctness and their complexity, both asymptotic and actual run time.
The main goal of the course is to expose students to a variety of areas in computer science, hence it is not a "pure" programming course. However, homework assignments will include writing a significant volume of computer programs