Faits:
Faits:
A. A._ est propriétaire d'un immeuble, à Peseux. En automne 1995, elle a décidé d'y aménager un appartement indépendant au rez-de-chaussée. Par l'intermédiaire de E._, qui était chargé de la direction des travaux, elle a conclu avec B._ un contrat d'entreprise portant sur l'installation d'un chauffage et de sanitaires. L'entrepreneur a établi deux devis, l'un de 24 370 fr.40 pour le chauffage et l'autre de 26 884 fr.20 pour les sanitaires.
Les travaux ont débuté le 23 septembre 1996. B._ a tout d'abord démonté l'ancienne chaudière, puis mis en place la nouvelle. Le 17 octobre 1996, A._ a payé un premier acompte de 19 400 fr. Le 29 octobre 1996, l'entrepreneur a exigé un deuxième acompte de 25 000 fr.; A._ a refusé de le régler. A la suite de divergences, les parties ont échangé une correspondance abondante. Par télécopie du 31 mars 1997 adressée au mandataire de l'entrepreneur, A._ a mis un terme aux relations contractuelles.
Les travaux ont débuté le 23 septembre 1996. B._ a tout d'abord démonté l'ancienne chaudière, puis mis en place la nouvelle. Le 17 octobre 1996, A._ a payé un premier acompte de 19 400 fr. Le 29 octobre 1996, l'entrepreneur a exigé un deuxième acompte de 25 000 fr.; A._ a refusé de le régler. A la suite de divergences, les parties ont échangé une correspondance abondante. Par télécopie du 31 mars 1997 adressée au mandataire de l'entrepreneur, A._ a mis un terme aux relations contractuelles.
B. B.a Le 2 juin 1997, B._ a adressé au Président du Tribunal du district de rue une requête de preuve à futur, qui tendait à la mise en oeuvre d'une expertise destinée à déterminer la nature et la qualité des travaux exécutés par l'entrepreneur, ainsi que le solde dû par A._. L'expertise a été confiée à C._, du Bureau C._ Ingénieurs-Conseils SA. Dans son rapport du 18 décembre 1997, l'expert est arrivé à la conclusion que les travaux réalisés représentaient 20 863 fr. pour le chauffage et 9485 fr. pour les sanitaires, soit 30 348 fr. au total, indépendamment d'éventuels rabais et escompte.
B.b Le 3 mars 1998, B._ a introduit contre A._ une action en paiement de 15 948 fr., plus intérêts, soit 10 948 fr. - correspondant à la valeur des travaux exécutés à dire d'expert après déduction de l'acompte de 19 400 fr. - et 5000 fr. à titre de dommages-intérêts.
Une nouvelle expertise judiciaire a été ordonnée. Elle a été confiée à D._, du Bureau d'études Chauffage - Ventilation - Climatisation. L'expert a estimé la valeur des travaux sanitaires à 3580 fr.; il n'a pas évalué les travaux de chauffage, soulignant toutefois que l'acompte de 19 400 fr. couvrait largement les prestations fournies par l'entrepreneur.
Par jugement du 8 janvier 2003, le Tribunal civil du district de Boudry a condamné A._ à payer à B._ 12 423 fr. avec intérêts à 5% dès le 3 mars 1998; ce montant correspond à 28 848 fr. pour les travaux exécutés et 2975 fr. à titre de dommages-intérêts, moins 19 400 fr. d'acompte.
Par arrêt du 20 juin 2003, la Cour de cassation civile du Tribunal cantonal du canton de Neuchâtel a rejeté le recours déposé par la défenderesse.
Par arrêt du 20 juin 2003, la Cour de cassation civile du Tribunal cantonal du canton de Neuchâtel a rejeté le recours déposé par la défenderesse.
C. A._ forme un recours de droit public. Elle conclut à l'annulation de l'arrêt cantonal.
B._ propose le rejet du recours.
Pour sa part, la cour cantonale se réfère aux considérants de son arrêt.
Parallèlement, A._ a interjeté un recours en réforme.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. 1.1 Conformément à la règle générale de l'art. 57 al. 5 OJ, le recours de droit public sera traité avant le recours en réforme.
1.2 Le recours de droit public est ouvert contre une décision cantonale pour violation des droits constitutionnels des citoyens (art. 84 al. 1 let. a OJ).
Saisi d'un tel recours, le Tribunal fédéral n'examine que les griefs d'ordre constitutionnel invoqués et suffisamment motivés dans l'acte de recours (art. 90 al. 2 let. b OJ; <ref-ruling> consid. 2.1 p. 120; <ref-ruling> consid. 1c p. 53/54 et les arrêts cités).
L'arrêt attaqué a été rendu en dernière instance cantonale et ne peut être attaqué par aucun autre moyen de droit sur le plan fédéral, s'agissant du grief de violation directe d'un droit de rang constitutionnel (art. 84 al. 2 et art. 86 al. 1 OJ).
La recourante est personnellement touchée par la décision entreprise, qui la déboute de ses conclusions libératoires, de sorte qu'elle a un intérêt personnel, actuel et juridiquement protégé à ce que l'arrêt n'ait pas été rendu en violation de ses droits constitutionnels; en conséquence, elle dispose de la qualité pour recourir (art. 88 OJ).
Interjeté en temps utile (art. 89 al. 1 OJ) dans la forme prévue par la loi (art. 90 al. 1 OJ), le recours est recevable à cet égard.
Interjeté en temps utile (art. 89 al. 1 OJ) dans la forme prévue par la loi (art. 90 al. 1 OJ), le recours est recevable à cet égard.
2. Sous le titre «Déni de justice», la recourante reproche aux juges cantonaux d'avoir violé son droit d'être entendue en n'examinant pas tous les griefs d'arbitraire dans l'appréciation des preuves qu'elle avait soulevés à l'encontre du jugement de première instance.
2.1 La jurisprudence a déduit du droit d'être entendu (art. 29 al. 2 Cst.) le devoir pour l'autorité de motiver sa décision, afin que le destinataire puisse la comprendre, l'attaquer utilement s'il y a lieu et que l'autorité de recours puisse exercer son contrôle. Pour répondre à ces exigences, il suffit que le juge mentionne, au moins brièvement, les motifs qui l'ont guidé et sur lesquels il a fondé sa décision, de manière à ce que l'intéressé puisse se rendre compte de la portée de celle-ci et l'attaquer en connaissance de cause (<ref-ruling> consid. 2b; <ref-ruling> consid. 2c; <ref-ruling> consid. 2a). L'autorité n'a pas l'obligation d'exposer et de discuter tous les faits, moyens de preuve et griefs invoqués par les parties, mais elle peut au contraire se limiter à ceux qui, sans arbitraire, lui apparaissent pertinents (<ref-ruling> consid. 2b; <ref-ruling> consid. 2c p. 57 et les arrêts cités).
Par ailleurs, il y a violation du droit d'être entendu si l'autorité ne satisfait pas à son devoir minimal d'examiner et de traiter les problèmes pertinents (<ref-ruling> consid. 2b; <ref-ruling> consid. 2a; <ref-ruling> consid. 2c).
2.2 S'agissant des travaux exécutés par l'intimé et de leur valeur, le juge de première instance s'est fondé sur l'expertise C._, qui comprenait notamment le détail des travaux réalisés, au contraire de l'expertise D._. Saisie d'un recours en cassation, la cour cantonale a jugé que la recourante n'avait pas démontré en quoi les motifs ayant conduit le premier juge à préférer l'expertise C._ auraient été critiquables. Elle a ajouté que le décompte présenté par la recourante se fondait sur l'expertise D._, écartée à juste titre, voire sur de simples allégations non établies.
Certes succincte, la motivation de l'arrêt attaquée doit être considérée comme suffisante au regard des exigences du droit d'être entendu. Au surplus, la cour cantonale s'est prononcée sur les calculs effectués par la recourante, contrairement à ce que celle-ci prétend dans son acte de recours. Le moyen tiré de la violation du droit d'être entendu est dès lors mal fondé.
Certes succincte, la motivation de l'arrêt attaquée doit être considérée comme suffisante au regard des exigences du droit d'être entendu. Au surplus, la cour cantonale s'est prononcée sur les calculs effectués par la recourante, contrairement à ce que celle-ci prétend dans son acte de recours. Le moyen tiré de la violation du droit d'être entendu est dès lors mal fondé.
3. Invoquant l'art. 9 Cst., la recourante se plaint d'une appréciation arbitraire des preuves. Elle reproche au Tribunal de district, suivi par la Cour de cassation civile, d'avoir repris les montants indiqués dans l'expertise C._; or, plusieurs des faits ainsi retenus seraient absolument incompatibles avec les autres preuves réunies, en particulier avec l'expertise D._. Tant pour les travaux de chauffage que pour l'installation des sanitaires, la recourante dresse une liste des moins-values qui n'auraient arbitrairement pas été prises en compte par la cour cantonale.
3.1 Selon la jurisprudence, une décision est arbitraire lorsqu'elle est manifestement insoutenable, méconnaît gravement une norme ou un principe juridique clair et indiscuté, ou encore heurte de manière choquante le sentiment de la justice et de l'équité. Il ne suffit pas que sa motivation soit insoutenable; encore faut-il que la décision apparaisse arbitraire dans son résultat. A cet égard, le Tribunal fédéral ne s'écarte de la solution retenue que si celle-ci apparaît insoutenable, en contradiction manifeste avec la situation effective, adoptée sans motif objectif et en violation d'un droit certain. Il n'y a pas arbitraire du seul fait qu'une autre solution paraît également concevable, voire même préférable (<ref-ruling> consid. 2.1 p. 9 et les arrêts cités).
En matière d'appréciation des preuves, il y a arbitraire lorsque l'autorité ne prend pas en compte, sans raison sérieuse, un élément de preuve propre à modifier la décision, lorsqu'elle se trompe manifestement sur le sens et la portée d'un tel élément, ou encore lorsqu'elle tire des constatations insoutenables des éléments recueillis (<ref-ruling> consid. 2.1; <ref-ruling> consid. 2a p. 41; <ref-ruling> consid. 4a).
Concernant plus particulièrement l'appréciation du résultat d'une expertise, le juge n'est en principe pas lié par ce dernier. Mais s'il entend s'en écarter, il doit motiver sa décision et ne saurait, sans motifs déterminants, substituer son appréciation à celle de l'expert, sous peine de verser dans l'arbitraire. En d'autres termes, le juge qui ne suit pas les conclusions de l'expert, n'enfreint pas l'art. 9 Cst. lorsque des circonstances bien établies viennent en ébranler sérieusement la crédibilité (<ref-ruling> consid. 1c p. 160; <ref-ruling> consid. 8a p. 274; <ref-ruling> consid. 1c p. 146 et les arrêts cités). Si, en revanche, les conclusions d'une expertise judiciaire lui apparaissent douteuses sur des points essentiels, il doit recueillir des preuves complémentaires pour tenter de dissiper ses doutes. A défaut, en se fondant sur une expertise non concluante, il pourrait commettre une appréciation arbitraire des preuves et violer l'art. 9 Cst. (ATF <ref-ruling> consid. 1c p. 146).
Lorsque l'autorité cantonale juge une expertise concluante et en fait sien le résultat, le Tribunal fédéral n'admet le grief d'appréciation arbitraire que si l'expert n'a pas répondu aux questions posées, si ses conclusions sont contradictoires ou si, de quelque autre façon, l'expertise est entachée de défauts à ce point évidents et reconnaissables, même sans connaissances spécifiques, que le juge ne pouvait tout simplement pas les ignorer (arrêt 5P.457/2000 du 20 avril 2001, consid. 4a). Il n'appartient pas au Tribunal fédéral de vérifier si toutes les affirmations de l'expert sont exemptes d'arbitraire; sa tâche se limite bien plutôt à examiner si l'autorité intimée pouvait, sans arbitraire, se rallier au résultat de l'expertise. Si elle est confrontée à plusieurs expertises judiciaires et qu'elle se rallie aux conclusions de l'une d'elles, l'autorité cantonale est tenue de motiver son choix. Dans un tel cas, le Tribunal fédéral n'admet le grief d'appréciation arbitraire des preuves que si cette motivation est insoutenable ou si le résultat de l'expertise préférée par l'autorité cantonale est arbitraire pour l'un des motifs susmentionnés (cf. arrêt 5P.187/2001 du 29 octobre 2001, consid. 2a; arrêt précité du 20 avril 2001, consid. 4a).
3.2 Selon l'arrêt attaqué, le premier juge a indiqué les motifs qui l'ont conduit à préférer l'expertise C._ à l'expertise D._ et la recourante n'a pas démontré en quoi le raisonnement du Tribunal de district serait critiquable.
En ce qui concerne les travaux de chauffage, le premier juge a exposé que le montant articulé par l'expert C._ paraissait plausible et n'était pas «le fruit d'une estimation hasardeuse de l'expert». Il a relevé que l'expert C._ avait pris la peine de détailler, dans un tableau annexé à son rapport, la constatation des travaux effectués, alors que le second expert avait négligé de le faire pour justifier sa position. Sur la base de l'expertise C._, le tribunal a constaté que les cinq sixièmes des travaux devisés avaient été exécutés; or, en appliquant ce rapport au montant du devis, on obtenait la valeur de 20 863 fr. pour les travaux de chauffage, ce qui correspondait à la somme indiquée par l'expert C._. Sur ce point, le Tribunal de district a encore remarqué que le rapport d'expertise D._ n'était guère utile parce qu'il ne donnait aucune indication précise et se bornait à formuler des approximations globales sans explication.
Concernant les travaux sanitaires, la différence entre les deux expertises judiciaires est très sensible, dans la mesure où l'expert C._ a estimé le travail de l'entrepreneur à 9485 fr. alors que l'expert D._ l'a évalué à 3580 fr. A cet égard, le tribunal, dont la Cour de cassation civile a repris l'argumentation, a reproché à l'expertise D._ son manque de transparence et de justificatifs, alors qu'il a considéré le montant indiqué par l'expert C._ «comme tout à fait plausible».
3.3 Le Tribunal de district, suivi par la cour cantonale, a expliqué pour quelles raisons il privilégiait l'expertise C._. Ces motifs, liés essentiellement à la précision de la première expertise par rapport à la seconde, ne sont pas entachés d'arbitraire. Il n'apparaît pas non plus que l'expertise C._ était affectée de défauts si évidents et reconnaissables que le juge ne pouvait les ignorer. En ce qui concerne les travaux effectués dans le domaine sanitaire, la recourante conteste la pose des tuyaux en fonte. A cet égard, s'il mentionne bien la pose de ces tuyaux dans la première partie de son rapport, l'expert C._ reprend, dans son tableau final, le prix TTC de 702 fr.60, correspondant au montant facturé par l'intimé pour la fourniture de ces éléments et de leurs accessoires (p. 6/4 du dossier annexé au rapport de preuve à futur). Dans ces conditions, le juge ne saurait avoir retenu arbitrairement un montant pour un travail qui n'aurait pas été effectué. Quant à l'exécution en fonte plutôt qu'en Geberit, elle a été jugée équivalente par l'expert C._ et le Tribunal fédéral saisi d'un recours de droit public pour arbitraire n'a pas à revenir sur ce point. Pour le reste, les calculs de la recourante se présentent largement comme une critique appellatoire des montants de l'expertise C._, repris dans le jugement de première instance et confirmés dans l'arrêt attaqué (cf. <ref-ruling> consid. 1c p. 414/415).
Il s'ensuit que les montants figurant dans l'expertise C._ pouvaient, de façon soutenable, être jugés préférables aux évaluations globales et forfaitaires de l'expert D._. Le grief fondé sur une appréciation arbitraire des preuves doit être rejeté.
Il s'ensuit que les montants figurant dans l'expertise C._ pouvaient, de façon soutenable, être jugés préférables aux évaluations globales et forfaitaires de l'expert D._. Le grief fondé sur une appréciation arbitraire des preuves doit être rejeté.
4. En dernier lieu, la recourante reproche à la Cour de cassation une application arbitraire des dispositions de la procédure cantonale, régissant notamment les expertises.
Sur ce point, le grief se confond avec le moyen tiré d'une appréciation arbitraire des preuves, singulièrement des expertises ordonnées dans le cadre de ce litige. Il n'y a dès lors pas lieu d'entrer en matière.
Sur ce point, le grief se confond avec le moyen tiré d'une appréciation arbitraire des preuves, singulièrement des expertises ordonnées dans le cadre de ce litige. Il n'y a dès lors pas lieu d'entrer en matière.
5. Sur le vu de ce qui précède, le recours sera rejeté dans la mesure où il est recevable.
La recourante, qui succombe, prendra à sa charge les frais judiciaires (art. 156 al. 1 OJ). Par ailleurs, elle versera à l'intimé une indemnité à titre de dépens (art. 159 al. 1 OJ).

Par ces motifs, le Tribunal fédéral prononce:
Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté dans la mesure où il est recevable.
1. Le recours est rejeté dans la mesure où il est recevable.
2. Un émolument de 2000 fr. est mis à la charge de la recourante.
2. Un émolument de 2000 fr. est mis à la charge de la recourante.
3. La recourante versera à l'intimé une indemnité de 2500 fr. à titre de dépens.
4. Le présent arrêt est communiqué en copie aux mandataires des parties et à la Cour de cassation civile du Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 11 novembre 2003
Au nom de la Ire Cour civile
du Tribunal fédéral suisse
Le Président: La Greffière: