Back to Module List

CMPC2M13 - PROGRAMMING 2

Module Code:
CMPC2M13
Department:
Computing Sciences
Credit Value:
20
Level:
2
Organiser:
Dr. Tony Bagnall
This is a compulsory module for all computing students and is a continuation of 1M0Y/1X04. It contains greater breadth and depth and provides students with the range of skills needed for many of their subsequent modules. We recap Java and deepen your understanding of the language by teaching topics such as nested classes, generics, swing and threaded programming. We will also broaden your programming knowledge by giving you a basic grounding in Matlab and C++.

Lectures will be given using a combination of data monitor and overhead projection. Lecture notes, exercise sheets and other relevant material will be available via Blackboard.  
 


Module texts (and further reading):
 

  • Bruce Eckel, C++: Thinking in C++, 2nd ed. Volume 1  
  • Hanselmann and Littlefield, Matlab: Mastering Matlab
  • Lewis and Loftus, Java: Java Software Solutions. Foundations of Program Design.

Submission

Written coursework should be submitted by following the standard CMP practice. Students are advised to refer to the Guidelines and Hints on Written Work in CMP.

Deadlines

Coursework should be submitted before 23:59 on the deadline day. Paper copies can be submitted via the Hub drop boxes up to 22.00  in the LTS Hub, and there will be a ‘late box’ in the Library for submissions between 22.00 and midnight.

If coursework is handed in after the deadline day or an agreed extension:
 

 

Work submitted Marks deducted
On the day following the due date 10 marks
On either the 2nd or 3rd day after the due date 20 marks
On the 4th day after the due date and before the 20th day after the due date All the marks the work merits if submitted on time (ie no marks awarded)
After 20 working days Work will not be marked and a mark of zero will be entered

All extension requests will be managed through the LTS Hub. A request for an extension to a deadline for the submission of work for assessment should be submitted by the student to the appropriate Learning and Teaching Service Hub, prior to the deadline, on a University Extension Request Form accompanied by appropriate evidence. Extension requests will be considered by the appropriate Learning and Teaching Service Manager in those instances where (a) acceptable extenuating circumstances exist and (b) the request is submitted before the deadline. All other cases will be considered by a Coursework Coordinator in CMP.

Plagiarism

Plagiarism is the copying or close paraphrasing of published or unpublished work, including the work of another student; without due acknowledgement. Plagiarism is regarded a serious offence by the University, and all cases will be investigated. Possible consequences of plagiarism include deduction of marks and disciplinary action, as detailed by UEA's Policy on Plagiarism and Collusion.


Module specific

  • Introduce the C++ programming language and the concept of C++ pointers;  
  • Introduce the Matlab toolkit and demonstrate how it can be integrated with java and C++; 
  • Demonstrate how exceptions can be handled;  
  • Show how generics can make your code more robust;  
  • Illustrate the use of inheritance in;  
  • Introduce the concept of parallel programming in a java context; 
  • Discuss programming patterns; 
  • Teach the fundamentals of GUIs;  
  • Introduce alternative software engineering paradigms such as agile software development and extreme programming. 

Transferable skills

  • To gain further experience in a broad range of IT skills.  
  • To improve the ability to comprehend abstract concepts. 
  • To hone problem solving skills and logical thinking.

On completion of this module students should be able to: 

  • Solve problems using basic C++, matlab and java
  • Understand the differences between the three languages 
  • Appreciate  and compare the space and time efficiency of different algorithms for solving a given problem. 
  • Understand the implementations of standard abstract data types.

Total hours: 52 

Lectures: 30, Hours: 30 Content (with provisional weekly schedule) 

  1. Matlab: creating, inspecting and manipulating variables; vectorisation. 
  2. Matlab: creating scripts and developing functions. programming constructs (control flow, iteration) .  
  3. C++: control structures; data types and pointers;  
  4. C++: Linked lists; input/output; 
  5. C++: classes and objects; inheritance # Java: generics and nested classes. 
  6. Java: using inheritance; maps and sets. 
  7. Reading week 
  8. Java: threaded programming.  
  9. Java: maps and sets; reflection; serialization; GUIs. 
  10. Software engineering methodologies  
  11. Software engineering project management 

Workshops: 0 hours 

Laboratory work:  22 hours (with provisional weekly schedule) 

  1. Matlab
  2. C ++ 
  3. C ++ 
  4. C ++ 
  5. C ++ 
  6. Java 
  7. Java 
  8. Java 
  9. Java 
  10. Java

Examination with Coursework or Project