CAP - Advanced Programming Concepts

Similar documents
CAP - Advanced Programming Concepts

CPD - Data Processing Centers

AD - Distributed Applications

BD - Databases

ABD - Database Administration

LP - Programming Languages

XC2 - Computer Networks II

PI - Internet Protocols

CASO - Advanced Concepts on Operating Systems

PRO1-I2O23 - Programming I

Development of Applications Based in Microcontrollers

INTE-C5O44 - Internet

Automatic Control

SI - Computer Security

ASO - Operating Systems Administration

GDSA - Audiovisual Signal Management and Distribution

SOA - Advanced Operating Systems

ADS - Advanced Digital Systems

FXT - Foundations of Telematic Networks

DSX - Digital Systems Using Embedded Linux

IXT - Introduction to Networks

Real-Time Programming and Database Systems

QSN - Quality of Service in Networks

EMC - Emc in Electronic Design

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

TCGI - Internet Transport, Control and Management

GCS - Cybersecurity Management

RIVC - Industrial Robotics and Computer Vision

Digital Electronics

240AR059 - Geometric Fundamentals for Robot Design

TPA - Audiovisual Technology and Production

TXC - Computer Network Technology

Network Architecture I

Computer Science (Informática)

VD - Design Validation

Gis Databases

G - Graphics

Study Programme Description

SEAX-C9X44 - Network Security and Administration

OPNET - Optical Networks

FT - Fundamentals of Telematics

Computer Networks (Redes de Computadores)

OVNET - Overlay Networks

PROGRAMME SYLLABUS Information Architecture and Innovation (Two Years), 120

New Programming Paradigms

3D Graphics Programming Mira Costa High School - Class Syllabus,

FIS2VJ - Physics II

GD - Geometry for Design

AMC - Advanced Mobile Communications

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

POO - Object Oriented Programming

Compulsory course in Computer Science

CSCI 201L Syllabus Principles of Software Development Spring 2018

Informatics Spring Semester

C - Cryptography

CURRICULUM MASTER OF DISASTER MANAGEMENT

C - Cryptography

SYLLABUS Type of evaluation

IPNP - IP Networks and Protocols

This course includes 14 lessons and 5 Course Activities. Each lesson contains one or more Lesson Activities. The lessons cover the following topics:

Course Syllabus. Programming Language Paradigms. Spring - DIS Copenhagen. Semester & Location: Elective Course - 3 credits.

CMPE/SE 135 Object-Oriented Analysis and Design

GI - Internet Management

Electronic Circuits

Bachelor of Science (B.Sc.) in Computer Science

CSc 2310 Principles of Programming (Java) Jyoti Islam

City University of Hong Kong. Course Syllabus. offered by Department of Computer Science with effect from Semester B 2016/17

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS HPC INTERNETWORKING & GRID TECHNOLOGY HPC 1020

All LJMU programmes are delivered and assessed in English

CONCENTRATIONS: HIGH-PERFORMANCE COMPUTING & BIOINFORMATICS CYBER-SECURITY & NETWORKING

A3D - 3D Animation

BSc (Honours) Computer Science Curriculum Outline

MASTER OF DISASTER MANAGEMENT CURRICULUM

ab Houston Community College

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

San Jose State University - Department of Computer Science

SYLLABUS / FIȘA DISCIPLINEI

CIS 120. Introduction to Programming

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

Advanced Programming in C++

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

Basics of Java Programming CS129 LTPC:

Computer Science Department

Exploring Possibilities for Symmetric Implementation of Aspect-Oriented Design Patterns in Scala

Part A: Course Outline

Computer Science Curriculum for International Students

OFT - Optical Fiber Telecommunications

CSC 210 COMPUTER SCIENCE II

MEng Integrated Engineering

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

The course makes up the third semester of the BSc programme in Design of Information Systems or can be taken as a freestanding course.

Curriculum for Master's Programme in Media Studies The 2008 Curriculum

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

LIS 2680: Database Design and Applications

PROGRAMME SPECIFICATION

The University of Jordan

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes.

ANX-PR/CL/ LEARNING GUIDE

Transcription:

Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2017 BACHELOR'S DEGREE IN INFORMATICS ENGINEERING (Syllabus 2010). (Teaching unit Optional) ECTS credits: 6 Teaching languages: Catalan Teaching staff Coordinator: - Jordi Delgado Pin (jdelgado@cs.upc.edu) Prior skills Students should have enough knowledge of data structures and algorithms and object oriented programming and design. Requirements - Prerequisite PROP - Prerequisite IES Degree competences to which the subject contributes Specific: CES1.1. To develop, maintain and evaluate complex and/or critical software systems and services. CES1.3. To identify, evaluate and manage potential risks related to software building which could arise. CES1.7. To control the quality and design tests in the software production Generical: G5. TEAMWORK: to be capable to work as a team member, being just one more member or performing management tasks, with the finality of contributing to develop projects in a pragmatic way and with responsibility sense; to assume compromises taking into account the available resources. Teaching methodology Teaching the course is structured in lectures and laboratory sessions. Teachers will use lectures to introduce the essential contents of the course. In the laboratory sessions the contents of the course will be brought to the computer by carrying out practical problems. The laboratory classes will be a continuation of the lectures, where new concepts will be implemented as they appear in lectures. Learning objectives of the subject 1.Review the concepts of object-oriented programming in order to ensure a common knowledge base from which to proceed with the specific subject matter of the course and to know a dynamic and object oriented programming language such as Smalltalk. 2.Learn the basics of computational reflection, so that the student is able to understand how these concepts are implemented in different programming languages 3.Knowing how computational reflection is implemented in Java and Smalltalk: accessing and modifying members of classes at runtime, creating code at runtime, etc.. 1 / 9

4.Being able to develop a computer program of small-middle size that uses reflection techniques 5.Learn the basic concepts of aspect oriented programming, so that the student is able to understand how these concepts are implemented in different programming languages 6.Learn AspectJ, an implementation of AOP for Java and delve into details of a specific implementation of the concepts learned. 7.Learn the basic concepts of prototype based programming, so that the student is able to understand how these concepts are implemented in different programming languages 8.Learn a language based on prototypes so that the student is able to get the general concepts in a concrete implementation (presumably this would be JavaScript or Self) 9.Knowing what a closure is and some techniques associated with their use. Study load Total learning time: 150h Hours large group: 30h 20.00% Hours medium group: 0h 0.00% Hours small group: 30h 20.00% Guided activities: 6h 4.00% Self study: 84h 56.00% 2 / 9

Content Review of object oriented programming and Introduction to Smalltalk Philosophy and origins. Encapsulation, members private / (protected) / public, inheritance, polymorphism, early / late binding. Patterns. Smalltalk, learning the language and the Pharo environment. Reflection: General concepts What is reflection?. Types of reflection: Introspection, intercession, reification. Implications of reflection for a programming language. Reflection in object-oriented programming. Reflection in Java and Smalltalk Using java.lang.reflect and Smalltalk. Access to classes members at runtime. Patterns and Reflection. Creating reflective objects. Code Generation at runtime. Aspect Oriented Programming: General concepts Encapsulation of cross-cutting concerns, dynamic and static. Join points, pointcuts and aspects. Weaving mechanisms AspectJ: AOP in Java Implementation of the concepts considered in the general description of AOP in the context of the Java programming language: Join points, pointcuts, aspects, advices, weaving mechanisms, etc.. Prototype based programming 3 / 9

Classes vs. prototypes. Inheritance vs. cloning. Delegation. Closures and techniques associated with their use. 4 / 9

Planning of activities Review of Object Oriented Programming: Generalities Hours: 2h Theory classes: 2h Laboratory classes: 0h Self study: 0h 1 Introduction to Smalltalk Hours: 6h Theory classes: 2h Laboratory classes: 4h Self study: 0h 1 Reflection: General concepts Hours: 16h Theory classes: 2h Laboratory classes: 2h Guided activities: 2h Self study: 10h 2 5 / 9

Reflection in Java (java.lang.reflect) and Smalltalk Hours: 33h Theory classes: 10h Laboratory classes: 8h Self study: 15h 3, 4 Practical exercise Hours: 0h Self study: 0h Submission date: End of semester. 4 Theory test Hours: 12h Guided activities: 2h Self study: 10h 2, 3 Aspect Oriented Programming: General concepts Hours: 16h Theory classes: 2h Laboratory classes: 2h Guided activities: 2h Self study: 10h 5 6 / 9

AspectJ: AOP in Java Hours: 29h Theory classes: 8h Laboratory classes: 6h Self study: 15h 6 Prototype based programming Hours: 24h Theory classes: 4h Laboratory classes: 6h Self study: 14h 7, 8, 9 Final test Hours: 12h Guided activities: 2h Self study: 10h 5, 6, 7, 8, 9 7 / 9

Qualification system Grading the course will consist of two theoretical tests (T1 and T2), one mid-course and the other at the end, and one medium-sized practical work (P), plus some consideration of other aspects mainly related to participation (Pa) in class and directed activities (AD). Then, the evaluation method would be: 0.6 * Theory + Practice * 0.35 + 0.05 * (Pa+AD) where: Theory: 0.4 * T1 + 0.6 * T2 Teamwork: Evaluated using a simple rubric that each group tutor group uses to rank different aspects of teamwork of every member of the group. 8 / 9

Bibliography Basic: Black, A.P.; Ducasse, S.; Nierstrasz, O.; Pollet, D.; Cassou, D.; Denker, M. Pharo by example. Square Bracket Associates, 2009. ISBN 9783952334140. Forman, I.R.; Forman, N. Java reflection in action. Manning Publications, 2005. ISBN 1932394184. Laddad, R. AspectJ in action: enterprise AOP with spring applications. 2nd ed. Manning Publications, 2010. ISBN 1933988053. Noble, J.; Taivalsaari, A.; Moore, I. (Editors). Prototype-based programming: concepts, languages, and applications. Springer, 1999. ISBN 9814021253. Complementary: Communications of the ACM [on line]. Available on: <http://dl.acm.org/citation.cfm?id=383845&cfid=482078270&cftoken=35757917>. Proceedings of OOPSLA '87, ACM SIGPLAN Notices. 22(12):147--155, 1987. Tanter, E. From metaobject protocols to versatile kernels for aspect-oriented programming (PhD Thesis) [on line]. Université de Nantes, 2004Available on: <http://www.emn.fr/z-info/reflex/references/etanter-phd.pdf>. Adams, B.; Haupt, M.; Lohmann, D. Proceedings of the 9th Workshop on Aspects, Components, and Patterns for Infrastructure Software (ACP4IS'10) (Technical Reports, vol. 33) [on line]. Hasso-Plattner-Institute, Universität Potsdam, 2010Available on: <http://opus.kobv.de/ubp/volltexte/2010/4122/pdf/tbhpi33.pdf>. ISBN 978-3-86956-043-4. Others resources: Hyperlink http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/rivard/rivard.html http://download.oracle.com/javase/6/docs/technotes/guides/reflection/index.html http://www.eclipse.org/aspectj/ https://developer.mozilla.org/es/javascript 9 / 9