FIT325 Moddesc PDF
FIT325 Moddesc PDF
FIT5PR2
Programming 2
Spring 2019
Module Description
Contact details
Lecturer(s): Le Minh Duc
TA(s): Nguyen Dinh Tran Long
Office: Building C, Room 210, Hanoi University
Tel: 8544338 (ext 3236)
Email(s): lemduc@gmail.com (duclm@hanu.edu.vn)
Unit overview
1. Unit details
Faculty Information Technology
Module code FIT5PR2
Module name Programming 2
Level Undergraduate
Credits Five (5)
Prerequisites FIT5PR1: Programming 1
DMA: Discrete Maths
PCO: Principle of Computing
Suggested study at least 8 hours of self-study each week
Year 2019
Spring 2019 1
3.3 Understand the concept of verifiable program, and the relationship between design specification
and implementation
3.4 Design a specification for and implement a procedural program
3.5 Understand the concept of an object-oriented program
3.6 Design a specification for and implement a small object oriented program
3.7 Understand the object-oriented specification, design, and implementation of some fundamental
abstract data types
3.8 Understand a modern method for automating object-oriented program design
3.9 (Optional) Understand the basic principles of reasoning about the correctness of a program
Learning Resources
There is not a single book that covers all topics that will be taught in this module. Listed below are
the relevant learning resources ([1], [2] , [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13]). Among
these, the primary resources are: [1]–[8]. Others will be made available on the web site.
[1] David J. Eck, Introduction to Programming Using Java, 7th ed. Hobart and William Smith
Colleges, 2014.
[2] M. L. Scott, Programming Language Pragmatics, Third Edition, 3rd edition. Amsterdam ;
Boston: Morgan Kaufmann, 2009.
[3] J. Gosling, B. Joy, G. L. S. Jr, G. Bracha, and A. Buckley, The Java Language Specification,
Java SE 8 Edition, 1 edition. Upper Saddle River, NJ: Addison-Wesley Professional, 2014.
[4] B. Liskov and J. Guttag, Program development in JAVA: abstraction, specification, and object-
oriented design. Pearson Education, 2000.
[5] A. V. Aho and J. D. Ullman, Foundations of Computer Science: C Edition, New edition edition.
New York: W. H. Freeman, 1994.
[6] G. Booch, “Object-oriented development,” IEEE Trans. Softw. Eng., vol. SE-12, no. 2, pp. 211–
221, Feb. 1986.
[7] OMG, “Unified Modeling Language version 2.5,” 2013.
[8] Oracle, “Java Platform Standard Edition 8 API Specification.” [Online]. Available:
http://docs.oracle.com/javase/8/docs/api/index.html. [Accessed: 18-Oct-2016].
[9] S. Eisenbach, H. Khoshnevisan, and S. Vickers, Reasoned Programming. New York: Prentice
Hall Trade, 1994.
[10] J. V. Guttag, “Algebraic Specification of Abstract Data Types,” Broy M Defin. Eeds Softw.
Pioneers Springer, 2002.
[11] J. Guttag, “Notes on Type Abstraction (Version 2),” IEEE Trans. Softw. Eng., vol. SE-6, no.
1, pp. 13–23, Jan. 1980.
[12] T. Lindholm, F. Yellin, G. Bracha, and A. Buckley, The Java Virtual Machine
Specification, Java SE 8 Edition, 1 edition. Upper Saddle River, NJ: Addison-Wesley
Professional, 2014.
[13] D. M. Le, D.-H. Dang, and V.-H. Nguyen, “Domain-Driven Design Using Meta-Attributes:
A DSL-Based Approach,” in KSE 2016, 2016.
Spring 2019 2
Assessment
1. Assessment table
Assessments Weights Brief Description Learning
objectives
Attendance 10% Weekly attendance in lectures and tutorials
Assignment 1 5% Design and implement a verifiable procedural 3.1-5
program
Assignment 2 10% Design and implement a basic class 3.6-7
Assignment 3 15% Design and implement a basic object-oriented 3.6-7
program
Final exam 60% Examine the knowledge and skills that have 3.1-7
been acquired in the semester
Spring 2019 3
Weeks Descriptions Tutorials
Introduction to object oriented program design ADT exercises
13 automation A3 submission
Ref: [13]
14 [Optional] Principles of reasoning about programs
Ref: Chapter 2.3,2.5-7,2.9,4 [5]; Chapter
5,10, Appendix A [9]
15 Module review Review/Open lab
Review weeks
Final exam
Spring 2019 4