Material de Curso de Iniciación a la Programación
Diapositivas: http://slides.com/devcexx/intr_prog_acm#/
-
¿Qué es programar?
- Paradigmas de la programación
- ¿Para qué nos sirve?
- La programación con Java
-
Elementos básicos de la programación en Java
- Variables, condiciones, repeticiones y organización.
- Variables
- Tipos
- Operadores
- Condicionales
- Funciones
- Recursión
- Arrays
- Loops
- Switch
En la terminal (cmd en Windows):
javac nombre_fichero.java #Compilar
java nombre_fichero #Ejecutar un fichero que contenga un "main"
Si alguno de estos comandos no os se encuentran, revisad que Java está bien instalado: acmupm.es/instalar_java
No hace falta ejecutar los ejercicios. Se pueden hacer en papel simplemente. Recomendamos que si una vez pensados y hechos, se quieren probar, se mire la parte de recursos de ejecutar un programa
CONSETO 0: Si tras 5 minutos no se te ocurre como hacer un ejercicio, búscalo en Google. Nunca lo busques si no lo has pensado. Si no es vital para avanzar, tampoco hace falta buscarlo, es mejor seguir pensando en otro momento.
CONSETO 1: JAMÁS copies y pegues código. Primero trata de entenderlo, una vez lo hayas entendido, escríbelo a mano.
Comenzaremos con unos ejercicios sencillos para poner en práctica la definición de funciones y el uso de condicionales:
- Dado un número que te de el siguiente (incremento)
- Definir la función que toma 2 números y devuelve el mayor de ellos.
- Definir la función que toma 3 números y devuelve el mayor de ellos.
Y para trabajar un pelín la recursión:
- Definir una función que calcule el factorial de forma recursiva.
- Definir mediante recursión la función de la potencia, que recibe una
base
y unexponente
. - Definir una función que calcule el número
n
de fibbonaci de forma recursiva.
Ahora vamos a repasar unos conceptos que se olvidan mucho de java, que es cómo declarar arrays.
- Declarar un array sin inicializar.
- Declarar un array de tipo
int
e inicializarlo con tamaño 10. - Declarara un array de tipo
int
e inicializarlo en el momento con valores1, 2, 3
CONSETO 3: La perfección se consigue con el tiempo. Si no te acuerdas bien cómo era algo exactamente, déjalo indicado. Ya volverás a ello más adelante o preguntarás cómo se hace.
Y para mezclar lo dado:
- Mirar cómo se recorre de forma recursiva un array. Está en las diapositivas
- Dado un array de
int
, devolver el mayor número contenido en él.
Exisiten muchas webs donde se puede aprender a programar a medida que haces pequeños ejercicios. Os dejamos por aquí una selección de webs que recomendamos.
- Codewars https://www.codewars.com/ :: Multitud de lenguajes y todo tipo de niveles. Pon ACM UPM como clan al registrarte si quieres conocer nuestra clasificación.
- Uva online https://uva.onlinejudge.org/ :: Programación competitiva. La mayor colección de problemas de programación. Todo un referente mundial de ejercicios que mantiene la Universidad de Valladolid. Concursos como ICPC de la ACM tienen el mismo tipo de funcionamiento que esta web.
Es importante tener un buen entorno de programación, que nos entienda y lo entendamos. De esta manera se creará una sinergia entre persona y máquina que nos ofrecerá la oportunidad de escribir código.
Recomendamos mucho alejarse de los IDEs. Los IDEs, como Eclipse, pueden ser muy bueno para programar en Java, pero no para programar en general. Es decir, no nos interesa aprender Java, nos interesa aprender a programar.
Como solución a esto planteamos una serie de alternativas que harán que aprendamos muchos más sin necesariamente sufrir (mucho):
- Emacs, un editor amado, una curva de aprendizaje lenta y larga que se ve recompensada en el futuro siendo la herramienta más versátil de todas.
- Vim, un editor amado (y odiado). Históricas batallas entre estos dos editores. Cada persona funcionará mejor con uno de estos dos. No es quien programa quien elige el editor, es el editor el que te elige a ti.
- Sublime Text, el editor de fácil entrada. Tiene atajos que nos resultarán familiares y con un buen diseño. Ideal para empezar, quiźa no tanto para quedarse.
- Notepad++. Bueno. Algien te dirá que haces bien.
Para poder ejecutar un archivo java es necesario que tenga cierta estrutura. La plantilla base es:
class Clase {
// Zona donde se definen funciones
public static void main ( String [] args ) {
// Zona de código que se ejecuta
}
}