CourseWare Wiki
Switch Term
Winter 2024 / 2025
Winter 2023 / 2024
Winter 2021 / 2022
Winter 2020 / 2021
Winter 2018 / 2019
Older
Search
Log In
b231
courses
b4m36ds2
tutorials
Warning
This page is located in archive. Go to the latest version of this
course pages
. Go the latest version of
this page
.
Table of Contents
Homework Assignments
HW0: Topic selection
HW1: Data Formats
HW2: MapReduce
HW3: Redis
HW4: Cassandra
HW5: MongoDB
HW6: Neo4j
HW7: Extra homework on MongoDB (optional)
Individual Topics
Homework Assignments
Preliminaries:
NoSQL server:
nosql.felk.cvut.cz
Login and password: sent by e-mail
Tools:
PuTTY
0.79
WinSCP
6.1.1
Submissions:
Use
sftp
or
WinSCP
to upload your submission files to the NoSQL server
Put these files into a directory
~/assignments/name
/, where
name
is a name of a given homework
I.e.
formats
,
mapreduce
,
redis
,
cassandra
,
mongodb
,
neo4j
(case sensitive)
Use
ssh
or
PuTTY
to open a remote shell connection to the NoSQL server
Based on the instructions provided for a given homework assignment, verify that everything is working as expected
Go to the
~/assignments
/ directory and execute
sudo submit_execute name
, where
name
is the name of the homework
Wait for the confirmation of success, otherwise your homework is not considered to be submitted
Should any complications appear, send your solution by e-mail to
prokoyul@fel.cvut.cz
Just for your convenience, you can check the submitted files in the
~/submissions
/ directory
Upload the report in .pdf to BRUTE.
Use the filename: username_number.pdf, where the number is the homework number.
The report must fulfil the requirements and have the following structure:
A verbal description of the task
Code (copy from the file uploaded to the server)
Screenshot of code execution on the server
If there are several problems, repeat the same for each of them
Once the homework is assessed, you will find points and comments in BRUTE
Requirements:
Respect the prescribed names of individual files to be submitted (case sensitive)
Place all the files in the root directory of your submission
Do not include shared libraries or files that are not requested
I.e. do not submit files that were not explicitly requested
Do not redirect or suppress both standard and error outputs in your shell scripts
All your files must be syntactically correct and executable without errors
HW0: Topic selection
Points:
0
Assignment:
Choose your
distinct topic
. You will use it during the semester in all your homework.
Possible topics could be: library, cinema, cookbook, university, flights, etc.
See the list at the bottom of the page for additional suitable topics, feel free to choose your own topic
Submission:
Submit the topic to BRUTE in the form of a text document
Insert your own topic or write your surname and name near one of the topics into the
DS2 topics table
Deadline:
Sunday 1. 10. 2023
until 23:59
HW1: Data Formats
Points:
10 (+2)
Assignment:
Write down the data for your future database in the form of a denormalized table (or tables).
Write this data in xml and json formats.
Check their correctness with the online tools
XML Validator
,
JSON Validator
(Optional: +2p.) Write the same data as normalized tables in a relational database, and label the relationships between them. Describe the difference between data in relational form and xml (or json) format.
Requirements:
The data must be semi-structured and hierarchical. Some information must be repeated.
The data must contain enclosed arrays, date/time, and geographical coordinates.
Submission:
Three files must be uploaded to BRUTE:
.pdf
or .docx file with report,
.xml
and
.json
files with data in xml and json formats.
.pdf file must contain the topic and data in the table(s).
Deadline:
Sunday 8. 10. 2023
until 23:59
HW2: MapReduce
Points:
20
Assignment:
Create an
input text file
with sample data from the domain of your individual topic
Insert realistic and non-trivial data about at least
10 entities of one type
Put each of these entities on a separate line, i.e. assume that
each line of the input file yields one input record
Organize the actual entity attributes in whatever way you are able to easily parse
E.g.
Medvídek 2007 53 100 Trojan Macháček Vilhelmová
corresponding to a pattern
Movie Year Rating Length Actors…
Implement a non-trivial
MapReduce job
Choose from aggregation, grouping, filtering or any other general MapReduce usage pattern
Use
WordCount.java
source file as a basis for your own implementation
Both the
Map
and
Reduce
functions should be non-trivial, each about 10 lines of code
It is not necessary to implement the
Combine
function
Comment the source file and also
provide a description of the problem
you are solving
You may also create a shell script that allows for the execution of your entire MapReduce job
I.e. compile source files, deploy input file, execute the actual job, retrieve its result, …
However, this script is not supposed to be submitted and serves just for your own convenience
Even if you do so, it will not be used for the purpose of homework assessment in any way
Requirements:
You may split your MapReduce job implementation into multiple
Java source files
They all must be located in the submission root directory
At least
MapReduce.java
source file with its public
MapReduce
class is required
This class is expected to represent the main class of the entire MapReduce job
Do not change the way how
command line arguments
are processed
I.e. the only two arguments represent the input and output HDFS locations respectively
Do not use packages in order to organize your Java source files
Assume that only
hadoop-common-3.1.1.jar
and
hadoop-mapreduce-client-core-3.1.1.jar
libraries will be linked with your project
Do not submit your Netbeans (or any other) project directory, do not submit Hadoop (or any other) libraries
Use Java Standard Edition version 7 or newer
You are free to use your
/user/f231_login
/
HDFS home directory
for debugging
Homework assessment will take place in a different dedicated HDFS directory
Submission (NoSQL server):
readme.txt
: description of the input data structure and objective of the MapReduce job
input.txt
: text file with your sample input data (i.e. only one input file is permitted)
MapReduce.java
and possibly additional
*.java
: Java source files with your MapReduce implementation
output.txt
: expected output of your MapReduce job
Upload to BRUTE: readme.txt and screenshot (or screenshots) of the execution of your homework on the NoSQL server.
Tools:
Apache Hadoop
3.1.1 (installed on the NoSQL server)
References:
HDFS:
Hadoop File System Shell commands
MapReduce:
MapReduce Tutorial
MapReduce:
MapReduce Commands Guide
Hadoop:
Hadoop JavaDoc API Documentation
Server:
nosql.felk.cvut.cz
Do not forget to execute the homework submission script and make a screenshot!
Deadline:
Sunday 22. 10. 2023
until 23:59
HW3: Redis
Points:
15+10+5
Assignment:
Mandatory part (15 p.). Create a script
(ordinary text file)
with a sequence of commands working with Redis
Illustrate you can work with all data types (strings, lists, sets, sorted sets and hashes)
In particular, perform all the following operations:
Strings
: 5 insertions (SET), 1 read (GET), 1 update (APPEND, SETRANGE, INCR, …), 1 removal (DEL).
Lists
: 5 insertions (LPUSH, RPUSH, …), 2 different reads (LPOP, RPOP, LINDEX, LRANGE), 1 removal (LREM).
Sets
: 5 insertions (SADD), 2 different reads (SISMEMBER, SUNION, SINTER, SDIFF), 1 removal (SREM).
Sorted sets
: 5 insertions (ZADD), 1 read (ZRANGE, ZRANGEBYSCORE), 1 update (ZINCRBY), 1 removal (ZREM).
Hashes
: 5 insertions (HSET, HMSET), 2 different reads (HGET, HMGET, HKEYS, HVALS, …), 1 removal (HDEL).
Geographic coordinates
: 5 insertions, 1 GEOSEARCH, 1 GEODIST.
Your database (i.e. keys and values) as well as commands must be
realistic
and within your
individual topic
E.g. use a hash to store a mapping from seats to passengers for each flight
HMSET seat-map-EK140-20171121 42A Peter 65F John
Key
seat-map-EK140-20171121
is composed from a fixed prefix (
seat-map
), flight number (
EK140
) and date of departure (
20171121
)
The actual mapping contains pairs of seat numbers and passenger names, e.g.
42A Peter
Add comments
to your script using the
ECHO
command
Describe at least the intended structure of your keys and values in natural language
Extended part (10 p.).
Create tables in the PostgreSQL database and fill them with data. Implement the use of Redis for cache.
It is supposed to create a cache for reading queries. It is necessary to write some non-trivial SQL queries (with some conditions) and use them to demonstrate the work of the cache. It is not necessary to create too complex queries.
Your PostgreSQL database name is db_username (for example, db_f231_student). Use the same password you received for your account at the beginning of the semester. Details about the remote connection are sent to you by email.
Optional part (+5 points).
Create an application with a graphical user interface for the extended task.
Requirements:
Only use the
database
you are supposed to use when working on the assignment
Your database number was sent to you by email.
Submission:
script.txt
: text file with Redis database commands,
script_pg.py
with Python script for Extended task.
Submit to BRUTE script.txt, script_pg.py and document with SQL queries (creation of the table/tables and insertion of data) and a screenshot of execution on the NoSQL server
Execution:
Execute the following shell command to evaluate the whole REDIS script
cat
$ScriptFile
| redis-cli -n
$DatabaseNumber
$ScriptFile
is a file with REDIS commands to be executed, i.e.
script.txt
$DatabaseNumber
is a number of database to be used, e.g.
5
Tools:
Redis
3.2.4 (installed on the NoSQL server)
References:
Redis Commands
Redis Documentation
Redis Data Types
Server:
nosql.felk.cvut.cz
Do not forget to execute the homework submission script!
Deadline:
Sunday 5. 11. 2023
until 23:59. Deadline for the optional part: Sunday 17. 12. 2023 until 23:59.
HW4: Cassandra
Points:
20
Assignment:
Create a script
(ordinary text file)
with a sequence of CQL statements working with Cassandra database
Define a schema for 2 tables
for entities of different types
Define at least one column for each of the following data types:
tuple
,
list
,
set
and
map
Insert about 5 rows
into each of your tables
Express at least
3 update statements
You must perform replace, add and remove primitive operations (all of them) on columns of all collection types (all of them)
I.e. you must involve at least altogether 9 different primitive operations on such columns
Express
3 select statements
Use
WHERE
and
ORDER BY
clauses at least once (both of them)
Use
ALLOW FILTERING
in a query that cannot be evaluated without this instruction
Create at least
1 secondary index
Requirements:
Only
use your own keyspace
when working on the assignment
Name of this keyspace must be identical to your login name (
f231_login
)
Do not create this keyspace in your script (assume it already exists)
Do not switch to your keyspace
when you are inside your script
I.e. do not execute a
USE
command to change the active keyspace from within the script
Specify the intended keyspace outside your script using command line options (see below)
Note that a different dedicated keyspace will be used when assessing your homework
You can assume that this keyspace will be completely empty at the beginning
Comments:
The following error messages can be ignored:
Error from server: code=1300 [Replica(s) failed to execute read]…
Submission:
script.cql
: text file with CQL statements
Execution:
Execute the following shell command to evaluate the whole CQL script
cqlsh -k
$KeyspaceName -f
$ScriptFile
$KeyspaceName
is a name of keyspace that should be used (must already exist), e.g.
f231_login
$ScriptFile
is a file with CQL queries to be executed, i.e.
script.cql
Tools:
Apache Cassandra
3.11.1 (installed on the NoSQL server)
References:
The Cassandra Query Language (CQL)
Server:
nosql.felk.cvut.cz
Do not forget to execute the homework submission script!
Deadline:
Sunday 19. 11. 2023
until 23:59
HW5: MongoDB
Points:
20
Assignment:
Create a JavaScript script with a sequence of commands working with MongoDB database
Explicitly
create 2 collections
for entities of different types
I.e., create them using
createCollection
method
Insert about 5 documents
into each one of them
These documents must be realistic, non-trivial, and with both
embedded objects and arrays
Interlink the documents using
references
Use
insertOne
and/or
insertMany
operation
Express
3 update operations
(do not use
save
operation for this purpose)
One without update operators
One with at least 2 different update operators
One based on the
upsert
mode
Express
5 find queries
(with non-trivial selections)
Use at least one logical operator (
$and
,
$or
,
$not
)
Use
$elemMatch
operator on array fields at least once
Use both positive and negative projections (each at least once)
Use
sort
modifier
Describe the real-world meaning
of all your queries in comments
Express
1 MapReduce query
(non-trivial, i.e. not easily expressed using ordinary
find
operation)
Describe its meaning, contents of intermediate key-value pairs and the final output
Note that
reduce
function must be associative, commutative, and idempotent
Instead of MapReduce, you can write an appropriate aggregation.
Express
5 aggregate operations
. Use
2 created collections
for entities of different types. If necessary,
insert more documents
into each one of them
Use at least once each of
$match
,
$group
,
$sort
,
$project
(or
$addFields
),
$skip
and
$limit
stages
Use at least once each of
$sum
(or
$avg
),
$count
,
$min
(or
$max
),
$first
(or
$last
) aggregators
Describe the real-world meaning
of all your queries in comments
Requirements:
Call
export LC_ALL=C
in case you have difficulties in launching the
mongo
shell
Only
use your own database
when working on the assignment
Name of this database must be identical to your login name (
f231_login
)
Do not switch to your database
when you are inside your script
I.e. do not execute
USE database
and nor
db.getSiblingDB('database')
commands
Specify the intended database outside your script using command line options (see below)
Note that a different dedicated database will be used when assessing your homework
You can assume that this database will be empty at the beginning
Print the
output of your queries
(
find
operations)
Use
db.collection.find().forEach(printjson);
approach for this purpose
Print the
output of your MapReduce job
using
out: { inline: 1 }
option
I.e. do not redirect the output into a standalone collection
Submission:
script.js
: JavaScript script with MongoDB database commands
Execution: mongosh –port 42222 -u login -p password database script.js
Execute the following shell command to evaluate the whole MongoDB script
mongosh –port 42222 -u
$login
-p
$password
$database
$file
$login
is your username, e.g.
f231_login
$database
- database to connect to (same as login)
$password
is your password (Use the same password you received for your account at the beginning of the semester)
$file
is a file with MongoDB queries to be executed, i.e.
script.js
Double dashes before port
Tools:
MongoDB
6.0.1 (installed on the NoSQL server)
References:
https://docs.mongodb.com
Server:
nosql.felk.cvut.cz
Do not forget to execute the homework submission script!
Deadline:
Sunday 10. 12. 2023
until 23:59
HW6: Neo4j
Points:
20
Assignment:
Insert realistic
nodes and relationships
into your embedded Neo4j database
Use a single
CREATE
statement for this purpose
Insert altogether at least
10 nodes
for entities of at least 2 different types (i.e. different labels)
Insert altogether at least
15 relationships
of at least 2 different types
Include properties (both for nodes and relationships)
Associate all your nodes with user-defined identifiers
Express
5 Cypher read query expressions
Use at least once
MATCH
,
OPTIONAL MATCH
,
RETURN
,
WITH
,
WHERE
, and
ORDER BY
(sub)clauses (all of them)
Aggregation in at least one query
Express
5 Cypher write or read/write query expressions
Use at least once
CREATE
(with MATCH),
DELETE
,
SET
,
REMOVE
,
DETACH
(sub)clauses (all of them)
Requirements:
Describe the meaning of your Cypher expressions
in natural language (via
// comment
)
Submission: BRUTE and NoSQL server
queries.cypher
: text file with a sequence of Cypher statements (including
CREATE
) and
screenshots of execution
Execution:
Execute the following shell command to evaluate the whole Neo4j script
cypher-shell -f
$ScriptFile
$ScriptFile
is a file with Cypher queries to be executed, i.e.
queries.cypher
Tools:
Neo4j
3.0.7 (installed on the NoSQL server)
References:
Cypher query language
Cypher Reference Card
Deadline:
Sunday 31. 12. 2023
until 23:59
HW7: Extra homework on MongoDB (optional)
Points:
10
Assignment:
Create User Interface which allows to
Insert new document
Find a document/documents under some condition
Update the document
Remove the document
Work with your database on our NoSQL server.
Further instructions
see in Google document
Deadline:
Sunday 7. 1. 2024
until 23:59
Individual Topics
Please, fill in your name and surname near one of the topics in the
DS2 topics table
or add your own topic at the bottom of the
DS2 topics table
.
Try to propose your own original topic in the first place
You can also get inspired by the following topics (in alphabetical order, in English and in Czech)
Access system, Accommodation booking, Accommodation comparator, Accommodation sharing, Agricultural production, Air rescue service, Air traffic management, Airline, Airport, Armory, Army, Artworks, Assignment submission, ATM network, Attendance system, Auction, Bakery, Bank, Bank account, Bazaar, Beekeeper, Betting shop, Beverages store, Bike sharing, Black market, Blog, Boat rental, Bookstore, Botanic garden, Brewery, Building materials store, Bus station, Bus tickets, Business register, Cadastre, Cafe, Canteens, Car rental, Car repair shop, Car showroom, Casino, Castles, Catering, Caves, Cemetery, Cinema, City tours, Classbook, Collection and disposal of waste, Collection of laws, College dorm, Computer games, Conference, Construction management, Content management system, Contract register, Convenience store, Cookbook, Cooking classes, Council meetings, Countries of the world, Courier service, Cowshed, Dance school, Deliveries, Desk games, Discussion forum, Doctor's office, Dog park, Dog shelter, Driving school, Drugs, Dump, Educational institution, Elections, Electronic prescriptions, Employee records, Empty houses, Entertainment center, Environmental center, Exhibition, Exhibition grounds, Experience donation, Fairy tales, Farmer markets, Finance manager, Financial advisory, Financial markets, Fire protection, Fishing equipment, Fitness center, Flat owners association, Fleet, Flight ticket booking, Food bank, Food distribution, Football league, Football team, Forest kindergarten, Forwarding company, Foster care, Gallery, Garden center, Gardening colony, Gas station, Glassworks, Golf clubs, Grant agency, Grid, Hair salon, Handyman, Hardware, Health insurance, High school, Highway fees, Hiking trails, Hobby market, Hockey league, Holiday offers, Horse racing, Hospital, Hotel, Housing association, Chamber of deputies, Chess club, Chess competition, Chess database, Incinerator, Industrial zone, Insurance company, Intelligence service, Intersport arena, Job offers, Jurassic park, Kindergarten, Laboratory, Labour office, Language school, Lego, Leisure activities, Library, Log book, Logistics center, Logistics company, Logistics warehouse, Lottery, Luggage storage, Manufacturing processes, Maternity hospital, Medical reimbursement, Meeting scheduling, Menu, Metro operation, Military area, Mobile operator, Mobile phones, Model trains, Morgue, Mountain rescue service, Movies, Multinational company, Multiplex network, Museum, Music festival, Music production, Musical instruments, National parks, Nature reserve, Newspaper publishing, Non-bank loans, Nuclear power plant, Nutritional values, Online exercises, Online streaming service, Orienteering, Outdoor swimming pool, Parking lot, Parts catalog, Patient medical card, Pawnshop, Payment cards, Personal documents, Personal trainer, Pharmacy, Photo album, Pizzeria, Plagiarism detection, Planning calendar, Police database, Political parties, Popular music, Population register, Post, Postal addresses, Poultry farming, Prestashop, Prison, Procurement, Project management, Property administration, Psychiatric hospital, Public greenery, Public transport, Railway network, Real estate agency, Recruitment agency, Refugee camp, Registration of sales, Regulatory fees, Research projects, Research publications, Restaurant, Restaurant reservations, Road closures, Room reservation, Scout group, Scrapyard, Security agency, Seizures, Shared travel, Shooting range, Shopping center, Ski school, Skiing area, Sobering-up cell, Social benefits, Social network, Software development, Spare parts, Sports club, Sports tournament, Stable, Statement of work, Stock exchange, Student book, Study abroad, Study materials, Study system, Subsidy programs, Summer camp, Supermarket, Sweet-shop, Swimming pool, Symphony orchestra, Tax office, Taxi service, Teahouse, Theater, Theater plays, Time tables, Tollgates, Tourism, Tourist group, Traffic accidents, Traffic control center, Train station, Transport company, Transport control, Travel agency, Trial, Truck transport, TV program, TV series, Universe, Vaccination abroad, Veterinary clinic, Video shop, Virtual tours, Visas, War conflicts, Water park, Water supply, Weapons, Weather forecast, Webhosting, Webshop, Wedding dress rental, Wholesale, Winter road cleaning, World heritage list, Zoning plan, Zoo
Adresní místa, Aquapark, Armáda, Aukce, Autobusové nádraží, Autosalon, Autoškola, Banka, Bankovní účet, Bazar, Bezpečnostní agentura, Blog, Botanická zahrada, Burza, Bytové družstvo, Catering, Cestovní kancelář, Cukrárna, Cvičiště pro psy, Čajovna, Černý trh, Čerpací stanice, Dálniční poplatky, Darování zážitků, Deskové hry, Detekce plagiátů, Diskuzní fórum, Divadelní hry, Divadlo, Dodávka vody, Docházkový systém, Dopravní dispečink, Dopravní nehody, Dopravní podnik, Dopravní uzavírky, Doručování zásilek, Dotační programy, Ekologické centrum, Elektronická evidence tržeb, Elektronické recepty, Evidence smluv, Evidence součástek, Evidence zaměstnanců, Exekuce, Farmářské trhy, Filmy, Finanční poradenství, Finanční trhy, Finanční úřad, Fitness centrum, Fotbalová liga, Fotbalový tým, Fotoalbum, Galerie, Golfové kluby, Grantová agentura, Hardware, Hobby market, Hodinový manžel, Hokejová liga, Horská služba, Hotel, Hrady a zámky, Hřbitov, Hudební festival, Hudební nástroje, Hudební produkce, Jaderná elektrárna, Jazyková škola, Jazykové pobyty, Jednání zastupitelstva, Jeskyně, Jídelníček, Jízdenky na autobus, Jízdní řády, Jurský park, Kadeřnický salon, Kamionová doprava, Kasino, Katastr nemovitostí, Kavárna, Kino, Kniha jízd, Knihkupectví, Knihovna, Konference, Koňské dostihy, Koupaliště, Kravín, Kuchařka, Kurýrní služba, Kurzy vaření, Laboratoř, Lékárna, Lékařská karta pacienta, Léky, Lesní školka, Letecká společnost, Letecká záchranná služba, Letiště, Letní tábor, Logistická firma, Logistické centrum, Logistický sklad, Loterie, Lyžařská škola, Lyžařský areál, Márnice, Mateřská škola, Menzy, Městská hromadná doprava, Městské exkurze, Mobilní operátor, Mobilní telefony, Modely vláčků, Multifunkční aréna, Muniční sklad, Muzeum, Mýtné brány, Nabídky dovolené, Nabídky práce, Nadnárodní společnost, Náhradní díly, Národní park, Nebankovní půjčky, Nemocnice, Nutriční hodnoty, Obchodní centrum, Obchodní rejstřík, Očkování do ciziny, Odevzdávání úkolů, Online cvičení, Online půjčovna seriálů, Ordinace lékaře, Orientační běh, Osobní doklady, Osobní trenér, Parkoviště, Pekárna, Personální agentura, Pěstounská péče, Pivovar, Pizzerie, Plánovací kalendář, Plánování schůzek, Platební karty, Plavecký bazén, Pneuservis, Počítačové hry, Pohádky, Pojišťovna, Policejní databáze, Politické strany, Populární hudba, Porodnice, Poslanecká sněmovna, Pošta, Potravinová banka, Požární ochrana, Pracovní úřad, Prázdné domy, Prestashop, Provoz metra, Průmyslová zóna, Předpověď počasí, Přepravní kontrola, Přírodní rezervace, Přístupový systém, Psí útulek, Psychiatrická léčebna, Půjčovna auta, Půjčovna lodí, Půjčovna svatebních šatů, Realitní agentura, Redakční systém, Registr obyvatel, Regulační poplatky, Restaurace, Rezervace letenek, Rezervace místností, Rezervace ubytování, Rezervace v restauraci, Rozvodná síť, Rozvoz jídla, Rybářské potřeby, Řízení leteckého provozu, Řízení projektů, Sázková kancelář, Sbírka zákonů, Sdílená kola, Sdílené cestování, Síť bankomatů, Síť multikin, Skautské středisko, Sklad nápojů, Skládka, Sklárna, Sociální dávky, Sociální síť, Soudní řízení, Spalovna, Spediční firma, Společenství vlastníků jednotek, Sportovní klub, Sportovní turnaj, Správa objektů, Správce financí, Srovnávač ubytování, Stáj, Státy světa, Stavební řízení, Stavebnice lego, Stavebniny, Střední škola, Střelnice, Studijní materiály, Studijní systém, Supermarket, Světové dědictví, Svoz a likvidace odpadů, Symfonický orchestr, Šachová databáze, Šachová soutěž, Šachový klub, Taneční škola, Taxi služba, Televizní program, Televizní seriály, Třídní kniha, Turistické cesty, Turistický oddíl, Turistický ruch, Ubytování v soukromí, Uprchlický tábor, Úschovna zavazadel, Územní plán, Válečné konflikty, Včelař, Večerka, Vědecké projekty, Vědecké publikace, Velkochov drůbeže, Velkoobchod, Veřejná zeleň, Veřejné zakázky, Vesmír, Veterinární klinika, Vězení, Videopůjčovna, Virtuální prohlídky, Víza, Vlakové nádraží, Vojenský prostor, Volby, Volnočasové aktivity, Vozový park, Vrakoviště, Vydavatelství novin, Výkaz práce, Výrobní procesy, Vysokoškolská kolej, Výstava, Výstaviště, Výtvarná díla, Vývoj softwaru, Vzdělávací instituce, Webhosting, Webový obchod, Zábavní centrum, Zahrádkářská kolonie, Zahradnictví, Záchytka, Zastavárna, Zbraně, Zdravotní pojišťovna, Zdravotní úhrady, Zemědělská výroba, Zimní úklid komunikací, Zoologická zahrada, Zpravodajská služba, Žákovská knížka, Železniční síť
Nevertheless, the following topics are
not allowed
this semester
Movies, actors
courses/b4m36ds2/tutorials/start.txt
· Last modified: 2024/01/04 19:33 by
prokoyul