Hydroinformatics
Staff pages

DIMITRI SOLOMATINE: TEACHING

Among other courses, Dmitri Solomatine is responsible for teaching the following ones:

INFORMATION TECHNOLOGY AND COMPUTER SCIENCE
(various versions for several courses at IHE)

Objective: To present the main components of information technology and computer science.

Syllabus:

A. Main areas and trends of using information technology (IT) in society, engineering and management.

B. Computer system organisation: processor, main memory (addressing, data encoding, operation), computer arithmetic, types of processors and computers. RISC and CISC processors, parallel processing. Generations of computers, development perspectives. Computer peripherals: storage, display, hard-copy and input devices. Choosing and configuring a personal computer.

C. System software: operating systems, assemblers, compilers, linkers, programming environments. Integrating software components.

D. Computer communications and networks: digital data transmission, error control, protocols. Local and wide area networks, topologies, main hardware and software.

E. Internet: history, main technologies, browsers, searchers. HTML, Java, ActiveX, WWW site construction. Use of Internet in engineering, management and marketing. Examples.

F. Data structures: arrays, singly- and doubly-linked lists, stacks, trees. File structures: sequential, indexed, random access files.

G. Algorithms: primitives and notations. Complexity, convergence, recursion of algorithms. Basic algorithms on lists, trees, files. Search and sort.



EXERCISE INFORMATION TECHNOLOGY AND COMPUTER SCIENCE

Objective: To obtain experience in the use of systems and applications software, in programming main algorithms of computer science, and in setting-up a Web site.

Syllabus: Use of personal computers in a network, Windows operating system, filing system, word-processing, spreadsheet operation, drawing programs, electronic mail. Building Internet Web pages. Programming of data structures, of search and sort algorithms, of a finite-difference scheme, of iterative algorithms.



SOFTWARE ENGINEERING AND OBJECT-ORIENTED PROGRAMMING

Objective: To present various approaches to engineering of software and to introduce the Pascal programming language. Introduce main notions of object orientation.

Syllabus:

Software engineering

A. Software development: requirements definition, interface specifications, operational specification.

B. Software design: notations (data-flow and structure charts), top-down design, function and object-orientated design. User interface design: Human-computer interaction. WIMP interfaces (windows, icons, menus, pointing).

C. Programming languages. Generations of languages, design and implementation; control structures, data structures, name structures, syntactic structures, object-orientated programming, interpreters and compilers, choice of language.

D. Software implementation: program quality, programming style, documentation.

E. Software validation: testing strategies and techniques, common errors, debugging.

F. Pascal programming language: main elements.

Object-oriented and component-based programming

A. Main ideas of object-oriented programming (OOP): encapsulation, inheritance and polymorphism. Virtual methods. OOP languages

B. Demonstration of the OOP ideas on practical examples using Object Pascal. Exercise in implementation of an object-oriented program.

D. Object-oriented interface development frameworks. Object-oriented visual programming environments (on the example of DELPHI). Component-based software construction (OCX components); using components on Internet.



EXERCISE SOFTWARE ENGINEERING

Objective: To obtain experience in using main approaches of software engineering. Mastering computer programming using Pascal.

Syllabus: Software design and programming: series of exercises to be programmed in Pascal including data and file structure handling, computer graphics and water-related problems. Exercise in object oriented programming.



OPTIMIZATION (Part of the course devoted to global optimization)

Objective: To give an overview of the main approaches to global optimization, and to obtain experience in using some of the methods for solving practical problems.

Syllabus: Main approaches to global optimization. Deteministic and randomized search. Covering, adaptive and controlled random search. Genetic and evolutionary algorithms. Simulated annealing. Clustering and multistart. Adaptive cluster covering.
Exercise in using global optimization tool GLOBE for model calibration problems.

DATA-DRIVEN MODELLING AND DATA MINING

See also additional references to on-line courses

 

Back to main personal page