Diferență între revizuiri ale paginii „Programare Orientată Obiect (curs) - Seria C”
Cbira (discuție | contribuții) |
Cbira (discuție | contribuții) |
||
Linia 9: | Linia 9: | ||
'''SDA''' - Structuri de Date si Algoritmi | '''SDA''' - Structuri de Date si Algoritmi | ||
− | Rezultate test incipient, din total studenti prezenti (~ 70% din cei inscrisi in seria C): | + | |
+ | '''Rezultate test incipient, din total studenti prezenti (~ 70% din cei inscrisi in seria C): ''' | ||
3% ar fi luat nota 10: si-au organizat codul, datele, stiu sa citeasca dintr-un fisier si au scris un algoritm care ar merge | 3% ar fi luat nota 10: si-au organizat codul, datele, stiu sa citeasca dintr-un fisier si au scris un algoritm care ar merge |
Versiunea de la data 11 noiembrie 2016 16:14
Prerequisites
Cunoasterea unui limbaj de programare (cu citire/scriere la consola) si a unor algoritmi de baza.
Concepte: tip de date, variabile, asignare, operatii aritmetice, operatii logice, structuri repetitive, consola, biblioteci
Materii care asigura aceste cunostinte: PC - Programarea Calculatoarelor SDA - Structuri de Date si Algoritmi
Rezultate test incipient, din total studenti prezenti (~ 70% din cei inscrisi in seria C):
3% ar fi luat nota 10: si-au organizat codul, datele, stiu sa citeasca dintr-un fisier si au scris un algoritm care ar merge
15% au propus un algoritm care ar merge
15% stiu sa citeasca din fisiere
35% stiu: ori sa citeasca din fisiere, ori sa isi organizeze datele ori sa scrie algoritmul corect. Daca se tin de treaba, acesti studenti pot trece un examen de programare fara eforturi intense, doar cu seriozitate.
65% nu au facut niciuna din cele 3: nici organizare de date, nici algoritm corect, nici nu stiu sa citeasca din fisiere. Acesti studenti nu au sanse reale sa treaca un examen de programare, fara a se stradui intens. Acest procentaj este in concordanta cu promovabilitatea anilor trecuti la aceasta materie, ~40% la prima strigare (adica 60% picati)
25% au fost zero: nu pot scrie nici macar 2 linii de cod. Acesti studenti nu vor trece un exemen de programare, fara a lua masuri extreme.
Repartizarea punctelor
Punctajul maxim este de 100 de puncte, corespunzător notei 10. Acest punctaj este repartizat în felul următor:
Laborator 50p: 25p colocviu + 5 x 5p lucrari de laborator
Curs 50p: 30p grila finala (saptamana 14, vineri orele 17-21, A414) si 20p (lucrari sau teme de casa 10 x 2p sau 5 x 4p)
BONUS maxim 10 puncte pentru activitate excepțională în timpul semestrului. Punctajul bonus este exclusiv la latitudinea titularului de curs.
Frauda la teme / laborator / punctaj pe parcurs => se aduna opusul notei. Frauda la coloviu / test final curs => raport la decan cu recomandarea de exmatriculare.
Note: https://drive.google.com/open?id=1F_h8d1gADG79twoNwWs5iaCwNkG43JcEvtcD8sHw5jc
Condiții de promovare
Condițiile minime de promovare sunt:
- cel mult o absență în laborator;
- minim 25 de puncte din punctajul de laborator;
- minim 50 puncte în total.
Programa cursului
Curs1. Introducere: computer, CPU, I/O, limbaje de programare, Java, JVM, compilare Java, HelloWorld, output, tipuri de date (boolean, int, double, String), variabile, atribuire, operatori =, +, - , * , /, ordinea operatiilor, concatenare de String, bucle, if, while, for, initializare array, String array, clase, obiecte, campuri, metode
Curs2. Clase, obiecte, campuri, metode, constructor, constructor implicit, instante, access la campuri, acces la metode, referinta vs valoare, primitive, obiecte, == , equals, metoda statica, camp static, control acces: public, private, domeniu de definitie, this, pachete, package, import, java.lang.String, java.lang.System, exceptii, throw, throws, mostenire
Curs3. Recapitulare: mostenire / derivare, extends, @Override, javadoc, static, final, exceptii, throw, throws, try, catch, finally
Curs4. Java I/O, flux de date, clasa abstracta, interfata, property file, equals
Curs5. Recapitulare: citire din fisiere. Exemplu: afisati cele mai mari 3 medii (si studentii carora le apartin) din fisierul cu formatul de linie: Nume Prenume Nota1 Nota2.
https://drive.google.com/open?id=0B5TtS-S1KZFGTEZHMjRQUTJHOGs
Curs6. Socket, System.in, serializare: serialVersionUID, ObjectOutputStream, ObjectInputStream, readObject, writeObject, java.lang.ClassNotFoundException
https://en.wikipedia.org/wiki/OSI_model
https://docs.oracle.com/javase/tutorial/networking/sockets/
https://docs.oracle.com/javase/tutorial/networking/urls/index.html
http://wiki.dcae.pub.ro/index.php/Serializarea_obiectelor
CursN<=8. ArrayList. Procese si Thread-uri; start, run, interrupt, synchronized, mutex, join.
https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html
http://docs.oracle.com/javase/tutorial/essential/concurrency/
CursO<=10. GUI: Java Swing, Java FX.
Pentru primele cursuri, suportul de curs a fost MIT 6.092 (https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/lecture-notes/)
Suplimentar vedeti specificatia de limbaj java de la Oracle:
https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
http://docs.oracle.com/javase/tutorial/essential/exceptions/index.html
http://docs.oracle.com/javase/tutorial/essential/io/index.html
Limbajul Java este unul singur, pe orice OS, orice arhitectura, si in orice curs.
Important este sa stiti ce inseamna si cum sa folositi conceptele enumerate mai sus
Resurse Externe
Pentru incepatorii care nu stiu programare DELOC: puteti incepe cu: https://www.udemy.com/java-tutorial/
Pentru cursuri interactive vedeti site-urile dedicate (eg. Edx, Coursera, Udacity)