Un crucigrama típico implica una cuadrícula con cuadrados negros, que el solucionador no debe completar, y cuadrados blancos que el solucionador usa para ingresar sus respuestas. La información proviene del solucionador que resuelve la respuesta a las pistas dadas. Estas pistas tienen una orientación, una longitud y un número asociado con su posición relacionada dentro de la cuadrícula. La diferencia fundamental entre un crucigrama típico y un crucigrama críptico son las pistas mismas.
Los crucigramas crípticos son un tipo de rompecabezas popular que se encuentra en muchas partes del mundo. La mayoría de los periódicos nacionales de la Commonwealth publicarán diariamente crucigramas crípticos de diversa dificultad.
Los crucigramas crípticos son un estilo único de crucigramas, en el que la respuesta a cada pista dada es un acertijo de palabras. Sólo se puede obtener una respuesta si la pista críptica se lee de la manera correcta. A menudo, cuando la pista se lee superficialmente, no tiene ningún sentido. El desafío es encontrar una manera en que la lectura de la pista conduzca a una solución. Para ayudar a resolver crucigramas crípticos, las pistas están escritas dentro de categorías específicas, como inversiones y anagramas, que tienen características individuales.
Muchos usuarios a menudo pueden frustrarse cuando una pista parece no tener solución. Es la amplia gama de posibles pistas lo que a menudo hace que la resolución no sólo sea desafiante sino también interesante.
Fundamentalmente, el objetivo general de este proyecto es desarrollar un software que sea capaz de resolver cualquier tipo de pista de crucigrama críptico.
Dentro de este proyecto grupal, se entregarán tres componentes. El primer producto final es el software funcional final. Mientras que el segundo y tercer entregables son informes escritos. El segundo entregable es un informe escrito en grupo que comprende todos los detalles de la investigación y la implementación del producto de software. El entregable final será el análisis individual de cada miembro y la evolución del proyecto en su conjunto.
Con base en los antecedentes proporcionados y la información del problema, podría ser posible desarrollar un producto que pueda resolver el problema dado.
El producto final sería una pieza de software capaz de comprender una pista determinada e intentar deducir cuál es la respuesta a esa pista. Esto requeriría que el software tuviera algún tipo de componente de procesamiento del lenguaje natural, así como uno o más algoritmos de crucigramas crípticos. Una vez que una pista ha sido "adivinada" correctamente, simplemente se puede devolver al usuario. Es en "adivinar" la respuesta en lo que se centrará principalmente este proyecto.
Para obtener la máxima cobertura de usuario, el software debe tener una interfaz fácil de usar. La razón principal de esto es que la alfabetización informática
En este módulo (CMP3410), los alumnos se forman en grupos de tres a cinco desarrolladores y se les asignan tareas específicas de desarrollo de software, que culminan en la producción de un software funcional. Siempre que sea posible, estos proyectos serán para clientes "reales", a menudo las empresas donde los estudiantes trabajaron en sus prácticas industriales. Un miembro del personal académico asume un papel activo como director de proyecto de cada grupo y proporciona apoyo tutorial en el examen de los procesos involucrados. En particular, el tutor dirige la investigación de métodos y técnicas de gestión de proyectos relevantes para el desarrollo de software. Los grupos utilizan herramientas y entornos de software modernos en la realización de su proyecto.
Los principales objetivos del módulo son: