Prijavi se na najbolj priljubljen tečaj: WEB DEVELOPMENT 1.
Poglej več

SmartNinja izziv maj/junij 2020 – kdo je zmagal?

V SmartNinja izzivu za meseca maj in junij so tečajniki morali narediti program oz. aplikacijo za uporabo Cezarjeve šifre.

Cezarjeva šifra? Kaj je to?

Cezarjeva šifra je zelo preprost način enkripcije podatkov, ki se imenuje po Juliju Cezarju. In zelo verjetno si ta način šifriranja nekoč že uporabil/a.

Priljubljen je bil namreč med osnovnošolci (vsaj v času pred mobilniki), ko so si med poukom pošiljali skrivna sporočila preko listkov.

Kako deluje Cezarjeva šifra?

Recimo, da želimo zašifrirati sporočilo “Dober dan”. Enkripcijo bomo naredili tako, da bomo premaknili vse črke v tem sporočilu za določeno število mest v abecedi, npr. za 4 mesta.

Črka “d” bo tako postala “h”. Črka “o” bo postala “š”. “B” bo postal “e”. In tako naprej.

Iz sporočila “Dober dan” tako dobimo zašifrirano poved “Hšeiu hds”. Vse črke v sporočilu so bile premaknjene za 4 mesta (glede na slovensko abecedo, seveda).

Ko pošljemo šifrirano sporočilo prejemniku, mora ta vedeti, za koliko mest smo premaknili črke, zato se moramo s prejemnikom že prej dogovoriti za to številko (temu lahko rečemo tudi skrivni ključ).

Primer, ko premaknemo abecedo za 3 mesta

(Na zgornji sliki so črke angleške abecede zamaknjene za 3 mesta)

Kaj je bila naloga v izzivu?

Naloga je bila pripraviti računalniški program, ki bi nam pomagal šifrirati sporočila, zato da tega ne rabimo početi ročno.

Tečajniki so lahko naredili bodisi namizni program, bodisi spletno aplikacijo.

Zahteve so bile, da ima program grafični vmesnik, da uporablja programski jezik Python ter da algoritem za šifriranje napiše tečajnik/tečajnica sam/a (ne pa da bi uporabil/a kako že narejeno implementacijo Cezarjeve šifre v obliki programskega paketka).

Kdo je zmagal?

Tudi tokrat sta zmagovalca dva: Jaka Fefer ter Beno Zupanc.

Beno

Beno se je udeležil tečaja Programiranje za začetnike, kjer se je naučil programskega jezika Python in izdelave namiznih programov. Zato je za ta izziv naredil namizni program, ki za grafični vmesnik uporablja Tkinter (to je standardna Python knjižnica).

Smartninja_sola_programiranja_tecaji_benigma 1593686139

Številko zamika črk se določi z drsnikom, hkrati pa se ob tem premika tudi rdeča vrstica abecede in tako poda lep pregled konverzije vseh črk v abecedi.

S klikom na “Benigma” (oz. z odkljukanjem te opcije), se zadeva obrne, in neko šifrirano sporočilo lahko odšifriramo.

Koda Benotove rešitve je dostopna na njegovem GitHubu: povezava.

Jaka

Jaka se je udeležil naših tečajev Web development 1 in Web development 2, zato je za izziv namesto namizne aplikacije naredil spletno aplikacijo.

Spletna aplikacija uporablja priljubljeno Python ogrodje Flask, za komunikacijo med frontendom ter backendom pa skrbi JavaScript.

S pomočjo HTML in CSS kode je oblikoval lep uporabniški vmesnik, ki se zna prilagoditi tudi mobilnim zaslonom.

Smartninja_sola_programiranja_tecaji_fefer caesar 1593687006

Koda Jakove rešitve je dostopna na njegovem GitHubu. Sama spletna aplikacija pa teče na Heroku strežniku: https://ccipher.herokuapp.com/.

Čestitke!

Čestitke obema zmagovalcema! 🎉 Že v kratkem pa bo na našem GitHubu objavljen nov izziv za julij in avgust. 🤓

Nadaljuj z branjem

  • Zaposlitve v programiranju: september 2023

    Mesec september prinaša nove zaposlitve v programiranju. Na voljo je kar nekaj različnih nivojev in vrst zaposlitve, tako da vabljeni k branju in seveda prijavi na delovno mesto. Kaj pa…
  • Tečaji “Smartninja šola programiranja” explained

    Zaradi aktivnega sodelovanja naših inštruktorjev in velikega interesa tečajnikov Smartninja šola programiranja nenehno dodeluje in dodaja nove tečaje programiranja. Vrata priložnosti za izboljšanje digitalnih veščin so pri nas vedno odprta!…
  • Zaposlitve v programiranju: avgust 2023

    Nov mesec, nove zaposlitve! V avgustu se že kar nekaj podjetij zbuja iz poletnega dopustovskega spanca (😉) in na voljo so nove zaposlitve v programiranju! Kam se prijaviš? Monolit Monolit…
  • Učenje programiranja: doma ali na univerzi?

    V zadnjih letih se je programiranje in spletno razvijanje uveljavilo kot ena najbolj zaželenih veščin na trgu dela. Z naraščajočim povpraševanjem po programerjih se postavlja vprašanje, ali je bolje programiranje…