This module uses JavaScript (ECMAscript) to introduce the fundamental principles of procedural computer programming and scripting languages. It reinforces these concepts by practical application in the context of automated web browser and document manipulation. Fundamental programming topics include data types, operators, variables, flow control via selection and iteration, arrays and objects, functional abstraction, methods and constructors, abstract data types and pattern matching. Applications include manipulation of web browsers and documents, dynamic generation of web content, and form verification via regular expressions. The module concludes with a brief overview of a range of other common programming languages.

Learning outcomes: Upon successful completion of this course, you will have an understanding of the basic principles of procedural computer programming. You will be able to apply this knowledge in order to embed scripts within HTML documents to affect behaviour of web browsers and document content and appearance, and to generate HTML-based web content dynamically. You will be able to write scripts to perform simple form verification using pattern matching and regular expressions. You will have a basic undestanding of the similarities and differences between JavaScript and a range of other common programming languages.

Sessions: The following is the schedule for the last academic session and may be subject to change.
Session 1 - Introduction, Overview and Programming Fundamentals
Session 2 - Boolean Expressions and Conditional Statements
Session 3 - Repetition Statements
Session 4 - Objects and Arrays
Session 5 - Lab revision Q&A session
Session 6 - Functions, Methods and Constructors
Session 7 - Form Input and HTML Output
Session 8 - Regular expressions
Session 9 - Some Example Programs Using String Methods
Session 10 - An Overview of Some Other Programming Languages

Reading list:

Jones, D., & Monk, K. (2017). Javascript: Novice to ninja; Sitepoint
McPeak, J., & Wilton, P. (2015). Beginning JavaScript® (1st ed.); Wiley
Pollock, J., (2019). JavaScript: A Beginner’s Guide, Fifth Edition; McGraw-Hill

Prerequisites: There are no formal prerequisites for this module, although a basic understanding of HTML and basic computer and I.T. literacy are assumed.