Zona informaticienilor
tehnologiA informațiilor și comunicațiilor
#lumeavirtuala #informatii #comunicatii #it #software #hardware #serviciicomputerizate
DOMENII CREATIVE: publicitate & marketing, arhitectură, meșteșuguri, design de produs & grafic și de modă, modă, film, TV & video, radio și fotografie, IT & software și servicii computerizate, activități editoriale, muzee, galerii & biblioteci, muzica, artele spectacolului, arte vizuale.
Sursa definiției și clasificării industriilor creative: Wikipedia (conform DCMS, 2015)
NU-ȚI TRĂI VIAȚA ÎN MOD VIRTUAL! Maxim 8 ore pe zi ar trebui să petreci pe internet!
Software
PROGRAMAREA = crearea unui produs-program:
- descrierea algoritmilor
&
- codificarea algoritmilor într-un limbaj de programare
Problemă?
1. Definirea și analizarea problemei
- CITEȘTE (în matematică = ce se dă?): se comunică algoritmului informații (cu enunț clar, precis al problemei - specificarea cerințelor și datelor de intrare și ieșire)
2. Algoritm
- SCRIE (în matematică = ce se cere?): algoritmul comunică informații - un set de date
- PROIECTAREA ALGORITMULUI - Stabilirea metodei de rezolvare pas cu pas
3. Codificarea într-un limbaj de programare
- limbaj (binar) între om și mașină (calculator sau alt dispozitiv), o sintaxă specifică utilizată pentru scrierea programelor
- COD SURSĂ (text scris într-un limbaj de programare - de exemplu: C#, C++, Python etc., folosindu-se un fișier text, cum ar fi Notepad)
(DESCOMPUNEREA CODULUI: se recomandă ca problema/ CODUL să fie împărțit în bucăți bine izolate, care să fie codificate fiecare sub forma unei funcții - astfel se poate testa fiecare funcție separat)
- COMPILATOR - analizează textul programului și îl traducere în program (cod sursă - compilator - cod executabil/ mașină) - programul poate fi executat și fără a folosi un compilator, viteza de executare este mai ridicată (date de intrare - program executabil - date de ieșire)
- INTERPRETATOR - analizează și execută în același timp instrucțiunile (date de intrare & cod sursă - interpretator - date de ieșire)
- rezultă un PROGRAM = reprezentarea unui algoritm într-un limbaj - un fișier binar (cu extensia .exe în Windows), care presupune descrierea datelor și definirea unor instrucțiuni de procesare, adică se poate executa (lansa în execuție) sau rula
(timpul de rulare și dimensiunea memoriei folosite trebuie să fie cât mai mici)
- DEBUGGER/ DEPANATOR - rulându-se pas cu pas, se poate DEPANA programul creat (folosindu-se un breakpoint, se găsesc la fiecare pas rezultate intermediare) - PyCharm conține și un depanator, care permite interogarea pas cu pas a codului
4. Testarea și validarea programului
- rulează și se comportă conform așteptărilor?
- oferă rezultate conform cerințelor stabilite?
5. Întocmirea documentației
Principalele activități într-un proiect software
1. ACTIVITĂȚI DE MANAGEMENT AL PROIECTULUI
1. ce aduce nou/ interesant proiectul? 2. care ar fi alte 3 proiecte similare si ce diferențe ar avea noul proiect? 3. în cazul unui site/ aplicații, ce funcționalități ar avea fiecare utilizator?
AGILE = metodologie de management al proiectelor, având scopul de a se diminua riscurile de dezvoltare și de a se controla timpul de execuție prin implementarea proiectelor în mod flexibil și interactiv
1. Scrum
ORGANIZAREA PARTICIPANȚILOR:
- Product Owner
- Scrum Master
- Echipa
2. ACTIVITĂȚI TEHNICE
a. Definirea cerințelor utilizatorului
b. Definirea cerințelor software-ului (programului/ aplicației) > Document de cerințe software (Specificația de sistem)
DIAGRAME UML (The Unified Modeling Language) = este un limbaj de modelare (unificat) obiect si nu o metodă-obiect - o modalitate de a dezvolta modele bogate, care descriu funcționalitățile unui sistem software sau hardware, rezultând documentația necesară unui proiect de dezvoltare (Care sunt entitățile? - Care sunt relațiile dintre ele?).
Diagrama cazurilor de utilizare (Use Case Diagram) - modelează serviciile, sarcinile, funcția pe care un sistem trebuie să le îndeplinească:
- elemente: Actor (o entitate care interacționează cu sistemul - un utilizator, de exemplu), Use Case (caz de utilizare reprezintă o funcționalitate distinctă a unui sistem, a unei componente, a unui pachet sau a unei clase - după analiza întregului sistem, se stabilește o funcționalitate de bază, apoi se organizează cazurile de utilizare, se stabilesc diverși actori sau lucruri care vor interacționa cu sistemul) și Asociere
- relații între use case-uri (relația fiecărui autor cu cazul de utilizare sau cu un sistem): trebuie identificat numărul total de moduri în care un actor ar putea interacționa cu sistemul (este posibil să interacționeze cu mai multe cazuri de utilizare simultan, dar dacă un caz de utilizare sau un actor are mai multe relații, trebuie afișate doar interacțiunile semnificative).
ZONA ONG (actori: ONG-SPECIALIST)
1. funcționalitate: problemă de rezolvat (ex. depunere declarație)
-
2. funcționalitate: rezolvare problemă (ex. depunere declarație)
3. funcționalitate: status/ stadiu rezolvare (use case de includere)
4. funcționalitate: recenzie pentru specialist (use case de extensie - opțional)
-
Pe baza specificațiilor definite, se poate crea macheta (mockup) proiectului (aplicație/ website etc.), folosindu-se instrumente precump FIGMA, BALSAMIQ etc.).
c. Proiectare arhitecturală
d. Proiectare detaliată
e. Implementarea unităților programului (modulele)
f. Integrarea
g. Testarea de sistem
h. Testarea de acceptare
i. Întreținerea și operare
3. ACTIVITĂȚI DE ASIGURARE A CALITĂȚII
Hardware
Limbaje de programare
C - limbaj de programare de nivel mediu (programare procedurală)
Tipuri de date
DATA TYPES (succesiuni de biți - 0 sau 1, măsurate în octeți - BYTE, adică 8 biți) = zone/ bucăți din memoria RAM dedicate unei instrucțiuni)
VARIABILELE (pot fi imaginate ca niște cutii cu conținut variat) = zone/ bucăți din memoria RAM dedicate unei instrucțiuni) - șiruri alfanumerice, având un NUME și o VALOARE (sunt senzitive la litere mari sau mici, care, în acest limbaj, nu pot începe cu cifră, nu pot conține caractere speciale, nu pot fi separate prin spații (spațiul este înlocuit cu _)
VARIABILE NUMERICE (int = număr fără virgulă și float = număr cu virgulă)
- funcțiile int () și float () se folosesc pentru a converti un șir într-un număr
VARIABILE DE TIP CARACTER (string)
(string înseamnă șir)
- funcția str () se poate folosi pentru a converti un număr într-un șir - str(number)
(nu se pot amesteca variabile numerice cu variabile de tip string, dar cele numerice se pot converti în string)
OPERATORI sunt folosiți pentru a da valori variabilelor
Structuri de date liniare
ȘIRURI (un tip de dată de bază format din caractere numerice)
(pentru editare de coduri, se pot folosi Code Blocks sau CLion)
C++ este un limbaj de nivel înalt, adică programare orientată pe obiecte)
Structuri de date neliniare
GRAF = elementele unei mulțimi sau grup de obiecte/ set de puncte, adică NODURI, unite sau conectate, două câte două, prin MUCHII sau CURBE(pe baza unei relații).
GRAF NEORIENTAT (G) = o pereche ordonată de mulțimi de noduri (notate X - nodes) și de muchii (notate U - edges). LANȚ AL UNUI GRAF = o succesiune de vârfuri, unde oricare două vârfuri consecutive sunt adiacente. GRAF PARȚIAL AL UNUI GRAF INIȚIAL = un graf obținut prin eliminarea uneia sau mai multor muchii. SUBGRAF AL GRAFULUI INIȚIAL - un graf obținut prin eliminarea unor noduri șia muchiilor incidente lor. GRAF COMPLET = oricare două noduri sunt adiacente. CICLU ELEMENTAR = toate nodurile sunt diferite, cu excepția primului și ultimului. NODUL IZOLAT = are gradul 0. MATRICE DE ADIACENȚĂ a[i][j], unde 1 se notează dacă există muchie între i și j, (i,j aparține mulțimii de muchii U), iar 0 se notează daca nu există muchie între i și j (i, j nu aparține mulțimii de muchii U). LISTE DE VECINI = se notează nodurile vecine fiecărui nod
ARBORE = colecție de noduri, unde fiecare nod are asociată o anumită informație și o colecție de descendenți (fii - nodul care urmează imediat sub nodul-părinte). Rădăcina unui arbore = un nod unic, care nu are părinte.
ARBORI BINARI = fiecare nod are maxim doi descendenți, știindu-se exact care este fiul stâng și fiul drept (nodurile fără fii sunt frontieră a arborelui).
C++ este un limbaj de nivel înalt, adică programare orientată pe obiecte)
PYTHON - este un limbaj de nivel înalt, adică programare orientată pe obiecte
(pentru editarea liniilor de cod se poate folosi mediul de dezvoltare PyCharm - acesta permite navigarea prin proiect și cod, vizualăzări de specialitate ale codurilor, structurii fișierelor și salturi între fișiere, clase, metode)
- este obligatorie identarea codului (tab)
- comentariile în Python se notează cu #
Tipuri de date
VARIABILELE (pot fi imaginate ca niște cutii cu conținut variat) = DATE/ DATA TYPES (succesiuni de biți - 0 sau 1, măsurate în octeți - BYTE, adică 8 biți) = zone/ bucăți din memoria RAM dedicate unei instrucțiuni) - șiruri alfanumerice, având un NUME și o VALOARE (sunt senzitive la litere mari sau mici, care, în acest limbaj, nu pot începe cu cifră, nu pot conține caractere speciale, nu pot fi separate prin spații (spațiul este înlocuit cu _)
VARIABILE NUMERICE (int = număr fără virgulă și float = număr cu virgulă)
- funcțiile int () și float () se folosesc pentru a converti un șir într-un număr
VARIABILE DE TIP CARACTER (string)
(string înseamnă șir)
- funcția str () se poate folosi pentru a converti un număr într-un șir - str(number)
(nu se pot amesteca variabile numerice cu variabile de tip string, dar cele numerice se pot converti în string)
OPERATORI sunt folosiți pentru a da valori variabilelor
(în ordine de prioritate - operațiile în paranteze au prioritate)
ARITMETICI
(2**3)**2=64
LOGICI
DE ATRIBUIRE
DE COMPARARE
PRECEDENȚA OPERATORILOR
(majoritatea operatorilor sunt considerați ca nivel de importanță de la stânga la dreapta, cu excepția operatorului exponent)
OPERAȚII (adunare, scădere etc.)
(în ordine de prioritate - operațiile în paranteze au prioritate)
Structuri de date liniare
ȘIRURI (un tip de dată de bază format din caractere numerice încapsulate în formate ASCII, UNICODE -UTF 8 etc., încadrate printr-o pereche de apostrof sau ghilimele)
INDEXARE
- este asociat caracterelor din șir
SEGMENTARE
- este asociat caracterelor din șir
LISTE - se pun între paranteze drepte, iar intre valori trebuie să fie virgule = este o colecție de elemente scalare
- tipurile de date cuprinse în liste pot fi diferite
INDEXARE
SEGMENTARE
IF
(execută o singură dată)
STRUCTURI REPETITIVE
BUCLĂ CU WHILE (repetă execuția atâta timp cât condiția evaluează cu TRUE)
BUCLĂ CU FOR (utilă pentru seturi mai de date)
JAVA - este un limbaj de nivel înalt, adică programare orientată pe obiecte
.NET (framework gratuit - open spurce, multiplatformă, pentru creare de aplicații și servicii cloud)
(ATENȚIE! * rulează numai cu Windows)
(ATENȚIE! * rulează numai cu Windows)
ANSAMBLU (= unitate logică ce conține cod compilat) - poate fi PRIVAT sau PARTAJAT
Fiecare PROIECT în Visual Studio generează un ANSAMBLU (conține cod executabil - fișier cu extensia .exe și bibliotecă de clase - fișier cu extensia .dll), iar la crearea acestuia, numele devine și spațiul de nume/ NAMESPACE pentru toate clasele conținute.
SOLUȚIE Visual Studio = un container cu unul sau mai multe proiecte (un folder care conține fișierul *.sln și câte un subfolder pentru fiecare proiect - unul dintre proiecte de tip aplicație .exe este START UP - apare cu bold în panoul Solution Explorer)
CREATE A NEW PROJECT > se alege CONSOLE APP (.NET FRAMEWORK) > (în fereastra Configure your new project - Project Name: HELLO WORLD, - Solution Name: HELLO WORLD_CS)
În panoul SOLUTION EXPLORER (se află de obicei în dreapta ecranului) se afișează structura proiectului.
În fereastra Program.cs, în cod s-a generat namespace HELLO WORLD.
SCRIEREA CODULUI: pentru instrucțiuni se folosesc: cuvinte-cheie ale limbajului de programare (class, static, string etc.), denumiri de clase (ex. Program, Console... - editorul oferă posibilitatea completării automate după scrierea primelor litere din cuvintele-cheie, datorită suportului IntelliSense), metode apelate (ex. WriteLine, ReadLine), variabile (ex. args = argumentele funcției Main), valori (șirul de caractere Hello World), alte elemente (//comentariu - este un element care nu este luat ]n considerare la rularea programului).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HELLO_WORLD
{
internal class Program
{
private static object console;
static void Main(string[] args)
{
Console.WriteLine("Hello, World!"); //comentariu
Console.WriteLine("Press ENTER to exit...");
Console.ReadLine();
}
}
}
Dacă se fac modificări în cod, este necesară o nouă compilare a proiectului sau a soluției din MENIU > BUILD
În MENIU se alege DEBUG > START DEBUGGING (se va deschide o fereastră în care se afișează: Hello, World! Press ENTER to exit...
Pentru oprirea forțată se alege butonul STOP DEBUGGING.
Depanarea pas cu pas se face folosind comenzile STEP INTO sau STEP OVER
PARTENERI DIN INDUSTRII CREATIVE
Apreciem și pe această cale implicarea celor care ni s-au alăturat în proiecte sau activități:
Susțineți-ne (www.rosfera.ro/sustine) să putem susține acest proiect si celelalte activități de la RoSfera
* distribuind postările noastre, iar dacă aveți posibilitatea
* fie să redirecționați din impozitul pe venit personal sau afacerii,
* fie să sponsorizați (*cheltuielile unei persoane juridice cu sponsorizările se scad din impozitul pe profit datorat, fără a depăși 20% din acesta și nici 0,75% din cifra de afaceri -sunt cheltuieli nedeductibile integral). sau
* să donați, fiind ONG, depindem de implicarea celor care ne apreciază activitatea pe care o desfășurăm împreună cu colaboratorii.
- VOLUNTARII (creativi și nu numai) sunt promovați pe căile noastre și pot beneficia de diverse oportunități din activitățile noastre sau din partea partenerilor
- PARTENERII (companii, organizații, instituții) sunt piloni de bază ai activității noastre și dorim să le susținem activitatea, la rândul nostru, prin metode și căi agreate reciproc.
- SPONSORII ȘI CEI CARE NE SUSȚIN CU DONAȚII vor avea de câștigat accesul la valorile pe care le promovăm și la activitățile pe care le derulăm, precum și beneficii anunțate în cadrul fiecărei activități în parte.
- Donații putem primi și în contul ASOCIAȚIEI ROSFERA (înregistrată la Registrul Comerțului/ Asociațiilor și Fundațiilor nr. 341/ 25.05.2021, C.I.F. 44439483):
RO53 RNCB 0182 1701 7408 0001, deschis la BCR, iar pentru sponsorizări vă rugăm să ne contactați pentru contract.
- În PUNCTELE DE CULTURĂ sau în atelierele noastre ne-ar fi de folos implicarea prin servicii sau donații, astfel ne susțineți activitățile și proiectele și putem, la rândul nostru, să susținem creativii.