Archive for Březen, 2010

Pokusní králíci z STM 1

Program STM, FEL ČVUT čeká doba velkých změn, která se dotkne jak nově nastupujících prváků, tak nás, jdoucích do druháku. Je to všeobecně změna k lepšímu, ale právě my budeme ti, kteří budou razit cestu dalším ročníkům.

O co se jedná? V zásadě změna kreditového systému tak, aby odpovídal ECTS (European Credit Transfer System) a s ní korelované změny ve studijních plánech oborů. V současné době jsou předměty „odměňovány“ počtem kreditů, který získáme součtem vyučovacích hodin, strávených na přednáškách a cvičeních toho kterého předmětu. Systém ECTS ještě přidává kredity za počet hodin strávených domácí prací (i když to v žádném případě není měřítko obtížnosti předmětu), a právě toto rozšíření čeká předměty STM.

letter bunny

Kreditové ohodnocení ale není jediné, co se mění. Dost drasticky se zasahuje do studijního plánu, co se týče skladby předmětů. V prvním ročníku bude místo naší „Matematiky 1″ vyučován předmět „Matematická analýza“, která v sobě bude zahrnovat i vícedimensionální kalkulus. Poněvadž vícedimensionální kalkulus je oproti základnímu kalkulu nesčetněkrát těžší záležitost, obávám se nestravitelnosti látky pro cílovou skupinu vyjukaných prváků. Nepochopím, proč výuka matematiky nemohla být rozdělena do dvou semestrů po dvojicích kalkulus-algebra (V prvním semestru základní analýza + lineární algebra, ve druhém semestru vícedimensionální analýza + matematická logika), osobně bych to uvítal. Navíc bude v prvním ročníku vyučována pravděpodobnost a statistika, což je jistě velmi užitečné.

Co se týče ostatních předmětů, bude zrušena „Tvorba elektronické dokumentace“ (stále se podivuji nad tím, jak náplň předmětů málokdy odpovídá jejich názvu) a „Web a multimédia“. Namísto těchto dvou bude přidán nový předmět podobně slabé obtížnosti.

Ve druhém ročníku povinně pro každého přibyde „Ekonomika podniku“, což je pro mě velice nepříjemná zpráva, neboť ekonomiku upřímně a z celého srdce nesnáším, nenávidím. Prostě se projevuje onen přídomek našeho programu „a management“ (na který začínám být pomalu alergický). Ve třetím semestru dále ubyde předmět (myslím) „Databázové systémy“ a bude nahrazen předmětem „Bezpečnost a kódování“. Předmět „Diskrétní matematika“ bude přeřazen do třetího semestru vedle „Datových struktur a algoritmů“ a ono kódování bude přesunuto na její místo. O těchto změnách nejsem úplně přesvědčen.

Další změna je v tělocviku a angličtině. Původně se počítalo s tím, že každý student se bude muset prokázat zkouškou z Angličtiny na úrovni 2 do konce druhého ročníku (přičemž zdarma bude pouze jeden dvousemestrální kurs). Já na tom nevidím nic špatného, ale návrh se setkal s neuvěřitelným odporem a bude zřejmě přepracován. Tělocvik se stane kreditovým a přesune se do volitelných, což hodnotím jako zápor.

Zároveň přibyde obrovské místo pro volitelné předměty a student se tak bude moci úž specialisovat. Co je podle tvůrců „revoluce“ jedna z nejdůležitějších změn, na bakalářskou práci bude vyhrazen dvojnásobek vyučovacích hodin (teoreticky), čili v posledním semestru budou pouze dva povinné předměty.

Revoluce se má udát během tohoto semestru, čili v zimě už nastoupíme do inovovaného druháku. Jsem zvědav. Dále bych ještě uvedl zajímavost, kterou mám oficiálně potvrzenou. Jedná se o

Úbytky na studijních oborech FEL za zimní semestr ak. roku 2009/2010

EEM – 58,4 %
KME – 56,5 %
KyR – 33 %
OI – 13,2 %
STM – 41 %

Z původního počtu 571 zapsaných nás zbylo 337 (obory jsou vypsány na 340).
Uvážíme-li (<-- prosím vás, špatné druhy pomlček nejsou moje chyba... nějaký démon je automaticky upravuje), že algebrou neprošlo 70 % lidí a že každý, kdo neprošel prvním semestrem zároveň neudělal algebru, získáváme zajímavé číslo, že minimálně 30 % lidí nyní přežívá na stmku s nedokončenou algebrou.

Odborný článek pro předmět Y14TED 1

V předmětu Tvorba elektronické dokumentace jsme dostali za úkol zpracovat třístránkový odborný článek o tématu, které jsme si zvolili pro předchozí presentaci.

Protože jsem v TeXu (plainu) výrazně pokročil díky publikacím pana Olšáka a detailnímu zkoumání jeho hotových maker (z nichž některá jsem si vypůjčil pro své práce – například barevné obdélníky zvýrazňující text či makro pro sazbu zdrojových kódů načítaných přímo ze zdrojových souborů (viz docby.tex)) a TeX mě velmi baví, o nástroji i tématu bylo rozhodnuto.

Protože už jsem měl jednu šablonu hotovou (dokumentace laboratorní úlohy předmětu Y14SAP), nechtělo se mi tvořit novou úplně od začátku, tak jsem onu šablonu pouze zjednodušil a upravil titulní stránku.

Nyní nevidím důvod, proč se o malou a nenáročnou práci nepodělit.

http://lair.mf4.cz/frdlimic.pdf

V Javě kočky vidí lidem do DNA a dokonce ji mohou modifikovat 0

A mohlo to být horší. Podle toho, o čem se zmínil můj přednášející v odpovědi na můj dotaz (tvůrci Javy si pohrávali s myšlenkou zrušit modifikátor private), mohly kočky na potkání lidem měnit jména nebo rozhodovat o jejich bydlišti.

Představte si následující schéma (i když není tak docela odpovídající realitě).

Ze zvířete se oddělí dvě větve – lidé a kočky, přičemž lidé v průběhu své specializace získají špatný gen. Špatný gen můžeme chápat jako něco, co bude upravovat chování člověka, čili to bude čistě jeho vnitřní záležitost. Záležitost bazálních systémů v jeho těle, o kterých by nemělo tušit ani jeho vlastní vědomí. Budeme-li chtít naprogramovat takové schéma, nabízí se využití modifikátoru protected, který byl pro to vymyšlen. Zkusme to tedy v Javě.

Následující kód je vytržený z původní struktury. Takto by v javě nebyl kompilovatelný, ale snad mi prominete.

public abstract class Animal { ; } public abstract class Human extends Animal { protected boolean bad_gene; public Human() { bad_gene = true; } } public class MaleHuman extends Human { ; } public class Cat extends Animal { private boolean memory; public Cat() { memory = false; } public void readGenesOfHuman(Human h) { memory = h.bad_gene; // will compile } }

Tento kód se i včetně šílené funkce koček readGenesOfHuman zkompiluje bez problémů, protože v Javě je toto v pořádku. Očekává se, že třídy v jednom balíčku si budou natolik blízké, že nebude problém, když si navzájem uvidí na chráněná data. V praxi by to ale znamenalo, že si pro každou třídu nebo minimální sadu odvozených tříd budete vytvářet samostatné balíčky. To se ale nedělá a protected se nepoužívá. Bez této funkcionality ale nelze výše nakreslené schéma správně naprogramovat. Buď chráněná data uvidí kočky… nebo je neuvidí ani interní funkce odvozené třídy. Dva extrémy, ani jeden žádoucí. V Javě správné řešení takového problému neexistuje, narozdíl od normálních jazyků:

ref class Animal abstract { public: Animal(void); virtual ~Animal(void); }; ref class Human abstract : Animal { public: Human(void); virtual ~Human(void); protected: bool bad_gene; }; ref class MaleHuman : Human { public: MaleHuman(void); virtual ~MaleHuman(void); }; ref class Cat : Animal { public: Cat(void); virtual ~Cat(void); void readGenesOfHuman(Human ^h); private: bool memory; }; // ... void Cat::readGenesOfHuman(Human ^h) { memory = h->bad_gene; // will not compile }

Takový kód se právem nezkompiluje. Chybový výstup bude znít přesně:

error C2248: ‘Human::bad_gene’ : cannot access protected member declared in class ‘Human’

V C++ a jazycích Microsoftu vše funguje normálně a kočky do vaší DNA nevidí.