CS5004 - Emerging Programming Platforms and Technologies (2023/24)
Module specification | Module approved to run in 2023/24 | ||||||||||||||||
Module title | Emerging Programming Platforms and Technologies | ||||||||||||||||
Module level | Intermediate (05) | ||||||||||||||||
Credit rating for module | 30 | ||||||||||||||||
School | School of Computing and Digital Media | ||||||||||||||||
Total study hours | 300 | ||||||||||||||||
|
|||||||||||||||||
Assessment components |
|
||||||||||||||||
Running in 2023/24(Please note that module timeslots are subject to change) | No instances running in the year |
Module summary
This module will introduce students to major contemporary programming platforms and technologies and provide them with practical understanding and techniques, to tackle programming issues related to the program scale, complexity and programming productivity. Studying the module will also enable students to evaluate, select and employ suitable platform(s) and technologies for program design and implementation for both stand-alone and web-enabled applications.
The module aims to:
address programming issues when the program size increases e.g. complexity, scalability and productivity.
familiarise students with major programming platforms/technologies to handle the addressed issues
Class libraries, APIs
Components
Frameworks
Development platforms and current IDEs
enable students to evaluate, select and use suitable programming technologies for program design and implementation.
Prior learning requirements
Successful completion of level 4 or equivalent
Syllabus
Comparative introduction of major industrial standard technologies for example: Java technologies, Microsoft.NET, and Open source (e.g. PHP & MySQL) from business and technological perspectives. LO1,LO3,LO5,LO6
Common data structures concepts and using the chosen programming language, e.g. Java Collections classes/APIs, to implement data structures, e.g., array lists, linked lists, stacks, queues, sets, etc. LO1,LO2,LO6
Programming with software components and frameworks, e.g. Java beans, visual development framework, data persistence framework, XML, PHP, etc. LO2,LO3,LO4,LO5
Features of, and hands-on skills to use, the chosen platform integrated development environment, e.g. NetBeans and/or Eclipse. LO1,LO2,LO3,LO5,LO6
Object-oriented Java visual programming and use of components and frameworks in an IDE, e.g. NetBeans or Eclipse, to build graphical UIs using visual components, connect to databases, and programming CRUD operations, including SQL, data persistence and displaying data LO2,LO3,LO5,LO6
Web application development through programming technologies (using an IDE, e.g. Eclipse), e.g. LO3,LO4,LO5
XML concepts, creating and validating XML documents
Extensible Stylesheet Language (XSL), XSL Transformations (XSLT), Computational Style Sheet (CSS), and XML as a data source
Integrate XML with other languages, e.g. Java, for web applications
Features of open source platforms, e.g. PHP and MySQL, LO3,LO4,LO5
Open source platforms concept
Database driven application with open source and a chosen IDE, e.g. NetBeans, for PHP and MySQL
Connecting to a MySQL database
Ajax for PHP web application
Balance of independent study and scheduled teaching activity
The module will be taught by a combination of lectures and workshops, composed of 1 hours lecture, 2 hours in computer lab each week. The lectures will introduce the main concepts, methods and techniques for emerging programming platforms. While doing the tasks in the workshop, students will have the opportunity to discuss in more detail some of the theoretical and technical issues raised during the lecture. In the workshops the students will apply programming IDEs and techniques to produce design models and software prototypes based on specified tasks/scenarios. Online discuss forum is available via WebLearn. Student peer support is also available from the module lecturers in their office.
Learning outcomes
On successful completion of this module, students will be able to
LO1: know and understand a range of programming concepts, techniques, class libraries and tools which are used to build sizable programs.
LO2: demonstrate a practical understanding of common data structures and apply collection classes APIs to implement data structures in their programs.
LO3: appreciate key features, advantages and drawbacks of current IDEs, and demonstrate practical skills in using an IDE to develop programs of their own using third party components, application frameworks such as visual GUI builder, data persistence and web/enterprise applications.
LO4: demonstrate an understanding of XML concepts, and appreciate the role of XML, AJAX and their applications.
LO5: understand the role of open source technologies, development trends, potential benefits and limitations, and use an open source platform and database connection in real development scenarios.
LO6: evaluate, select and use suitable platforms and technologies for program assignments and case studies.
Assessment strategy
There are two pieces of coursework. The first one will be a group work part and the second will be an individual work. Both will involve analysing, designing, implementing, testing and documenting software applications, aiming at developing students’ skills and knowledge, problem-solving ability. Produced work from coursework will be assessed by report and implemented software, and viva in the workshop. Feedback will be given face-to-face and in written as well.
The third assessment component is exam in the end of the year [LO1-LO6].
Consistent with University policy, formative and summative feedback will be provided at various points throughout the teaching year.
Bibliography
Where possible, the most current version of reading materials is used during the delivery of this module. Comprehensive reading lists are provided to students in their handbooks. Reading Lists will be updated annually.
Textbooks:
Core Text:
• Horstmann, C., 2016; Big Java Late Objects, 2nd edition. John Wiley & Sons.
• Carey, P., 2014; New Perspectives on XML, Comprehensive 3rd Edition; CENGAGE Learning; ISBN-13: 978-1285075822; or, Carey, P (2008); New Perspective on XML, 2nd edition; Course Technology, CENGAGE Learning; ISBN-10: 1-4188-6064-6
• Ullman, L., 2012; PHP and MySQL for Dynamic Web Sites; Peachpit Press; ISBN-10: 0-321-78407-3
Other Texts:
• Horstmann, C., 2016, Big Java Late Objects, 2nd edition. John Wiley & Sons.
• Lewis, J., DePasquale, P., Chase, J., 2016, Java Foundations: Introduction to Program Design and Data Structures. 4th edition, Pearson.
• Nixon, R. 2018; Learning PHP, MySQL & JavaScript 5e. O'Reilly Media
Journals:
• The Computer Journal of the British Computer Society, ISSN 1460-2067 (Electronic); Publisher: Oxford : Oxford Journals, Oxford, UK : Oxford University Press.
Websites:
• Netbeans’ Java EE & Java Web Learning Trail https://netbeans.org/kb/trails/java-ee.html
• Safari Books Online
• W3Schools: https://www.w3schools.com
Electronic Databases:
• ACM Digital Library
• IEEE Xplore/IET Digital Library
• Wiley Online Library
Social Media Sources
Other
• Linda.com