El curso es de naturaleza teórico-práctica y tiene como propósito desarrollar las capacidades para resolver diversos problemas de las ciencias e ingeniería planteando alternativas de solución que utilicen como herramienta la programación imperativa. Se desarrollan las nociones básicas de lógica proposicional con énfasis en la negación, la conjunción y la disyunción. Asimismo, se estudian los conceptos necesarios para el diseño de algoritmos enfatizando la representación de estructuras algorítmicas selectivas e iterativas por medio del diagrama de flujo y el pseudocódigo. Finalmente, se implementarán los algoritmos usando un lenguaje de programación imperativo.