Faits : A. Par jugement du 7 juin 2017, le Tribunal de police de l'arrondissement de La Côte a constaté que X._ s'était rendu coupable d'actes d'ordre sexuel avec des enfants et l'a condamné à une peine pécuniaire de 180 jours-amende avec sursis pendant deux ans et à une amende de 300 francs. B. Par jugement du 11 janvier 2018, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a rejeté l'appel de X._. La cour cantonale a retenu les faits suivants: Le 30 juin 2016, à la plage de B._, alors que des élèves de plusieurs classes d'éducation physique et sportive de C._ jouaient au football au cours d'une sortie scolaire, X._, né en 1970, qui passait par là, s'est intégré au jeu des enfants et a improvisé un match. Lors de ce match, X._ a délibérément touché les fesses de D._, né en 2004, par-dessus les vêtements, ainsi que, pendant quelques secondes, les parties génitales de E._, né en 2003, par-dessus le short de bain, avec la main à plat et de manière appuyée. La mère de celui-ci a déposé plainte le 2 juillet 2016. C. X._ forme un recours en matière pénale au Tribunal fédéral contre ce jugement. Principalement, il conclut à la réforme du jugement en ce sens qu'il est libéré du chef de prévention d'actes d'ordre sexuel avec des enfants. Subsidiairement, il conclut à l'annulation du jugement attaqué et au renvoi de la cause à la cour cantonale pour nouvelle décision. Il sollicite par ailleurs l'octroi de l'assistance judiciaire.