100% ont trouvé ce document utile (3 votes)
7K vues32 pages

Codingame-Développeur Full Stack Java Et Angular - Senior-678687.PDF 1

Transféré par

Kais Trabelsi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (3 votes)
7K vues32 pages

Codingame-Développeur Full Stack Java Et Angular - Senior-678687.PDF 1

Transféré par

Kais Trabelsi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Afin d'éviter la fuite de questions, ce rapport ne doit pas être partagé avec les candidats.

Islem Ghouma (ighouma@[Link])

Campagne : Développeur Full Stack Java et Angular - Senior Domaine(s) : Angular 2+, Java, SQL Langage : Français Date : 10/02/2023

MEILLEUR QUE
RANG 1/2

78% DURÉE 0h45 / 1h12

des professionnels SCORE 1 200 / 1 590 (75%)

Angular 2+ 220 / 370pts (59%) MEILLEUR QUE 44% des professionnels

Connaissance du langage 220 / 370pts

Java 600 / 640pts (94%) MEILLEUR QUE 97% des professionnels

Connaissance du langage 180 / 220pts

Fiabilité 83 / 83pts

Modélisation 20 / 20pts

Résolution de problèmes 317 / 317pts

1 / 32
Islem Ghouma (ighouma@[Link])
SQL 380 / 580pts (66%) MEILLEUR QUE 82% des professionnels

Connaissance du langage 320 / 520pts

Modélisation 60 / 60pts

Accéder au rapport détaillé

Question 1: SQL - Clé étrangère n°1


SQL 00:22 / 01:00 20 / 20 pts

Question

D'après le schéma de base de données ci-dessus, indiquer ce qui qualifie le mieux la colonne
customer_id de la table PURCHASE_ORDER .

2 / 32
Islem Ghouma (ighouma@[Link])
Réponse

Clé primaire

Index

Blob

Clé étrangère

Résultat
Réponse correcte
Modélisation +20pts

3 / 32
Islem Ghouma (ighouma@[Link])
Question 2: SQL - DROP
SQL 00:08 / 00:30 20 / 20 pts

Question
Quelle commande SQL est utilisée pour supprimer une table d'une base de données ?

Réponse

DELETE table

TRUNCATE table

DROP table

REMOVE table

Résultat
Réponse correcte
Connaissance du langage +20pts

4 / 32
Islem Ghouma (ighouma@[Link])
Question 3: SQL - Clé primaire
SQL 01:00 / 01:00 1x (6 sec) 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Indiquer quelles propositions sont vraies pour une colonne déclarée en tant que clé primaire.

(plusieurs réponses possibles)

Réponse

Elle ne peut pas contenir de doublons

Elle peut contenir la valeur NULL

Elle ne peut pas être en plus une clé étrangère

Elle peut être déclarée avec un type "caractère" tel que "VARCHAR"

Résultat
Réponse correcte
Modélisation +40pts

5 / 32
Islem Ghouma (ighouma@[Link])
Question 4: SQL - DISTINCT
SQL 01:07 / 05:00 100 / 100 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question

Modifier la requête pour donner la liste des villes (city) des clients (customer). La liste ne doit pas
contenir de doublon et doit être triée par ordre alphabétique.

N'afficher que la colonne CITY.

Exemple de sortie :

---------------
| CITY |
---------------
| Istanbul |
| Montpellier |
| Tokyo |
---------------

6 / 32
Islem Ghouma (ighouma@[Link])
Réponse

1 -- SQL request(s) below


2 SELECT distinct CITY
3 FROM customer
4 order by city;

Voir le code playback

Résultat
Résultat
Connaissance du langage +100pts

7 / 32
Islem Ghouma (ighouma@[Link])
Question 5: HAVING avec un champ calculé et condition OR
SQL 05:59 / 06:00 0 / 200 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question

Modèle de données Objectif


Rédigez une requête qui renvoie tous les étudiants dont la note moyenne aux tests de sciences
humaines ( avg_score ) est supérieure ou égale à 0,9. Un test de sciences humaines a un test_name
égal à 'English Test' ou 'History Test'. Conditions
Colonnes attendues : first_name , last_name , avg_score , dans cet ordre. Arrondissez le score
moyen pour ne conserver que deux décimales. Trier les lignes par score moyen (non arrondi), dans
l'ordre décroissant. Exemple :

--------------------------------------
| FIRST_NAME | LAST_NAME | AVG_SCORE |
--------------------------------------
| Joann | Stroik | 0.99 |
| Teddy | Bryant | 0.91 |
| Rebecca | Coffee | 0.91 |
--------------------------------------

8 / 32
Islem Ghouma (ighouma@[Link])
Réponse

1 -- SQL request(s) below


2 SELECT FIRST_NAME,LAST_NAME,ROUND(avg(SCORE),2) as AVG_SCORE
3 FROM students
4 WHERE (TEST_NAME LIKE '%English Test%' or TEST_NAME like '%History Test%')
5 GROUP by FIRST_NAME,LAST_NAME
6 HAVING aV;

Voir le code playback

Résultat
Résultat
Connaissance du langage +200pts

9 / 32
Islem Ghouma (ighouma@[Link])
Question 6: [Vehicle Data Model] SQL - LIKE
SQL 01:33 / 05:00 200 / 200 pts

Question
Modèle de données

Objectif
Extraire les marques ( make ) et modèles ( model ) des véhicules ( vehicle ) dont le nom (
vehicle_name ) commence par la lettre 'G'.

10 / 32
Islem Ghouma (ighouma@[Link])
Conditions
Colonnes attendues : make , model , dans cet ordre. Trier les lignes par ordre alphabétique des
marques et puis des modèles. Exemple :

------------------------
| MAKE | MODEL |
------------------------
| Ford | F150 |
| Toyota | Tercel |
------------------------

Réponse

1 -- SQL request(s) below


2 SELECT MAKE,MODEL
3 FROM vehicle WHERE VEHICLE_NAME LIKE 'G%'
4 order by MAKE,MODEL

Voir le code playback

Résultat
Résultat
Connaissance du langage +200pts

11 / 32
Islem Ghouma (ighouma@[Link])
Question 7: Classe « friendly »
Java 00:10 / 00:20 20 / 20 pts

Question
Déclarer une classe sans niveau d'accès explicite est en général conseillé.

Réponse

Vrai

Faux

Résultat
Réponse correcte
Modélisation +20pts

12 / 32
Islem Ghouma (ighouma@[Link])
Question 8: Classe Object
Java 00:08 / 00:20 20 / 20 pts

Question
public class A {}

Qui est la classe parente de A ?

Réponse

Object

Root

La classe A n'a pas de parent

Résultat
Réponse correcte
Connaissance du langage +20pts

13 / 32
Islem Ghouma (ighouma@[Link])
Question 9: Héritage multiple d'interfaces
Java 00:12 / 00:30 40 / 40 pts

Question
public interface A extends B, C, D {}

Cette interface est correcte si B, C et D sont également des interfaces.

Réponse

Vrai

Faux

Résultat
Réponse correcte
Connaissance du langage +40pts

Question 10: Méthodes par défaut d'interface


Java 00:18 / 00:45 40 / 40 pts

Question
Quelle est la façon correcte de définir une interface avec une implémentation de méhode concrète ?

14 / 32
Islem Ghouma (ighouma@[Link])
Réponse

public interface Product {


public default int getTaxRate() {
return 0;
}
}

public interface Product {


public trait int getTaxRate() {
return 0;
}
}

public interface Product {


public int getTaxRate() {
return 0;
}
}

public interface Product {


public final int getTaxRate() {
return 0;
}
}

Résultat
Réponse correcte
Connaissance du langage +40pts

15 / 32
Islem Ghouma (ighouma@[Link])
Question 11: Fonction Predicate
Java 00:15 / 00:50 40 / 40 pts

Question
En Java 8, quelle interface par défaut peut être utilisée comme une fonction à un argument qui retourne
un booléen ?

Réponse

Optional

Predicate

Functions

Comparator

Résultat
Réponse correcte
Connaissance du langage +40pts

16 / 32
Islem Ghouma (ighouma@[Link])
Question 12: Méthode pour supprimer les espaces
Java 00:40 / 00:40 0 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
En supposant que vous travailliez en Java 11+, quelle est la meilleure méthode pour supprimer les
caractères d'espacement de début et de fin d'une chaîne de caractères ?

Example:

String str = " Hello world. ";

Réponse

[Link]()

[Link]()

[Link]()

[Link]()

[Link]().stripTrailing()

Résultat
Réponse incorrecte
Connaissance du langage +40pts

17 / 32
Islem Ghouma (ighouma@[Link])
Question 13: Méthode stream anyMatch()
Java 00:29 / 01:00 40 / 40 pts

Question
Quelle méthode de Stream permet de vérifier si un certain prédicat correspond à l'un des éléments du
stream ?

Ecrire le nom de la méthode la plus adaptée pour cela.

Réponse
anyMatch

Résultat
Réponse correcte
Connaissance du langage +40pts

Réponse(s) correcte(s)
anyMatch
anyMatch()

18 / 32
Islem Ghouma (ighouma@[Link])
Question 14: Du désordre le plus grand gagne
Java 02:57 / 05:00 100 / 100 pts

Question
Implémentez la méthode [Link](int[] numbers) afin qu'elle retourne le plus
grand nombre dans numbers .

Note : Le tableau contient toujours au moins un nombre.

Réponse

1 import [Link];
2 import [Link];
3
4 class Algorithm {
5
6 /** @return the largest number of the given array */
7 static int findLargest(int[] numbers) {
8
9 return [Link](numbers).max().getAsInt();
10 // Your code goes here
11
12 }
13
14 }

Voir le code playback

Résultat
Fonctionne dans des cas simples
Résolution de problèmes +32pts

Fonctionne quand le tableau contient seulement Integer.MIN_VALUE


Fiabilité +58pts

Fonctionne quand le plus grand élément est à la position 0


Fiabilité +5pts

Fonctionne quand le plus grand élément est à la fin du tableau


Fiabilité +5pts

19 / 32
Islem Ghouma (ighouma@[Link])
Question 15: C'est au fruit que l'on connaît l'arbre
Java 08:11 / 25:00 1x (1 min) 300 / 300 pts

Question
Un arbre est composé de noeuds qui respectent les règles suivantes : Un noeud tient une valeur
correspondant à un entier. Hormis le noeud à la racine de l’arbre, un noeud a toujours un seul autre
noeud qui le référence. Un noeud n’a pas plus de deux enfants, appelés noeud à gauche et noeud à
droite. Si un noeud n’a pas d’enfant à droite ou à gauche, alors la référence correspondante est null .
La valeur tenue par tout enfant du sous arbre à gauche est inférieure à la valeur de son parent et la
valeur tenue par tout enfant du sous arbre à droite est supérieure à la valeur de son parent. Voici un

exemple d’arbre qui respecte ces règles (la racine vaut 9) :


Fig. 1 Pour simplifier le code, tout est combiné dans une simple classe nommée Node . La hauteur de l’
arbre (la distance entre le noeud le plus éloigné et la racine) est comprise entre 0 et 100 000 noeuds.
Question : Implémentez une nouvelle méthode de Node nommée find(int v) qui retourne le noeud
tenant la valeur v . Si ce noeud n’existe pas alors find devra retourner null . Important : Essayez de
privilégier un faible usage de la mémoire RAM. Pour tester votre algorithme, vous pouvez vous exercer à
partir de deux exemples d’arbres : L’arbre présenté ci-dessus (Fig. 1) : la variable small correspond au
noeud racine. Un arbre d’une hauteur de 100 000 noeuds : la variable large correspond au noeud
racine, sachant que le noeud le plus éloigné tient la valeur 0 .

20 / 32
Islem Ghouma (ighouma@[Link])
Réponse

1 class Node {
2
3 // keep these fields
4 Node left, right;
5 int value;
6
7 public Node find(int v){
8 Node current = this;
9 while(current != null){
10 if([Link]== v){
11 return current;
12
13 }
14 current = v < [Link]?[Link]:[Link];
15
16 }
17 return null;
18 }
19
20
21 }

Voir le code playback

Résultat
Les résultats sont correctes avec un arbre d'une 'petite' hauteur
Résolution de problèmes +90pts

Les résultats sont correctes avec un arbre d'une 'grande' hauteur


Résolution de problèmes +195pts

Si le noeud demandé n’existe pas 'null' est retourné


Fiabilité +15pts

21 / 32
Islem Ghouma (ighouma@[Link])
Question 16: Interpolation
Angular 2+ 00:05 / 00:50 20 / 20 pts

Question
Quelle concept Angular est mis en oeuvre dans le template ci-dessous à la ligne 6 pour afficher la
propriété name ?

Réponse

string interpolation

template string

template literal

event binding

Résultat
Réponse correcte
Connaissance du langage +20pts

22 / 32
Islem Ghouma (ighouma@[Link])
Question 17: Directive structurelle
Angular 2+ 00:07 / 00:30 20 / 20 pts

Question
Parmi les propositions suivantes, laquelle n'est pas un directive structurelle d'Angular ?

Réponse

ngIf

ngFor

ngSwitch

ngUnless

Résultat
Réponse correcte
Connaissance du langage +20pts

23 / 32
Islem Ghouma (ighouma@[Link])
Question 18: Import de HttpClientModule
Angular 2+ 00:30 / 00:30 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Quel module doit-on importer pour utiliser le service HttpClient ?

Réponse

HttpClientModule

HttpModule

RequestModule

TransportModule

ClientModule

Résultat
Réponse correcte
Connaissance du langage +20pts

24 / 32
Islem Ghouma (ighouma@[Link])
Question 19: Directive ngFor
Angular 2+ 00:44 / 00:50 40 / 40 pts

Question
Ligne 7, par quoi doit-on remplacer ?? pour que la directive ngFor puisse fonctionner ?

Réponse
of

Résultat
Réponse correcte
Connaissance du langage +40pts

Réponse(s) correcte(s)
of

25 / 32
Islem Ghouma (ighouma@[Link])
of

Question 20: Ajout d'entête HTTP


Angular 2+ 00:18 / 00:40 40 / 40 pts

Question
Qu'utiliseriez-vous pour ajouter le même entête HTTP à tous vos appels HTTP ?

Réponse

Un Injector

Un Interceptor

Par injection de dépendances

L'entête doit être ajouté à chaque appel manuellement

Résultat
Réponse correcte
Connaissance du langage +40pts

26 / 32
Islem Ghouma (ighouma@[Link])
Question 21: Extension Chrome pour debugging
Angular 2+ 00:14 / 00:30 40 / 40 pts

Question
Parmi les propositions ci-contre, quelle est celle qui désigne une extension Chrome pour débugguer les
apps Angular ?

Réponse

ngrx

npx

npm

Angular DevTools

Résultat
Réponse correcte
Connaissance du langage +40pts

27 / 32
Islem Ghouma (ighouma@[Link])
Question 22: Définition des routes filles
Angular 2+ 00:30 / 00:30 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Au sein de l'objet de type Routes , quelle propriété permet de définir des routes filles ?

Réponse

loadChildren

route

children

childRoutes

Résultat
Réponse correcte
Connaissance du langage +40pts

28 / 32
Islem Ghouma (ighouma@[Link])
Question 23: @Input/@Output composant parent
Angular 2+ 14:38 / 15:00 0 / 150 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
On vous demande de créer un composant Angular nommé DisplayComponent et ayant display-
component pour sélecteur.

Il doit utiliser le composant VoterComponent (sélecteur = voter-component ) dont le code est fourni.

DisplayComponent a 3 champs public nommés question , yesAnswer et noAnswer . Ils


représentent une question posée à l'utilisateur et les choix de réponse possibles affichés dans
VoterComponent .

DisplayComponent doit utiliser VoterComponent en tant qu'enfant et doit lui passer question ,
yesAnswer et noAnswer en entrée.

Quand l'utilisateur vote, VoterComponent créé un événement de type boolean vers un @Output
nommé output .

Vous devez afficher le résultat du vote dans DisplayComponent dans un <div> avec id=lastVote :
si output est vrai, alors on affiche la valeur de yesAnswer , sinon on affiche la valeur de noAnswer .

Notes : Un bloc de "Preview" est disponible pour vous permettre de débugguer votre code. Il affiche
votre composant ci-dessous. Vous pouvez l'ouvrir et le modifier à votre guise. Ce bloc de "Preview" n'est
pas pris en compte dans le calcul du score de votre code.

Réponse

1 // Angular 15.x code


2 import { Component, Input, NgModule, Output, EventEmitter } from '@angular/core';
3
4 @Component({
5 selector:'display-component',
6 template: `
7 <voter-component question='question' yesAnswer='yesAnswer' noAnswer='noAnswer' (output)=
'onOutPut($event)'>
8 </voter-component>
9 <div id = 'lastVote'>

29 / 32
Islem Ghouma (ighouma@[Link])
10 {{res}}
11 </div>
12 `
13 })
14 export class DisplayComponent {
15 public question = "Too easy?"
16 public yesAnswer = "Yes";
17 public noAnswer = "No";
18 public res:any;
19 onOutPut(event){
20 if(event==true){
21 [Link]=[Link];
22 }else{
23 [Link]=[Link];
24 }
25
26
27
28 }
29 }
30
31 // VoterComponent: do not change
32 @Component({
33 selector:'voter-component',
34 template: `
35 {{question}}
36 <button (click)="vote(true)">{{yesAnswer}}</button>
37 <button (click)="vote(false)">{{noAnswer}}</button>
38 `
39 })
40 export class VoterComponent {
41 @Input()
42 public question: string;
43
44 @Input()
45 public yesAnswer: string;
46
47 @Input()
48 public noAnswer: string;
49
50 @Output()
51 public output = new EventEmitter<boolean>();
52
53 public vote(vote: boolean): void{
54 [Link](vote);
55 }
56 }
57
58
59
60 // #region Preview
61
62 @Component({
63 template: `<display-component></display-component>`
64 })
65 export class PreviewComponent { }
66 // #endregion Preview
67
68 // #region Module declaration - Do not Change
69 @NgModule({
70 declarations: [PreviewComponent, DisplayComponent, VoterComponent],
71 entryComponents: [PreviewComponent]
72 })
73 export class PreviewModule { }
74 // #endregion Module declaration

30 / 32
Islem Ghouma (ighouma@[Link])
Voir le code playback

Résultat
Compile
Connaissance du langage +0pts

Gère l'événement
Connaissance du langage +75pts

Les entrées sont bien propagées


Connaissance du langage +75pts

31 / 32
Islem Ghouma (ighouma@[Link])
Glossaire

Connaissance du langage

La mesure de cette compétence permet de déterminer l'expérience du candidat dans la pratique d'un langage de
programmation. Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui devra être
rapidement opérationnel.

Modélisation

Cette mesure fournit une indication sur la capacité du candidat à appliquer des solutions standard pour résoudre des
problèmes récurrents. Un développeur ayant un bon niveau dans cette compétence augmentera la qualité
(maintenabilité, évolutivité) de vos applications. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui sera amené à travailler sur les
briques qui structurent vos applications, à anticiper les besoins de demain pour développer des solutions pérennes.

Résolution de problèmes

Cette compétence correspond aux aptitudes du candidat à comprendre et à structurer son raisonnement pour trouver
des solutions à des problèmes complexes. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vos applications ont une composante technique importante (R&D,
innovation).

Fiabilité

La fiabilité caractérise la capacité du candidat à réaliser des solutions qui prennent en compte les cas particuliers. Plus
cette compétence est élevée, plus vos applications sont robustes (moins de bugs).

32 / 32
Islem Ghouma (ighouma@[Link])

Vous aimerez peut-être aussi