module specification

CS5004 - Emerging Programming Platforms and Technologies (2017/18)

Module specification Module approved to run in 2017/18
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
 
81 hours Scheduled learning & teaching activities
219 hours Guided independent study
Assessment components
Type Weighting Qualifying mark Description
Group Coursework 30%   Group Coursework: 1300 words plus software or equivalent per student
Coursework 30%   Individual Coursework: 1300 words plus software or equivalent per student
Unseen Examination 40%   Unseen exam 2 hrs
Running in 2017/18

(Please note that module timeslots are subject to change)
Period Campus Day Time Module Leader
Year North Monday Morning

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.

Prior learning requirements

Successful completion of level 4 or equivalent

Module aims

 To address programming issues when the program size increases e.g. complexity, scalability and productivity~
 To familiarise students with major programming platforms/technologies to handle the addressed issues

  • Class libraries, APIs
  • Components
  • Frameworks
  • Development platforms and current IDEs

 To enable students to evaluate, select and use suitable programming technologies for program design and implementation.

  •  

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.
 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.
 Programming with software components and frameworks, e.g. Java beans, visual development framework, data persistence framework etc.
 Features of, and hands-on skills to use, the chosen platform integrated development environment, e.g. NetBeans and/or Eclipse.
 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
 Web application development through programming technologies (using an IDE, e.g. Eclipse), e.g.

  • 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,

  • 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

Learning and teaching

The module will be taught by a combination of lectures, tutorials and workshops, composed of 1 hours lecture, 2 hour tutorial/computer lab each week for 30 weeks. The lectures will introduce the main concepts, methods and techniques for emerging programming platforms. The tutorials will demonstrate application of those technologies to programming design and development, and 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 hours.

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 an 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 in real development scenarios
LO6:  evaluate, select and use suitable platforms and technologies for program           assignments and case studies.

Assessment strategy

Assessment methods:
- An unseen 2 hour examination (30%)
- coursework (part 1: 35%; part 2: 35%): which consists of two parts: part 1 is group coursework in semester 1 and part 2 is individual coursework for semester 2, to produce software solutions and technical report.

Assessment Profile:
- The unseen examination element tests knowledge such as Java collections, components, beans, XML and open source introduced in the lecture [LO1-LO6].
- Two pieces of coursework are designed to enhance learning by requiring students to design solution using components, class library via an IDEs, XML and open source [LO2, LO4 - LO6].

Timing of assessment:
- The unseen examination is taken by students during the examination period at the end of the semester.
- The coursework assignment Part 1 is published during week 7 and is due for submission in week 12; Part 2 is published during week 22, and due for submission in week 28.

 

Bibliography

David A. Watt and Deryck F. Brown, 2003, Java Collections –an introduction to abstract data types, data structures and algorithms, Wiley, ISBN 0-471-89978-x

Robert Englander, 1997, Developing Java Beans, O’Reilly Media.

Rhawi Dantas, 2011, NetBeans IDE 7.0 Cookbook, PACKT Publishing, UK, ISBN: 978-1-84951-250-3

Cay S. Horstmann, 2011, Big Java for Everyone: Late Objects, ISBN 978-1-1180-8788-6

Harvey Deitel, Paul Deitel, Tem Nieto, Ted Lin, & Praveen Sadhu, 2001, XML How to Program, Prentice Hall, Upper Saddle River, NJ, ISBN 0-13-028417-3

Michael Fitzgerald, 2003, Learning XSLT, O'Reilly & Associates, Inc., Sebastopol, CA,  ISBN 0-596-00327-7.

Stephen Walther, Steve Banick, Jonathan Levine, 2000, Sams Teach Yourself E-Commerce Programming with ASP in 21 Days, 4/E, Sams, ISBN-10: 0672318989