Courses
- Database Systems (10127) תקציר הקורס:
- Integrative Software Engineering (10143) תקציר הקורס:
- Information Theory (10206) תקציר הקורס:
- Compilation (10334) תקציר הקורס:
- Agile Programming Methodologies (10346) תקציר הקורס:
Abstract:
Database Management Systems (DBMS) are a core technology used in almost every type of business application.
The course is designed to give students an understanding of DBMS theory and practice.
Major topics include: introduction to database management systems, the relational model,
entity-relationship modeling, SQL, database design. We will use PostgreSQL to gain hands-on experience in using a relational database.Abstract:
Developing and refactoring complex software systems
require understanding a variety of software aspects:
Multiprocessing; Utilizing Reactive Programming methodologies and techniques; Logging;
Separating components to layers and utilizing architectural patterns like MVC;
Unit-testing, Mocking and Integration-testing;
Integration to Relational and NoSQL databases;
Client/Server oriented development using Web-Services;
Utilizing software frameworks like Spring and Hibernate.
The students will implement an Integrated Software System,
provide API's to their backend business logic,
using a variety of front end applications.
The students are required to utilize knowledge gained throughout the Software Engineering Program,
including aspects of Operating Systems, Networking, Database development,
Object Oriented Design and Development and Software Architecture.
The students are expected to demonstrate self-paced learning skills
by extending their knowledge and understanding of utilizing software frameworks,
with the guidance of the course teachers.Abstract:
The course deals with mathematical models that allow quantitative approach to the concept of information.
These include quantitative metrics of information content, discrete information sources (without memory and with it), coding practices and channel capacity.Abstract:
lexical analysis, automatic generation of lexical analyzers
flex - a software tool for generating lexical analyzers
top-down parsing: predictive parsing, recursive descent parsing
bottom-up parsing: shift reduce parsing
syntax directed definitions
bison: a software tool for generating shift reduce parsers
run time environments
generating intermediate code for assignments, expressions and basic control statements
linkers and additional subjects (as time permits)
basic optimizationsAbstract:
The Agile Programming Methodologies class introduces advanced project management and development process methodologies, mainly focusing on Agile Development at the software industry.
The class will include 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.