Programare Orientată Obiect (curs) - Seria C: Diferență între versiuni

De la WikiLabs
(ANUNTURI)
(ANUNTURI)
 
(Nu s-au afișat 43 de versiuni intermediare efectuate de același utilizator)
Linia 1: Linia 1:
 
== ANUNTURI ==
 
== ANUNTURI ==
  
Am urcat rezultatele de la colocviu. Va rog verificati-le si trimiteti-mi e-mail daca am gresit la transcriere.
 
  
Urmeaza: lucrari de laborator, lucrari de curs, puncte bonus si nota "finala", in urmatoarele zile.
+
'''<font color="red"> Update note sesiune de toamna. Verificati. </font>'''
  
Contestatii: vineri, 10 feb 2017, orele 10-13, A422/A424 (dar sper sa rezolvam pe e-mail pana atunci; anuntati-ma daca veniti)
+
Punctaje seria C, OOP 2017: https://docs.google.com/spreadsheets/d/1cDVwpxyN-8ygZ37Pfpo4gLLixLE8DCXMbX5AmxZVArc/edit?usp=sharing
  
== Prerequisites ==
+
'''<font color="green"> Cod java (suport de curs): </font>''' http://gitlab.dcae.pub.ro/Teaching/SeriaC_OOP_2017
 +
 +
'''<font color="green"> Note de curs </font>''' de la alte serii:
 +
 
 +
http://discipline.elcom.pub.ro/POO-Java/
 +
 
 +
http://andrei.clubcisco.ro/cursuri/anul-2/semestrul-1/programare-orientata-pe-obiecte.html
  
Cunoasterea unui limbaj de programare (cu citire/scriere la consola) si a unor algoritmi de baza.
+
Protectia muncii: http://wiki.dcae.pub.ro/images/4/4f/An_II_seria_C.doc.zip
  
Concepte: tip de date, variabile, asignare, operatii aritmetice, operatii logice, structuri repetitive, consola, biblioteci
+
Laboratorul de OOP se face in sala A414 
  
Materii care asigura aceste cunostinte:
+
Ca si in ceilalti ani, la seria F, vom inmana badge-uri si la seria C
'''PC'''  - Programarea Calculatoarelor
 
'''SDA''' - Structuri de Date si Algoritmi
 
  
  
'''Rezultate test incipient, din total studenti prezenti (~ 70% din cei inscrisi in seria C): '''
+
CHAMPION - studentului cu punctajul cel mai mare: Berbecaru Ionut
  
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
+
GOLD - studentilor cu media 10 in catalog : Petrescu Stefan, Traistaru Vlad-Viorel
  
15% au propus un algoritm care ar merge
+
SILVER - studentilor cu media 9 in catalog : Toma Andreea, Turigioiu-Duran Cosmin-Florin, Enache Catalin
  
15% stiu sa citeasca din fisiere
+
== Prerequisites ==
  
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 seriozitatea de care ar trebui sa se bucure orice materie din facultate
+
Cunoasterea unui limbaj de programare (cu citire/scriere la consola) si a unor algoritmi de baza.
  
'''25%''' au fost foarte slabi: nu pot scrie nici macar 2 linii de cod. Acesti studenti '''<font color="red">nu vor trece</font>''' un exemen de programare, '''<font color="red"> fara a lua masuri radicale</font>'''
+
Concepte: tip de date, variabile, asignare, operatii aritmetice, operatii logice, structuri repetitive, consola, biblioteci
  
'''<font color="red">65%</font>''' 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'''.
+
Discipline care asigura aceste cunostinte:
 +
'''PC''' - Programarea Calculatoarelor
 +
'''SDA''' - Structuri de Date si Algoritmi
  
 
== Repartizarea punctelor ==
 
== Repartizarea punctelor ==
Linia 37: Linia 42:
 
Laborator 50p: 25p colocviu + 5 x 5p lucrari de laborator
 
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)
+
Curs 50p: 30p grila finala (saptamana 14, vineri orele '''<font color="red"> 17:30-19:30  </font>''' , 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 '''<font color="red">exclusiv</font>''' la latitudinea titularului de curs.
 
'''BONUS''' maxim 10 puncte pentru activitate excepțională în timpul semestrului. Punctajul bonus este '''<font color="red">exclusiv</font>''' la latitudinea titularului de curs.
Linia 43: Linia 48:
 
Frauda la teme / laborator / punctaj pe parcurs => se aduna opusul notei.
 
Frauda la teme / laborator / punctaj pe parcurs => se aduna opusul notei.
 
Frauda la coloviu / test final curs => raport la decan cu recomandarea de exmatriculare.
 
Frauda la coloviu / test final curs => raport la decan cu recomandarea de exmatriculare.
 
Note:
 
https://drive.google.com/open?id=1F_h8d1gADG79twoNwWs5iaCwNkG43JcEvtcD8sHw5jc
 
 
Studentii: Mitrana Gabriela, Toader Andrei-Calin, Totu Tiberiu, Buga Roxana, Tabac Andreina, Ristea Nicolae-Catalin s-au voluntarizat pentru corectarea lucrarilor de curs si/sau consiliere pentru ceilalti colegi.
 
 
Li se acorda: 1 punct bonus per sarbatoare de curs (a seriei), si 0.5 puncte bonus pentru 1 saptamana de consiliere (daca rezultatul se vede in notele studentului/studentilor consiliati)
 
  
 
= Condiții de promovare =
 
= Condiții de promovare =
Linia 55: Linia 53:
 
Condițiile minime de promovare sunt:
 
Condițiile minime de promovare sunt:
 
* cel mult o absență în laborator;
 
* cel mult o absență în laborator;
* minim 25 de puncte din punctajul de laborator;
+
* minim 25 de puncte din punctajul de laborator (din 50p);
* minim 50 puncte în total.
+
* minim 50 puncte în total (din 100p).
 +
 
 +
'''<font color="Green"> Examenul si colocviul se pot reface in toamna (la restanta) </font>'''
  
 
= Programa cursului =
 
= Programa cursului =
Linia 62: Linia 62:
 
'''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
 
'''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
+
'''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,
  
'''Curs3'''. Recapitulare: mostenire / derivare, extends, @Override, javadoc, static, final, exceptii, throw, throws, try, catch, finally
+
'''Curs3'''. Recapitulare: mostenire / derivare, extends, static, final, equals. In plus, @Override, javadoc, exceptii, throw, throws, try, catch, finally
  
'''Curs4'''. Java I/O, flux de date, clasa abstracta, interfata, property file, equals
+
'''Curs4'''. Recapitulare: mostenire si exceptii. In plus: clasa abstracta, interfata, Java I/O, flux de date
  
'''Curs5'''. Recapitulare: citire din fisiere.
+
'''Curs5'''. Recapitulare. Citire din fisiere, property file
 
Exemplu: afisati cele mai mari 3 medii (si studentii carora le apartin) din fisierul cu formatul de linie: Nume Prenume Nota1 Nota2.
 
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
 
https://drive.google.com/open?id=0B5TtS-S1KZFGTEZHMjRQUTJHOGs
  
Linia 124: Linia 123:
  
 
Pentru cursuri interactive vedeti site-urile dedicate (eg. Edx, Coursera, Udacity)
 
Pentru cursuri interactive vedeti site-urile dedicate (eg. Edx, Coursera, Udacity)
 +
* https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008
 +
* https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/
 +
 
* https://www.edx.org/course/subject/computer-science/java
 
* https://www.edx.org/course/subject/computer-science/java
 
* https://www.coursera.org/specializations/java-programming
 
* https://www.coursera.org/specializations/java-programming

Versiunea curentă din 9 septembrie 2018 11:21

ANUNTURI

Update note sesiune de toamna. Verificati.

Punctaje seria C, OOP 2017: https://docs.google.com/spreadsheets/d/1cDVwpxyN-8ygZ37Pfpo4gLLixLE8DCXMbX5AmxZVArc/edit?usp=sharing

Cod java (suport de curs): http://gitlab.dcae.pub.ro/Teaching/SeriaC_OOP_2017

Note de curs de la alte serii:

http://discipline.elcom.pub.ro/POO-Java/

http://andrei.clubcisco.ro/cursuri/anul-2/semestrul-1/programare-orientata-pe-obiecte.html

Protectia muncii: http://wiki.dcae.pub.ro/images/4/4f/An_II_seria_C.doc.zip

Laboratorul de OOP se face in sala A414

Ca si in ceilalti ani, la seria F, vom inmana badge-uri si la seria C


CHAMPION - studentului cu punctajul cel mai mare: Berbecaru Ionut

GOLD - studentilor cu media 10 in catalog : Petrescu Stefan, Traistaru Vlad-Viorel

SILVER - studentilor cu media 9 in catalog : Toma Andreea, Turigioiu-Duran Cosmin-Florin, Enache Catalin

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

Discipline care asigura aceste cunostinte: PC - Programarea Calculatoarelor SDA - Structuri de Date si Algoritmi

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:30-19:30 , 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.

Condiții de promovare

Condițiile minime de promovare sunt:

  • cel mult o absență în laborator;
  • minim 25 de puncte din punctajul de laborator (din 50p);
  • minim 50 puncte în total (din 100p).

Examenul si colocviul se pot reface in toamna (la restanta)

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,

Curs3. Recapitulare: mostenire / derivare, extends, static, final, equals. In plus, @Override, javadoc, exceptii, throw, throws, try, catch, finally

Curs4. Recapitulare: mostenire si exceptii. In plus: clasa abstracta, interfata, Java I/O, flux de date

Curs5. Recapitulare. Citire din fisiere, property file 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

Cod demo: https://drive.google.com/open?id=0B5TtS-S1KZFGQ2dNUWs3dE95VWc

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

Curs7. Procese si Thread-uri; start, run, join, interrupt, synchronized, mutex, barrier, semaphore, thread pool, starvation, deadlock

http://docs.oracle.com/javase/tutorial/essential/concurrency/

Cod: https://drive.google.com/open?id=0B5TtS-S1KZFGTjFJQ1RTZ010czA


Curs8 ArrayList.... https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

Curs9 -

Curs1O. GUI: Java AWT, Java Swing, Layout, Component, Container, Frame/JFrame, Button/JButton, Label, LookAndFeelInfo, ActionListener

request-by-student: redir System.out to JTextArea, inner class

Cod: https://drive.google.com/open?id=0B5TtS-S1KZFGbmxuVkNZUU9LUVU

Curs11. Aplicatii. java.awt.Graphics -setColor, drawLine, drawRect, drawChars, drawArc. Generics, java.util.HashMap, java.util.ArrayList, Properties, property files, Comparable interface.

https://drive.google.com/open?id=0B5TtS-S1KZFGd1pDZW5hVVVURGc

Curs12. Aplicatii. Stabilire grila colocviu (ordonare materie pe note 1->10). Exemplu de subiect.

Curs13. Aplicatii, prezentare proiecte.

Curs14. Aplicatii, feedback.

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)

Altele

https://www.ericsson.com/res/docs/2015/consumerlab/ericsson-consumerlab-communication-in-the-world-of-apps.pdf

http://www.tiobe.com/tiobe-index/

https://docs.nvidia.com/cuda/cuda-c-programming-guide/

http://www.nvidia.com/object/gpu-applications-domain.html