Introducere practică în Prolog (I)
În programarea logică, ideea de bază este exprimată prin Algorithm = Logic + Control. Componenta Logic vizează descrierea problemei: ce fapte se cunosc şi ce reguli trebuie folosite de către "Control" pentru a deduce ulterior alte fapte (noi).
Componenta Control reprezintă însuşi interpretorul - ori fiinţa raţională - care va "executa" programele; interpretorul de Prolog "aplică" metoda deducerii (plecând de la baza de date furnizată de program) şi un mecanism intern de backtracking recursiv - căutând sistematic valori cu care să "înlocuiască" necunoscutele implicate în scopul satisfacerii clauzelor curente.
În jurul unei probleme de echilibru (II)
Vizăm generarea s-partiţiilor angajând metode generale: căutare "brute force" şi backtracking. Formulăm în C++ şi în Prolog (incluzând un mecanism intern de backtracking, Prolog permite "rezumarea" programului la specificarea condiţiilor necesare pentru soluţii).
În jurul unei probleme de echilibru (I)
Se poate partiţiona {1,2,...,n} în două submulţimi pentru care sumele corespunzătoare să aibă diferenţa dată? Care ar fi minimul acestei diferenţe? Câte astfel de partiţii există (teoremă, program C++) şi cum pot fi generate într-o anumită ordine?
Simpla verificare directă a unui rezultat este mai degrabă neinteresantă şi de obicei încercăm să corelăm verificarea manuală cu aspecte de context; putem găsi astfel posibilităţi de simplificare în program, dar poate rezulta (mai interesant!) şi ideea de a o lua de la capăt…
Linux şi aplicaţii Web în 24 de ore
CCD Vaslui mi-a oferit 24 de ore (în martie-aprilie 2011) de introducere în Linux şi iniţiere în dezvoltarea de aplicaţii Web - pentru profesori de informatică, dar care folosesc curent numai Windows şi nu au experienţă de lucru pe Web.
//web24.docere.ro prezintă (cu cizelarea cuvenită) lecţiile desfăşurate. Aici prezentăm unele elemente de substrat - motivaţii, tehnici metodologice - ale acestei încercări pe 24 de ore.
Aplicaţiile care vizează jocul de şah implică în anumite componente, "Portable Game Notation" (sau PGN) pentru partide şi notaţia FEN pentru poziţii de şah particulare (împreună cu vizualizarea acestora, prin diagrame - ceea ce prilejuieşte unele evidenţieri vizând partajarea codului de către instanţele unui obiect, folosirea metodei replace()
a obiectului String(), utilizarea unei imagini "spacer.gif" pentru a corija comportarea browserului faţă de caracterul "spaţiu").
vezi Cărţile mele (de programare)