Lecturer Mr. Genuth Itzhak
Courses
- מבוא להנדסת תוכנה (10014) תקציר הקורס:
- אלגוריתם מתקדם וסיבוכיות (10121) תקציר הקורס:
- הבטחת איכות תוכנה (10241) תקציר הקורס:
- מתודולוגיות תכנות Agile (10346) תקציר הקורס:
Abstract:
The first digital computer was built for the US Army in 1946.
High-level programming languages appeared in the 1950s.
Within a quarter century, we already faced what is known as the “software crisis”.
The crisis did not occur because software was not f?unctioning properly but rather because of problems related to the software development process, and the growing demand for complex software systems. The software crisis manifests itself in many problems: lack of well defined requirements; frequently changing requirements; poorly estimated costs and budgets; programmer productivity that cannot keep up with demand; and software of insufficient quality.
Software Engineering was developed in order to solve the problems that characterize the software crisis, and it encompasses the entire software development life cycle.Abstract:
This course provides an introduction to advanced topics in the design and analysis of algorithms. It covers fundamental techniques and algorithms for network flows and matchings, string matching using the Knuth-Morris-Pratt (KMP) algorithm, online algorithms, and approximation algorithms.
The course also introduces core concepts in computational complexity theory, including the complexity classes P, NP, coNP, and PSPACE, polynomial-time reductions, Cook’s theorem, and the theory of NP-completeness.Abstract:
The course will present principles and methods for software quality assurance and how it improves both the process of software development and the quality of the software product.
During the course, we will review the activities done to improve the quality of the software by planning, designing, monitoring, controlling, and improving the processes of software development and maintenance,
Presentation of industry standards, practices, and tools supporting these activities.Abstract:
The Agile Programming Methodologies class introduces advanced project management and development process methodologies, mainly focusing on Agile Development in the software industry.
The class will include (if and whenever possible) several guest lectures from prominent high-tech experts who will demonstrate the practical usage of the class methodologies in the high-tech industry, the pros and cons of agile development processes, and how it is put into practice at high-tech firms.