0% found this document useful (0 votes)
172 views

FIT325 Moddesc PDF

This document provides a module description for the Programming 2 course at Hanoi University's Faculty of Information Technology for the Spring 2019 semester. It includes contact details for the lecturer and teaching assistant, an overview of the unit including prerequisites and learning objectives, assessment details weighted towards a final exam, and a proposed weekly schedule covering topics like verifiable programs, object-oriented programming, classes, abstract data types, and program design automation. Students are expected to spend at least 8 hours per week on self-study and complete 3 programming assignments.

Uploaded by

Quang Chien Pham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
172 views

FIT325 Moddesc PDF

This document provides a module description for the Programming 2 course at Hanoi University's Faculty of Information Technology for the Spring 2019 semester. It includes contact details for the lecturer and teaching assistant, an overview of the unit including prerequisites and learning objectives, assessment details weighted towards a final exam, and a proposed weekly schedule covering topics like verifiable programs, object-oriented programming, classes, abstract data types, and program design automation. Students are expected to spend at least 8 hours per week on self-study and complete 3 programming assignments.

Uploaded by

Quang Chien Pham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

HANOI UNIVERSITY

Faculty of Information Technology

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

2. Nature of the unit


This is an intermediate programming module in four main aspects. First, students will learn the
concept of verifiable program and study how to design and implement such a program. Second,
students will learn to design and implement a basic object oriented program using class. Third,
students will be introduced to the principles of reasoning about the implementation of a verifiable
program. Fourth, students will understand the role and design of a programming language.
In addition, students will be introduced to a modern method for automating the design of an
object oriented program.
3. Learning objectives
Upon completion of this module, students are expected to:
3.1 Understand the common types of programming languages
3.2 Understand the operational principles of compiler and virtual machines

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

Proposed weekly lecture and tutorial schedule


Weeks Descriptions Tutorials
− Introduction to the module Java review [1]:
− Java review (self-study) Ex2.1-6; Hwk: Q2.1-12;
1 Ref: Chapter 2,3,7.1 [1] Ex3.1-5; Hwk: Q3.3-5,7-12
− Overview of programming languages
Ref: Chapter 1.1-3, ch9 [2]
The Java programming language Java programming language
2
Ref: [3]
Operational principles of compiler and virtual machine Java bytecode and
3
Ref: Chapter 1.4-6 [2], Chapter 1-4 [12] compilation
Verifiable program: design specification and  A1 released
4
implementation Verifiable program
Ref: Chapter 9,10 [9]; Chapter 3,9 [4]; Chapter 2 [5] Verifiable program (cont’d)
5

− Verifiable program (cont'd)  A2, A3 released


6 − Introduction to object oriented program OOP with class and object
Ref: [4,6,7]
Class: design specification and implementation  A1 submission
7
Ref: [4,6,7] Class design specification
Class design specification
8
(cont’d)
9 − Application examples Class implementation
− Class design issues Class implementation
10 Ref: [4,6,7] (cont’d)
 A2 submission
11 Basic abstract data types: design and implementation Class design issues
Ref: Chapter 5,6 [5] Class design issues (cont’d)
12

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

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy