Operating Systems, End of Semester Research Project: GNU/Linux

Posted on December 4, 2011, at 12:25:00 pm ()

I've started gathering and studying information for my Operating Systems research project, where I am supposed to write about a particular operating system's design/architecture, including process and thread management, memory administration, processor administration, etc. I chose GNU/Linux as my operating system.

Here's a list of online sources of information I've gathered so far:

Gnu_linux_os_internals

If anybody reads this, and has an idea of where I can look for more information on the subject, I would appreciate you shared it with me. :)

Note: I will probably write this in Spanish. I just have that habit of writing in English sometimes.

Comments [0]

Jessica M.: Asignación de Prolog

Posted on March 31, 2011, at 5:03:00 pm ()

Swipl
Parte #1:

Predicados:

father(X, Y) :-
    male(X),
    parent(X, Y).

mother(X, Y) :-
    female(X),
    parent(X, Y).

brother(X, Y) :-
    male(Y),
    parent(Z, X),
    parent(Z, Y),
    \+X=Y.

sister(X, Y) :-
    female(Y),
    parent(Z, X),
    parent(Z, Y),
    \+X=Y.

siblings(X, Y) :-
    parent(Z, X),
    parent(Z, Y).

offspring(X, Y) :-
    parent(X, Y).

male(ray).
male(luis).
male(dan).
male(john).
male(bill).

female(rosa).
female(sue).
female(elaine).
female(ana).

parent(al, sue).
parent(luis, elaine).
parent(luis, ray).
parent(ray, ana).
parent(sue, ana).
parent(rosa, ray).
parent(elaine, bill).


Resultados de preguntas formuladas:

?- sister(ray, X).
X = elaine ;
false.

?- sister(X, elaine).
X = ray ;
false.

?- brother(ray, X).
false.

?- brother(elaine, X).
X = ray ;
false.

?- offspring(luis, X).
X = elaine ;
X = ray.

Parte #2:

Mike is a mountain-climber who does not ski.


Filed under  cco360  logic  prolog 

Comments [0]

Heuristics

Posted on February 27, 2011, at 5:41:00 am ()

Media_httptheorystanf_aejqz

Excelente artículo (en inglés) sobre el uso de heurísticas, particularmente con el algoritmo de búsqueda A*. Está orientado más su aplicación en la programación de videojuegos, pero en fin es la misma cosa. ¿Y qué mejor forma de explicarlo, de hecho, que con los videojuegos? :D


Filed under  A*  cco360  heurísticas 

Comments [2]

Inteligencia Artificial (CCO-360): Resumen de la clase del 25/01/2011

Posted on January 26, 2011, at 8:00:14 pm ()

¡Hola una vez más, compañeros!

En esta ocasión, me ha tocado a mí escribir un resumen sobre lo discutido en la clase de ayer, 25 de enero del 2011.  Resulta que también es el primer resumen que se publica.  :)  Espero hacerlo bien.

Bueno, pues aquí vamos.

Bienvenidos al curso CCO-360, Inteligencia Artificial, con el profesor Vantaggiato. Durante la clase de ayer, el profesor comenzó por hablar sobre nuestro portal del curso, o blog, que se encuentra en la dirección http://ai11.stemmed.sagrado.edu. Se supone que cada estudiante matriculado tenga un blog, desde el cual deberá publicar aquéllas entradas que sean relevantes al curso, y compartir recursos y reflexiones sobre el tema con los demás compañeros. El portal ya tiene una sección desde la cual cada estudiante puede agregar su blog, para que las entradas que publique desde el mismo con la etiqueta "cco360" sean sindicadas. Recuerden que tanto la etiqueta como la contraseña utilizada para agregar su blog son la misma: "cco360". Sin dicha contraseña, su blog no puede ser añadido.

Después de dejar esto aclarado, el profesor procedió a hablar de los algoritmos de búsqueda "depth-first" y "breadth-first". Ambos algoritmos se usan en estructuras que representan redes, y son muy similares entre sí, ya que para los dos, el objetivo principal es hallar un camino que se dirija desde un nodo en la red hacia otro. Por medio de los problemas de búsqueda, se pueden estudiar algoritmos que producen otros algoritmos.

Para realizar las búsquedas, se suele representar la red de nodos como un árbol de búsqueda. Este árbol se irá explorando en un orden o patrón particular, el cual dependerá del algoritmo que se use para hacerlo. Cada nodo en este árbol representa un camino, el cual es representado a la vez por el nodo "terminal", es decir, el nodo en el cual termina dicho camino.

La diferencia entre el algoritmo depth-first y el breadth-first reside en que el primero termina eligiendo el primer camino que encuentre, sea ese no necesariamente la mejor opción.  El depth-first comienza explorando los nodos que quedan a la extrema izquierda del árbol, y de no encontrar el nodo buscado, entonces procede a moverse hacia la izquierda. Mientras, el breadth-first va abriéndose paso poco a poco, extendiendo nodos del árbol, nivel por nivel, hasta hallar el nodo buscado. La siguiente animación es un ejemplo de breadth-first por un árbol de búsqueda:

Ejemplo de breadth-first.

Más ejemplos de recorridos con los distintos algoritmos de búsqueda.

Otro detalle para tener en cuenta es que, para no acabar en un ciclo infinito durante la búsqueda, es necesario llevar cuenta de aquellos nodos que ya han sido recorridos.  Para eso, se suele usar un contenedor como la cola o la pila ("queue" y "stack", respectivamente).  Sin embargo, muchas veces, por llamarlo de alguna forma, se describe a ese contenedor como una cola, a pesar de que en ocasiones no lo es. En el caso de depth-first, por ejemplo: nuevos caminos o nodos son añadidos a la "cola" por el frente o principio de la misma, y no por detrás, al final de la cola.

Es básicamente esto lo que puedo resumir sobre el tema discutido en la clase. Antes de que ésta terminara, el profesor nos adelantó que habrá una nueva tarea mañana jueves. ¡Así que, pendientes todos!

Espero no se me haya quedado algo importante. De ser así, mis disculpas. Y también me disculpo por la demora. Sin embargo, deseo que este resumen les sea de ayuda en alguna forma u otra.

¡Gracias, y hasta una próxima ocasión!

- Jessica M. Vázquez

Comments [0]

E-book: Data Structures and Algorithms with Object-Oriented Design Patterns in Python

Posted on January 26, 2011, at 10:47:00 am ()

Hola, compañeros de CCO-360 (y visitantes)!

Miren este libro gratuito que encontré por ahí: brpreiss.com

El libro habla de estructuras de datos y patrones de diseño orientado a objetos en Python, según el título. :) No lo he leído, pero puede que sea de ayuda. Espero les sirva de algo.

- Jessica M.

Comments [0]

¡Bienvenid@!

Posted on January 19, 2011, at 12:30:00 pm ()

¡Hola!

Para empezar, quisiera introducirme brevemente.

Mi nombre es Jessica, y además de una soñadora incansable, también soy estudiante de Ciencias de Cómputos en la Universidad del Sagrado Corazón, mentora de inglés a tiempo parcial en el Centro de Lenguas y Culturas (LAD) de la misma institución, y desde hace muy poco tiempo, diseñadora y programadora web independiente en mi tiempo libre.

Estoy contenta de finalmente abrir este pequeño espacio digital, el cual existe independientemente de mis otros sitios personales en la web.  El mismo estará dedicado únicamente a mi vida académica.  Espero les agrade lo que hallarán aquí, que finalmente opten por suscribirse al blog, y muchas gracias por su visita.

¡Un fuerte abrazo para todos!
Jessica M. Vázquez

Comments [0]