Course Unit Code | 460-2015/01 |
---|
Number of ECTS Credits Allocated | 4 ECTS credits |
---|
Type of Course Unit * | Optional |
---|
Level of Course Unit * | First Cycle |
---|
Year of Study * | Second Year |
---|
Semester when the Course Unit is delivered | Winter Semester |
---|
Mode of Delivery | Face-to-face |
---|
Language of Instruction | Czech |
---|
Prerequisites and Co-Requisites | Course succeeds to compulsory courses of previous semester |
---|
Name of Lecturer(s) | Personal ID | Name |
---|
| HOL570 | Ing. Michael Holuša, Ph.D. |
Summary |
---|
In this course, the students get familiar with the aspects of modern scripting languages that are presented mainly by Python. The main emphasis is aimed at showing the rich set of usage of the language to solve frequent practical tasks. The way the problems are solved is compared with the solutions made in classic system languages like Java, C#, or C++. By this comparison, the advantage of scripting languages is shown. In this course, the main emphasis is stressed to pass information that is important for the students to construction practically useful and, for the end user, attractive applications. Moreover, these applications are relatively easy to implement while using scripting languages.
|
Learning Outcomes of the Course Unit |
---|
The main aim of the course is to familiarize students with features of scripting languages and their applications. Emphasis is put at practically significant applications. |
Course Contents |
---|
Lectures
1. Scripting languages. Motivation to their use. Main aspects of some popular scripting languages- Ruby, JavaScript, Perl, Python, Tcl. Perspectives of scripting languages.
2. Python programming language, history and properties.
3. Python language constructions: flow control, function definition, argument passing, function calling.
4. Python language constructions: collections, iterators, generators, closures, reflection. Examples of using these techniques and comparison to other technologies (Java or C#).
5. Python and object oriented programming: definition of classes, methods, and variables.
6. Using design patterns for effective implementation of object oriented code.
7. Python standard library. Examples of use.
8. Using Python for web development. Using embedded web server. Python web frameworks.
9. Implementation of "server-side" web application. Implementation of "client-side" application. Creating forms. Communication with a client by JavaScript.
10. Web services, data exchange using XML and JSON. Implementation of web services using REST method.
11. Connection Python programs to a database and a spatial database. Creating geographic web applications.
12. GUI construction using Python.
13. Game and multimedia applications programming using Python.
14. Parallel programming in Python.
Exercises
1. Getting in touch with development environment. Example of the interactive mode. Creating scripts.
2. Python language constructions: flow control, using list and dictionary type.
3. Function definitions, argument passing, function calls, lambda function notation.
4. Working with collections, iterators, generators, closures, and reflection. Examples of their usage and comparison to other languages.
5. Example of object oriented programming: definition of classes, methods, and variables.
6. Advanced techniques of object oriented programming, design patterns and their usage.
7. Introduction to the Python standard library. Working with embedded web server, remote procedure call, XML library ElementTree.
8. Programming web applications. Realisation of object oriented model of a URI. Creating forms. Communication with a client by JavaScript.
9. Advanced web programming. Data exchange with a client using XML and JSON.
10. Web service implementation using the REST architecture.
11. Using database connection. Spatial data handling.
12. GUI construction using Python.
13. Programming with threads and processes.
14. Final test. |
Recommended or Required Reading |
---|
Required Reading: |
---|
M. Lutz, Learning Python, Oreilly, ISBN: 978-0-596-15806-4
M. Lutz, Programming Python, 2nd Edition, Oreilly & Associates Inc, 2001, ISBN-13: 9780596000851 / ISBN-10: 0596000855
On-Line Python documentation: docs.python.org
|
D. Harms, K. McDonald, Začínáme programovat v jazyce Python, CPress, ISBN: 80-722-6799-X
M. Lutz, D. Ascher, Naučte se Python, Grada, ISBN: 80-247-0367-X
M. Lutz, Programming Python, 2nd Edition, Oreilly & Associates Inc, 2001, ISBN-13: 9780596000851 / ISBN-10: 0596000855
On-Line dokumentace k jazyku Python: docs.python.org
|
Recommended Reading: |
---|
S. Hellegouarch, CherryPy Essentials: Rapid Python Web Application Development, Packt Publishing Limited, ISBN: 1904811841 |
S. Hellegouarch, CherryPy Essentials: Rapid Python Web Application Development, Packt Publishing Limited, ISBN: 1904811841 |
Planned learning activities and teaching methods |
---|
Lectures, Tutorials, Project work |
Assesment methods and criteria |
---|
Task Title | Task Type | Maximum Number of Points (Act. for Subtasks) | Minimum Number of Points for Task Passing |
---|
Graded exercises evaluation | Graded credit | 100 (100) | 51 |
Final Test | Written test | 40 | 15 |
Exercises Handover | Project | 30 | 10 |
Handout of tasks given at exercises | Laboratory work | 30 | 6 |