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 | ||||||||||||||||
|
|||||||||||||||||
Assessment components |
|
||||||||||||||||
Running in 2017/18(Please note that module timeslots are subject to change) |
|
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