Rajat SRIVASTAVA

Rajat SRIVASTAVA

Ricercatore Universitario

Settore Scientifico Disciplinare ING-INF/05: SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI.

Dipartimento di Ingegneria dell'Innovazione

Edificio La Stecca - S.P. 6, Lecce - Monteroni - LECCE (LE)

Ufficio 1° Piano - Edificio La Stecca, Piano 1°

Curriculum Vitae

CV Rajat Srivastava

Scarica curriculum vitae

Didattica

A.A. 2023/2024

FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Corso di laurea INGEGNERIA DELL' INFORMAZIONE: ELETTRONICA, INFORMATICA E TELECOMUNICAZIONI

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 9.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 81.0

  Ore erogate dal docente RAJAT SRIVASTAVA: 27.0

Anno accademico di erogazione 2023/2024

Per immatricolati nel 2023/2024

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso Percorso comune

Sede Lecce

FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Corso di laurea INGEGNERIA INFORMATICA

Tipo corso di studio Laurea

Lingua ITALIANO

Crediti 9.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 81.0

  Ore erogate dal docente RAJAT SRIVASTAVA: 27.0

Anno accademico di erogazione 2023/2024

Per immatricolati nel 2023/2024

Anno di corso 1

Struttura DIPARTIMENTO DI INGEGNERIA DELL'INNOVAZIONE

Percorso Percorso comune

Sede Lecce

Torna all'elenco
FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Corso di laurea INGEGNERIA DELL' INFORMAZIONE: ELETTRONICA, INFORMATICA E TELECOMUNICAZIONI

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 9.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 81.0

  Ore erogate dal docente RAJAT SRIVASTAVA: 27.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2023/2024

Anno di corso 1

Semestre Primo Semestre (dal 18/09/2023 al 22/12/2023)

Lingua ITALIANO

Percorso Percorso comune (999)

Sede Lecce

Non vi è alcuna propedeuticità

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore. Si affornteranno infine elementi sull'architettura dei calcolatori. Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione

I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di: 1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;

4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;

6) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).
7) comprendere l'architettura hardware dei calcolatori
Capacità di applicare conoscenze e comprensione

Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi.
Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi. Abilità comunicative

È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità. Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi e la descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.
Le lezioni saranno inoltre registrate sulla piattaforma Microsoft Teams

Le slide del corso saranno disponibili sulla piattaforma formazioneonline all'indirizzo: https://formazioneonline.unisalento.it/course/view.php?id=717
Utilizzare le proprie credenziali di ateneo per accedere alla piattaforma formazioneonline; successivamente si usi la password "fondainfo1" per accedere ai contenuti del corso di Fondamenti di Informatica I

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato.

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore) - Rapresentazione delle informazioni (10 ore)
- Porte logiche e algebra booleana (2 ore)
- Reti combinatorie (4ore)

- Bistabili e reti sequenziali (4 ore)
- Processore e unità aritmetico-logica (4 ore)
- Gerarchia della memoria (4 ore)
- Pipeline e parallelismo a livello di istruzione (4 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (15 ore)
- Funzioni ricorsive (4 ore)
- Tipi di dato astratto: Pila, Coda, Lista, Heap Tree (8 ore)
- Cenni su analisi della complessità computazionale (4 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort, heap sort (8 ore)

[1] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line”, ISBN-13: 978- 8891908230
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere 4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.

[3] Dispense fornite dal docente presenti nellap piattaforma formazioneonline (si rimanda alla sezione "metodi didattici" per l'indicazione del link alla piattaforma)

FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE (ING-INF/05)
FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

Corso di laurea INGEGNERIA INFORMATICA

Settore Scientifico Disciplinare ING-INF/05

Tipo corso di studio Laurea

Crediti 9.0

Docente titolare Italo EPICOCO

Ripartizione oraria Ore totali di attività frontale: 81.0

  Ore erogate dal docente RAJAT SRIVASTAVA: 27.0

Per immatricolati nel 2023/2024

Anno accademico di erogazione 2023/2024

Anno di corso 1

Semestre Primo Semestre (dal 18/09/2023 al 22/12/2023)

Lingua ITALIANO

Percorso Percorso comune (999)

Sede Lecce

Non vi è alcuna propedeuticità.

Il corso mira a fornire sia elementi di teoria dell’informatica che i principi e le basi per la

programmazione. Partendo dal concetto di macchina programmabile in grado di svolgere operazioni seguendo una sequenza codificata di istruzioni elementari si passa alla strutturazione di un algoritmo e quindi alla competenze che permettono di scomporre un problema “complesso” per la macchina in una sequenza di operazioni “elementari”. Durante il corso verranno inoltre studiati gli algoritmi di ordinamento e di ricerca più noti con l’obiettivo di illustrare come differenti scelte nella risoluzione di uno stesso problema possano incidere sull’efficienza di un algoritmo e sui tempi di esecuzione al calcolatore. Si affornteranno infine elementi sull'architettura dei calcolatori. Strutturare i dati in modo opportuno è uno dei principali fattori che influenzano l’efficienza di un algoritmo. Durante il corso si studieranno le strutture dati base quali le liste. Infine il corso fornirà gli strumenti per lo sviluppo di applicazioni attraverso ambienti di programmazione integrati IDE utilizzando il linguaggio C e alcuni cenni sull’analisi della complessità computazionale degli algoritmi.

Conoscenze e comprensione

I risultati attesi di apprendimento prevedono che al termine del corso gli studenti siano in grado di: 1) illustrare le principali caratteristiche dell’architettura di un calcolatore;
2) comprendere le metodologie di rappresentazione e codifica dell’informazione;
3) progettare e implementare un algoritmo;

4) riconoscere ed applicare gli elementi caratterizzanti un linguaggio di programmazione procedurale strutturato (tipi dato, strutture di controllo, funzioni e procedure, gestione dei file e strutture dinamiche);
5) riconoscere le principali strutture dati dinamiche (liste, code, alberi) e i principali algoritmi di oridnamento e di ricerca;

6) analizzare, interpretare, comprendere e produrre listati di codice in linguaggio C utilizzando degli appositi ambienti di programmazione (IDE).
7) comprendere l'architettura hardware dei calcolatori
Capacità di applicare conoscenze e comprensione

Gli studenti saranno in grado di applicare le conoscenze acquisite in diversi ambiti appicativi ed in generale per la risoluzione al computer di processi e sistemi.
Autonomia di giudizio
Il corso favorisce l'autonomia di giudizio degli studenti attraverso l'analisi critica di problemi computazionali per i quali trovare soluzioni software in grado di risolverlo. Diverse soluzioni proposte dagli studenti sono poste a confronto e valutate criticamente dagli studenti stessi. Abilità comunicative

È fondamentale che gli studenti siano in grado di comunicare con un pubblico vario e composito, non omogeneo culturalmente, in modo chiaro, logico ed efficace, utilizzando gli strumenti metodologici acquisiti e le loro conoscenze scientifiche e, in particolar modo, il lessico di specialità. Il corso favorisce lo sviluppo delle abilità inerenti le capacità di esporre in termini precisi e formali le proprietà e le caratteristiche di aloritmi e la descrizione di possibili soluzioni algoritmiche a problemi reali.

Le lezioni teoriche si svolgeranno in aula utilizzando slide con esempi alla lavagna. Le esercitazioni si svolgeranno in laboratorio informatico con esercizi svolti direttamente al computer inerenti la programmazione in linguaggio C.
Le lezioni saranno inoltre registrate sulla piattaforma Microsoft Teams

Le slide del corso saranno disponibili sulla piattaforma formazioneonline all'indirizzo: https://formazioneonline.unisalento.it/course/view.php?id=717
Utilizzare le proprie credenziali di ateneo per accedere alla piattaforma formazioneonline; successivamente si usi la password "fondainfo1" per accedere ai contenuti del corso di Fondamenti di Informatica I

L’esame è composto da una prova scritta durante la quale si verificheranno le capacità acquisite nella progettazione di un algoritmo, nel riconoscimento delle principali strutture dati e degli algoritmi di base visti a lezione e nell'analisi della complessità computazionale di un algoritmo oltre agli aspetti teorici affrontati nel corso. Durante la prova scritta non sarà consentito l’uso di manuali nè altro materiale di supporto.

Oltre alla prova scritta ci sarà una prova orale/programmazione alla quale si accede solo dopo aver superato la prova scritta. Durante la prova di programmazione verrà valutata la capacità pratica nello sviluppare un semplice programma eseguibile al calcolatore in linguaggio C. La prova di programmazione dura 1 ora, il programma realizzato durante la prova di programmazione verra’ quindi discusso appena terminata la prova. Durante la prova di programmazione si può usare il proprio computer e tutti i manuali e le fonti online utili a risolvere l’esercizio assegnato.

Le date degli appelli d'esame sono disponibili al seguente link: calendario esami di profitto

- Architettura di Von Neumann, concetto di algoritmo, macchina astratta (4 ore) - Rapresentazione delle informazioni (10 ore)
- Porte logiche e algebra booleana (2 ore)
- Reti combinatorie (4ore)

- Bistabili e reti sequenziali (4 ore)
- Processore e unità aritmetico-logica (4 ore)
- Gerarchia della memoria (4 ore)
- Pipeline e parallelismo a livello di istruzione (4 ore)
- Strutturare un algoritmo (6 ore)
- Costrutti del linguaggio C, variabili e tipi di dato, funzioni, array puntatori e gestione dinamica della memoria (15 ore)
- Funzioni ricorsive (4 ore)
- Tipi di dato astratto: Pila, Coda, Lista, Heap Tree (8 ore)
- Cenni su analisi della complessità computazionale (4 ore)
- Algoritmi di ordinamento: insertion sort, selection sort, bubble sort, merge sort, quick sort, heap sort (8 ore)

[1] B. W. Kernighan, D. M. Ritchie, “Il linguaggio C. Principi di programmazione e manuale di riferimento. Ediz. MyLab. Con Contenuto digitale per download e accesso on line”, ISBN-13: 978- 8891908230
[2] Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, “Informatica: Arte e Mestiere 4° Ed.”, McGraw-Hill,, 2014. ISBN: 9788838668487.

[3] Dispense fornite dal docente presenti nellap piattaforma formazioneonline (si rimanda alla sezione "metodi didattici" per l'indicazione del link alla piattaforma)

FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE (ING-INF/05)

Pubblicazioni

A. Muhammad, R. Srivastava, N. Koutroumanis, D. Semitekolos, E. Chiavazzo, P-N Pappas, C. Galiotis, P. Asinari, C.A. Charitidis, M. Fasano, Mesoscopic Modeling and Experimental Validation of Thermal and Mechanical Properties of Polypropylene Nanocomposites Reinforced By Graphene-Based FillersMacromolecules56 (24), 9969–9982, 2023.

A. Muhammad, C. S. Ezquerro, R. Srivastava, P. Asinari, M. Laspalas, A. Chiminelli, M. Fasano, Atomistic to Mesoscopic Modelling of Thermophysical Properties of Graphene-Reinforced Epoxy NanocompositesNanomaterials 13 (13), 1960, 2023.

S. Mishra, R Srivastava, A. Muhammad, A. Amit, E. Chiavazzo, M. Fasano, P. Asinari, The impact of physicochemical features of carbon electrodes on the capacitive performance of supercapacitors: a machine learning approachScientific Reports 13, Article number: 6494, 2023

AK Verma, R Srivastava, Multiscale modeling approach for removal of heavy metal ions from water: A review, Current Directions in Water Scarcity Research 5, 439 - 457, 2022.

S Mohammad Nejad, R Srivastava, FM Bellussi, HC Thielemann, P Asinari, M Fasano, Nanoscale thermal properties of carbon nanotubes/epoxy composites by atomistic simulations, International Journal of Thermal Sciences 159, 106588, 2021.

R Srivastava, M Fasano, S Mohammad Nejad, HC Thielemann, E Chiavazzo, P Asinari, 3 Modeling carbon-based smart materials, Carbon-Based Smart Materials, 33, 2020.

S Mohammad Nejad, M Bozorg Bigdeli, R Srivastava, M Fasano, Heat transfer at the interface of graphene nanoribbons with different relative orientations and gaps, Energies 12 (5), 796, 2019.

R Srivastava, A Kommu, N Sinha, JK Singh, Removal of arsenic ions using hexagonal boron nitride and graphene nanosheets: a molecular dynamics study, Molecular Simulation 43 (13-16), 985-996, 2017.

TK Patra, S Khan, R Srivastava, JK Singh, Understanding wetting transitions using molecular simulation, Nanoscale and Microscale Phenomena: Fundamentals and Applications, 139-166, 2015.

D Bhandary, K Srivastava, R Srivastava, JK Singh, Effects of electric field on the vapor–liquid equilibria of nanoconfined methanol and ethanol, Journal of Chemical & Engineering Data 59 (10), 3090-3097, 2014.

R Srivastava, JK Singh, PT Cummings, Effect of electric field on water confined in graphite and mica pores, Journal of Physical Chemistry C 116 (33), 17594-17603, 2012.

R Srivastava, H Docherty, JK Singh, PT Cummings, Phase transitions of water in graphite and mica pores, Journal of Physical Chemistry C 115 (25), 12448-12457, 2011.

R Srivastava, D Gupta, KN Khanna, Shear viscosity for inelastic hard spheres, Indian Journal of Physics 84 (5), 575-586, 2010.

R Srivastava, K Khanna, Thermal Conductivity of Square-Well Fluids, Acta Physica Polonica A 116 (6), 1044-1047, 2009.

R Srivastava, KN Khanna, Transport coefficients for two-and three-body forces for a square-well fluid, Fluid phase equilibria 285 (1-2), 112-115, 2009.

R Srivastava, KN Khanna, CP Singh, Transport coefficients for hard-chain fluid, Physics and Chemistry of Liquids 47 (3), 282-286, 2009.

R Srivastava, KN Khanna, Stokes− Einstein relation in two-and three-dimensional fluids, Journal of Chemical & Engineering Data 54 (5), 1452-1456, 2009.

R Srivastava, A Tewari, KN Khanna, Shear viscosity of dense fluid, Indian Journal of Pure and Applied Physics 47 (8), 568-571, 2009.

R Srivastava, DK Dwivedee, KN Khanna, Scaling laws for transport coefficients of a hard sphere fluid, Journal of Molecular Liquids 139 (1-3), 29-34, 2008.

DK Dwivedee, R Srivastava, KN Khanna, Transport coefficients of square-well fluids, Fluid phase equilibria 263 (2), 199-204, 2008.

R Srivastava, KN Khanna, Self-diffusion coefficients of dense fluid for a square-well fluid, Journal of Molecular Liquids 136 (1-2), 156-160, 2007.

R Srivastava, DK Dwivedee, KN Khanna, Thermodynamic properties of repulsive hard-core Yukawa fluid, Indian Journal of Pure and Applied Physics 44 (8), 612, 2006.

PK Verma, R Srivastava, KN Khanna, The specific heat of linear tangent hard sphere chains, Indian Journal of Physics 80, 837-839, 2006.