Module Catalogues, Xi'an Jiaotong-Liverpool University   
Module Code: MFE106TC
Module Title: Advanced Language programme design
Module Level: Level 1
Module Credits: 2.50
Academic Year: 2020/21
Semester: SEM1
Originating Department: School of Intelligent Manufacturing Ecosystem, Taicang
Pre-requisites: N/A
The module has the following aims

• to introduce concepts and principles of problem solving using advanced language programme design;

• to discuss the construction of appropriate algorithms for the solution of certain types of problems;

• to demonstrate principles underlying the design of a high level programming language;

• to give students experience and confidence in the use of a high level programming language to implement algorithms.
Learning outcomes 
A understand the principles and practice of object oriented analysis and the design in the construction of robust, maintainable programs which satisfy their specifications;

B be competent to design, write, compile, test, debug and execute straightforward programs using a high level language;

C appreciate the principles of object oriented programming;

D be aware of the need for a professional approach to design and the importance of good documentation to the finished programs.
Method of teaching and learning 
Students will be expected to attend two hours of formal lectures as well as to participate in one-to-two hours of supervised practicals in a computer lab in a typical week. Lectures will introduce students to the academic content and practical skills which are the subject of the module, while computer practicals will allow students to practice those skills. In addition, students will be expected to devote time to solve continuous assessment tasks and private study. Private study will provide time for reflection and consideration of lecture material and background reading. Continuous assessment will be used to test to what extent practical skills have been learnt—in particular, assessment tasks will be solved individually and each solution comprises the resolution, using sound software engineering techniques, of the given problems expressed in terms of a requirements statement.
Throughout this syllabus, the conceptual aspects of problem solving, algorithm design and the nature of data are expressed alternately with the more specific and implementation-directed aspects of programming and the importance of a reliable, robust and maintainable solution. It is expected that, in teaching the module, the lecturer will further integrate and intermingle these vital topics with the technical aspects of the syllabus.

1. Software development Introduction to programming languages; software engineering; and the principles of object oriented programming.

2. Data types and simple programs Variables, data, and assignments; simple Java programs;

3. Categories of data and introduction to data types, wrapper classes;

4. Data input/output; arithmetic and the math calls (plus note on method calls), the character type, expressions and statements;

5. Inheritance and class hierarchies; type conversion;

6. Casting; creating a test harness, debugging strategies; black-box, white-box testing.

7. Branching Selection (if-else); selection (switch) and menu interfaces using switch statements.

8. Loops For loop, more on for loop and while loops and the break statement; do-while loops, nested loops; random number generation.

9. One-dimensional arrays Definition; declaration; initialisation; array processing, unconstrained arrays; array iteration; iterators in general; program errors and testing review.

10. Strings Definition; declaration; initialisation; string manipulation.

11. Methods Definition; access modifiers; other modifiers; method calls and parameter passing in Java; parameter passing in general (call-by-value; call-by-reference; call-by-name).

Recursion Lectures

12. Classes Definition; use of classes; principles for class design (modular programming, abstract data types, encapsulation, coupling and cohesion); class inheritance revisited; Objects and classes; Object creation; Objects versus variables; Class variables and instance variables; Subclasses and superclasses; Method inheritance; Method overloading; Invocation of superclass methods and constructors; Encapsulation: public, private and protected instance variables and methods

Delivery Hours  
Lectures Seminars Tutorials Lab/Prcaticals Fieldwork / Placement Other(Private study) Total
Hours/Semester 26    6  10    33  75 


Sequence Method % of Final Mark
1 Lab Practice 30.00
2 Course Work 20.00
3 Exam 50.00

Module Catalogue generated from SITS CUT-OFF: 12/16/2019 7:24:23 AM