* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Course syllabus - UUM - Universiti Utara Malaysia
Stream processing wikipedia , lookup
Join-pattern wikipedia , lookup
Flow-based programming wikipedia , lookup
Logic programming wikipedia , lookup
Design Patterns wikipedia , lookup
C Sharp syntax wikipedia , lookup
Scala (programming language) wikipedia , lookup
Programming language wikipedia , lookup
Functional programming wikipedia , lookup
Java (programming language) wikipedia , lookup
Falcon (programming language) wikipedia , lookup
Corecursion wikipedia , lookup
Exception handling wikipedia , lookup
Java performance wikipedia , lookup
Java ConcurrentMap wikipedia , lookup
Go (programming language) wikipedia , lookup
Reactive programming wikipedia , lookup
Structured programming wikipedia , lookup
Object-oriented programming wikipedia , lookup
UNIVERSITI UTARA MALAYSIA COLLEGE OF ARTS AND SCIENCES CODE COURSE PRE-REQUISITE 1.0 : : : STIW5024 ADVANCED PROGRAMMING NONE SYNOPSIS By the end of this course, students should be familiar with advanced programming concepts within Java; should be able to carry out the construction of software artefacts utilising these concepts; and should be capable of carrying out the development of complex elements. The course emphasises on modular program construction: how to get the modules right and how to organize a program as a collection of modules. The kinds of abstractions most useful to programmers, i.e. procedures; iteration abstractions; and, most critically, data abstractions are discussed in this course. 2.0 OBJECTIVES At the end of the course, the students should be able to: 2.1 Understand advanced programming language features within the context of a high-level programming language (Java). 2.2 Acquire knowledge and necessary skills by applying the programming language features in algorithms in a contemporary software setting. 3.0 LEARNING OUTCOMES Upon the completion of the course, student will be able to: 3.1 Explain the characteristics of object oriented approach and advanced programming features (C2, A3, P2). 3.2 Compare the advantages and limitations of the advanced programming features (C2, A4, P2). 3.3 Apply the syntax and semantics of an object oriented programming language and its programming processes (C3, A4, P4). 3.4 Develop software solutions using different kind of abstractions and complex elements(C5, A4, P5). 4.0 REFERENCES Liskov, B. & Guttag, J. (2000). Program Development in Java: Abstraction, Specification, and Object-Oriented Design. Indianapolis: Addison-Wesley. Liang, Y.D. (2011). Introduction to Java Programming Comprehensive. Pearson. 1 Bloch, J. (2008). Effective Java. Upper Saddle River: Addison-Wesley. Hubbard, J.R. (2004). Schaum's Outlines: Programming with Java. New York:McGraw-Hill. 5.0 COURSE CONTENT No. 1 Topic 1. Introduction Decomposition and Abstraction Abstraction o Abstraction by Parameterization o Abstraction by Specification o Kinds of Abstractions 2 2.Understanding Objects in Java Program Structure Packages Objects and Variables o Mutability o Method Call Semantics Type Checking. o Type Hierarchy o Conversions and Overloading Dispatching Types o Primitive Object Types o Vectors Stream Input/output Java Applications 3 3. Procedural Abstraction The Benefits of Abstraction Specifications Specifications of Procedural Abstractions Implementing Procedures Designing Procedural Abstractions 4 4. Exceptions The Java Exception Mechanism. o Exception Types o Defining Exception Types o Throwing Exceptions o Handling Exceptions o Coping with Unchecked Exceptions. Programming with Exceptions 2 Hour o Reflecting and Masking Design Issues o When to Use Exceptions o Checked versus Unchecked Exceptions. Defensive Programming 5 5. Data Abstraction Specifications for Data Abstractions Using Data Abstractions Implementing Data Abstractions Properties of Data Abstraction Implementations o Benevolent Side Effects. o Exposing the Representative Reasoning about Data Abstractions. o Preserving the Rep Invariant o Reasoning about Operations o Reasoning at the Abstract Level Design Issues o Mutability o Operation Categories o Adequacy Locality and Modifiability 6 6. Iteration Abstraction Iteration in Java Specifying Iterators Using Iterators Implementing Iterators Rep Invariants and Abstraction Functions for Generators 7 7. Type Hierarchy Assignment and Dispatching o Assignment o Dispatching Defining a Type Hierarchy Defining Hierarchies in Java Simple Example Exception Types Abstract Classes Interfaces The Meaning of Subtypes o Methods Rule o Properties Rule o Equality 8 8. Polymorphic Abstractions Polymorphic Data Abstractions Using Polymorphic Data Abstractions Equality Revisited Polymorphic Procedures 3 9 9. Specifications Specifications and Specific and Sets Some Criteria for Specifications o Restrictiveness o Generality o Clarity 10 10. Design Patterns Flyweights Singletons State Pattern Bridge Pattern Composites Publish/Subscribe Abstracting Control 5.0 TEACHING METHOD Lectures, discussion, assignments, tutorial, self-directed learning and presentations. 6.0 ASSESSMENT Coursework 70% - Project (team of 2-3 students) 30% - Assignment (team of 2-3 students) 20% - QUIZ, Mid Exam (individual) 20% Final Exam 30% Adib M.Monzer Habbal, MIEEE Email: [email protected] Ext: 04 928 4650 Room No.: 3072 Consultation Day: Sunday 2PM – 5PM 4