Educational App Development

Preview:

Citation preview

EDUCATIONAL APP DEVELOPMENTCOURSE PROPOSAL

2015-01-03 (YYYY-MM-DD)version 1.0.5

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

JAKUB RŮŽIČKAlinkedin.com/in/littlerosejameslittlerose@gmail.com

OUTLINE

LITERATURE

SYLLABUS

TEACHING METHODS

EXAMINATION

ENTRY REQUIREMENTS

INTENDED LEARNING OUTCOMES

ANNOTATION

ANNOTATION

EDUCATIONAL APP DEVELOPMENT (COURSECODE)

Guarantor: Ing. Bořivoj Brdička, Ph.D.Lecturers: Ing. Bořivoj Brdička, Ph.D.

Mgr. Jakub RůžičkaGuaranteed by: Department of Information Technology

and Technical Education (41-KITTV)Faculty: Faculty of Education, Charles University in PragueSemester: summerCredits (ECTS): ?Language: English

ANNOTATION

The course gives a professional and academic introduction to cross-platform (web) educational application development founded on the understanding of the role of ICT in contemporary education.

INTENDED LEARNING OUTCOMES

INTENDED LEARNING OUTCOMES

Upon completion of the course, the students will:

■ understand the role, impact, and utilization of information and communications technology in education

■ be able to develop simple cross-platform (not only) educational applications using web programming languages and the Python general-purpose language

■ be familiar with other related topics beyond the scope of this course, based on the specialization of their choice (both technical and conceptual skills in a particular area)

ENTRY REQUIREMENTS

ENTRY REQUIREMENTS

This course is beginner-friendly. Everybody is welcome: with and without prior experience in a given field and/or programming experience; visiting and domestic students; students inside and outside the Faculty of Education(we'd love to see collaboration of students across various disciplines).

The course can serve as a door-opening moment for students who want to get started with developing important skills for the 21st Century, as well as for the more experienced ones, who can reinforce and expand their knowledge, learn by helping out their peers, use the course as a platform for developing their own ideas (approaching the lecturers when they need their help), and/or challenge themselves in areas beyond the scope of this course.

EXAMINATION

EXAMINATION

Defense of a simple educational application, developed in teams of 2-3 students, consisting of:

20% theoretical foundations(with an emphasis on a team’s specialization)

20% technical aspects of the project(review of code and its documentation)

40% functional aspects of the project(including suitability for its target group)

20% executive summary, presentation, answers to questions

The course is graded A (>=85%), B (>=70%), C (>=60%), D (>=50%), or E (<50%).A, B or C is needed to pass the course.

MOTIVATION

■ understanding the role of educational technology in today’s world

■ project-based utilization of the knowledge acquired in the first part of the course(theoretical foundations and ideas turned into a real product)

■ getting ready and gaining confidence for developing your own (non-)commercial app(an opportunity to try everything out ‘under supervision’ and get feedback on your work, an opportunity to create something you might want to go live with and put it on your resume =)))

■ practicing teamwork and project management skills

Note: The teams are expected to focus on a particular area (in the field of education) of their choice (the last block of the course will be tailored based on their requirements) and work on a project of extent and difficulty corresponding to the level of their proficiency (feeling ‘challenged’ but not ‘lost’).

TEACHING METHODS

F2F BLOCK TEACHING SESSIONS

■ interactive /live /real-time rather than ‘scripted’

■ lectures including hands-on tutorials /labs

■ BYOD (Bring Your Own Device) as you’ll need to set up and use your own development environment

DISTANCE LEARNING

■ open educational resources suggested for each session

■ Q&A forum(How do I ask a good question? stackoverflow.com/help/how-to-ask)

■ sharing your work in progress and discussing it with others

■ (if you agree) shared notes /study material /wiki /... created by the students of the course and for the students of the course(also reviewed and co-created by the lecturers)

■ voluntary ‘challenges’, development of small educational applications to reinforce your skills

GUEST LECTURERS (POSSIBLY WEBINARS)

■ authors, developers, researchers, prospective employers, …■ expertise in a particular core topic of our course and/or on request

(see session #04)

Note: Make the course our joint project. Let's adjust and approve the course structure and course requirements at the very beginning so that it supports your individual and our common goals (answering all ‘Why?’ questions should boost your self-motivation). Take the initiative and come up with ideas for lectures /course topics /guests /..., get involved by teaching what you know /are good at /what you want to improve in /..., contribute to the development of the course in order to obtain your desired life /professional /academic /... skills.

SYLLABUS

SESSION #01

21st Century Educational Technology

■ technology in education■ emerging literacies, theories (connectivism in detail), and instructional design models■ impact of technology on the future of education■ education research, educational data mining, learning analytics

SESSION #02

App Development: Introduction and Front End

■ programming language landscape■ introduction to web technologies■ introduction to the Linux command line■ introduction to Git

■ HTML5, CSS3, JavaScript, jQuery, Python■ SVG, HTML5 canvas, WebGL, three.js, Processing.js, and more■ UI and graphic design■ responsive web design

SESSION #03

App Development: Back End, Deployment and Beyond

■ SQL (hands-on SQLite) and NoSQL (hands-on MongoDB)■ server-side programming

(hands-on Python Flask and alternatives, including Node.js Express, Ruby on Rails, and PHP)■ user authentication and security, consuming APIs and data processing

■ AJAX, WebSocket■ popular web frameworks, libraries, and other tools

(templating engines, preprocessors, package managers, task runners, …)■ introduction to object oriented, functional, and asynchronous programming■ design patterns, style guides

■ PhoneGap /Apache Cordova (and native app comparison), Windows 10, Ubuntu HTML5■ AWS, Heroku (and alternatives)■ app testing, error handling, optimization, licensing

SESSION #04

Specialization and Final Project

■ discussion of conceptual and technical aspects of the proposed educational apps■ lecture topics based on requirements of the project teams

■ the crucial question of this section of this course is ‘What do you want to learn next?’(what is most meaningful to you with regard to your final project and/or your personal professional /academic goals and interests)

■ the topics can be as general (didactics, gamification, big data, marketing, RaspberryPi, …) or as specific (REST API development, social media integration, …) as you wish

Disclaimer: The content of the course might be subject to change based on pace, level of proficiency, and other requirements of the course group.

LITERATURE

LITERATURE

The students are not required to read any of the following publications and documents but might find them handy when looking for inspiration, reference, sample code, or when some part of the course takes their interest so that they want to follow it up with more in-depth self-directed study. Further online /paperback study resources, tutorials, libraries, frameworks, and other tools will be introduced within specific topics of the course.

Visit the Charles University in Prague Central Catalog at ckis.cuni.cz to access some of the books and/or their alternatives.

■ EDUTECH WIKI. TECFA's, 2015.

■ VOOGT, J.; KNEZEK G. ed. INTERNATIONAL HANDBOOK OF INFORMATION TECHNOLOGY IN PRIMARY AND SECONDARY EDUCATION. Springer International Handbooks of Education, 2009. ISBN: 978-0387733142.

■ PUREWAL, Semmy. LEARNING WEB APP DEVELOPMENT. O'Reilly Media, 2014. ISBN 978-144-9370-190.

■ NIXON, Robin. LEARNING PHP, MYSQL, JAVASCRIPT, CSS. 3rd edition. O'Reilly Media, 2014. ISBN 978-1-4919-4946-7.

■ FULTON, Steve and Jeff FULTON. HTML5 CANVAS. 2nd edition. O'Reilly Media, 2013. ISBN 14-493-3498-9.

■ PETERSON, Clarissa. LEARNING RESPONSIVE WEB DESIGN. O'Reilly Media, 2014. ISBN 9781449362942.

■ MCFARLAND, David S. JAVASCRIPT & JQUERY: THE MISSING MANUAL. O'Reilly Media, 2014. 3rd edition. ISBN 978-1-4919-4707-4.

■ CROCKFORD, Douglas. JAVASCRIPT: THE GOOD PARTS. O'Reilly Media, 2008. ISBN 9780596517748.

■ DAYLEY, Brad. JQUERY AND JAVASCRIPT PHRASEBOOK. Addison-Wesley Professional, 2014. ISBN 0321918967.

■ GASSTON, Peter. THE MODERN WEB. No Starch Press, 2013. ISBN 15-932-7487-4.

■ DAILEY, David, Jon FROST and Domenico STRAZZULLO. BUILDING WEB APPLICATIONS WITH SVG. Microsoft Press, 2012. ISBN 07-356-6012-3.

■ PARISI, Tony. PROGRAMMING 3D APPLICATIONS WITH HTML5 AND WEBGL. O'Reilly Media, 2014. ISBN 978-144-9362-966.

■ DIRKSEN, Jos. LEARNING THREE.JS. 2nd edition. Packt Publishing, 2015. ISBN 978-1784392215.

■ GRINBERG, Miguel. FLASK WEB DEVELOPMENT. O'Reilly Media, 2014. ISBN 14-493-7262-7.

■ WILSON, Jim R. NODE.JS THE RIGHT WAY. The Pragmatic Bookshelf, 2013. ISBN 978-193-7785-734.

■ BROWN, Ethan. WEB DEVELOPMENT WITH NODE AND EXPRESS. O'Reilly Media, 2014. ISBN 978-1-4919-4930-6.

■ LUTZ, Mark. LEARNING PYTHON. 5th edition. O'Reilly, 2013. ISBN 978-144-9355-739.

■ BEAULIEU, Alan. LEARNING SQL. 2nd edition. O'Reilly, 2009. ISBN 978-059-6520-830.

■ CHODOROW, Kristina. MONGODB: THE DEFINITIVE GUIDE. 2nd Edition. O'Reilly Media, 2013. ISBN 14-493-4468-2.

■ SHOTTS, William E. THE LINUX COMMAND LINE. No Starch Press, 2012. ISBN 978-1593273897.

■ CHACON, Scott and Ben STRAUB. PRO GIT. 2nd edition. Apress, 2014. ISBN 978-1484200773.

■ JACKSON, Jeffrey C. WEB TECHNOLOGIES: A COMPUTER SCIENCE PERSPECTIVE. Pearson, 2007. ISBN 978-013-1856-035.

■ CAMDEN, Raymond. APACHE CORDOVA IN ACTION. Manning Publications, 2015. ISBN 9781633430068.

■ STUTTARD, Dafydd and Marcus PINTO. WEB APPLICATION HACKER'S HANDBOOK. 2nd edition. Wiley, 2011. ISBN 978-1118026472.

■ ALCORN, Wade, Christian FRICHOT and Michele ORRÙ. THE BROWSER HACKER'S HANDBOOK. Wiley, 2014. ISBN 978-1118662090.

■ BURNHAM, Trevor. ASYNC JAVASCRIPT. Pragmatic Bookshelf, 2012. ISBN 9781937785277.

■ MACCAW, Alex. THE LITTLE BOOK ON COFEESCRIPT. O’Reilly Media, 2012. ISBN 1449321054.

■ PILLORA, Jamie. GETTING STARTED WITH GRUNT. Packt Publishing, 2014. ISBN 9781783980628.

■ BAUMGARTNER, Stefan. FRONT-END TOOLING WITH GULP, BOWER, AND YEOMAN. Manning Publications, 2016 [expected]. ISBN 9781617292743.

■ FRAIN, Ben. SAAS AND COMPASS FOR DESIGNERS. Packt Publishing, 2013. ISBN 9781849694544.

■ FLANAGAN, David and Yukihiro MATSUMOTO. THE RUBY PROGRAMMING LANGUAGE. O’Reilly Media, 2008. ISBN 0596516177.

■ HARTL, Michael. RUBY ON RAILS TUTORIAL. 3rd edition. Addison-Wesley Professional, 2015. ISBN 0134077709.

http://www.w3schools.com/https://developer.mozilla.orghttps://jquery.com/http://threejs.org/http://processingjs.org/https://www.virtualbox.org/http://www.ubuntu.com/http://stackexchange.com/siteshttp://stackoverflow.com/http://www.reddit.com/https://www.quora.com/https://git-scm.com/https://github.comhttps://bitbucket.org/https://www.python.org/http://flask.pocoo.org/https://nodejs.org/http://expressjs.com/https://www.sqlite.org/https://www.mongodb.org/

http://phonegap.com/https://developer.ubuntu.com/http://developer.android.com/https://developer.apple.com/https://dev.windows.comhttps://www.heroku.com/https://projects.apache.org/indexes/http://www.gnu.org/software/guix/package-list.htmlhttps://jsfiddle.net/http://codepen.io/http://learnpythonthehardway.org/https://github.com/vinta/awesome-pythonhttp://www.fullstackpython.com/https://realpython.comhttps://exploreflask.com/https://www.python.org/dev/peps/pep-0008/

http://www.html5rocks.com/http://html5doctor.com/https://css-tricks.comhttps://www.npmjs.com/http://bower.io/search/https://www.javascripting.comhttps://plugins.jquery.com/http://flask.pocoo.org/extensions/http://www.theodinproject.com/http://www.programmr.com/http://learnxinyminutes.com/https://projecteuler.net/http://coderbyte.com/https://code.org/https://coderdojo.comhttps://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenseshttps://www.owasp.org

https://www.khanacademy.org/https://www.coursera.org/https://www.udacity.com/https://edx.org/http://ocw.mit.edu/http://online.stanford.edu/http://www.extension.harvard.edu/http://webcast.berkeley.edu/http://nptel.ac.in/http://blog.agupieware.com/2014/05/online-learning-bachelors-level.htmlhttps://www.class-central.com/http://www.tutorialspoint.com/https://iversity.org/https://www.canvas.net/https://www.futurelearn.com/http://www.saylor.org/https://novoed.com/courseshttp://www.edventis.com/http://www.lynda.com/https://www.udemy.com/http://www.codecademy.com/https://www.codeschool.com/http://www.pluralsight.com/

http://tutsplus.com/https://teamtreehouse.com/https://www.raspberrypi.org/https://www.youtube.com/https://www.youtube.com/user/GoogleDevelopershttps://www.youtube.com/user/thenewbostonhttps://www.youtube.com/user/sentdex/https://www.youtube.com/user/MarakanaTechTVhttps://www.youtube.com/user/mycodeschool(…)http://www.ted.com/http://www.howstuffworks.com/https://www.wikipedia.org/http://www.oreilly.com/https://www.packtpub.com/http://www.manning.com/http://eu.wiley.com/http://www.elsevier.com/http://www.nostarch.com/http://store.elsevier.com/Syngress/IMP_76/http://www.pearsoned.co.uk/imprints/addison-wesley/https://pragprog.com/(…)

Self-directed learners, those who prefer distance /blended learning, those who want to know more, or those who don‘t want to rely on one source of information only might want to expand /complement /substitute different parts of the course on:

…and many other [yourfavoritesearchengine] it & learn it resources

EDUCATIONAL APP DEVELOPMENTCOURSE PROPOSAL

2015-01-03 (YYYY-MM-DD)version 1.0.5

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

JAKUB RŮŽIČKAlinkedin.com/in/littlerosejameslittlerose@gmail.com