CAP - Advanced Programming Concepts

Similar documents
CAP - Advanced Programming Concepts

CPD - Data Processing Centers

BD - Databases

XC2 - Computer Networks II

Development of Applications Based in Microcontrollers

AD - Distributed Applications

PRO1-I2O23 - Programming I

Automatic Control

LP - Programming Languages

ABD - Database Administration

PI - Internet Protocols

INTE-C5O44 - Internet

ADS - Advanced Digital Systems

CASO - Advanced Concepts on Operating Systems

SOA - Advanced Operating Systems

GDSA - Audiovisual Signal Management and Distribution

ASO - Operating Systems Administration

SI - Computer Security

Real-Time Programming and Database Systems

QSN - Quality of Service in Networks

IXT - Introduction to Networks

GCS - Cybersecurity Management

TCGI - Internet Transport, Control and Management

DSX - Digital Systems Using Embedded Linux

FXT - Foundations of Telematic Networks

EMC - Emc in Electronic Design

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

OPNET - Optical Networks

Network Architecture I

Computer Science (Informática)

G - Graphics

RIVC - Industrial Robotics and Computer Vision

Digital Electronics

OVNET - Overlay Networks

240AR059 - Geometric Fundamentals for Robot Design

SEAX-C9X44 - Network Security and Administration

TPA - Audiovisual Technology and Production

Gis Databases

Computer Networks (Redes de Computadores)

TXC - Computer Network Technology

FT - Fundamentals of Telematics

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

VD - Design Validation

AMC - Advanced Mobile Communications

POO - Object Oriented Programming

Compulsory course in Computer Science

GD - Geometry for Design

GI - Internet Management

FIS2VJ - Physics II

Study Programme Description

C - Cryptography

SYLLABUS Type of evaluation

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

C - Cryptography

Electronic Circuits

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

SYLLABUS / FIȘA DISCIPLINEI

ANX-PR/CL/ LEARNING GUIDE

Principles of Compiler Construction ( )

CIS 120. Introduction to Programming

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

Computer Science Department

CSCI 201L Syllabus Principles of Software Development Spring 2018

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

Part A: Course Outline

CURRICULUM MASTER OF DISASTER MANAGEMENT

Philadelphia University Faculty of Information Technology Department of Computer Science --- Semester, 2007/2008. Course Syllabus

CMPE/SE 135 Object-Oriented Analysis and Design

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

Principles of Compiler Construction ( )

CSC 210 COMPUTER SCIENCE II

CSc 2310 Principles of Programming (Java) Jyoti Islam

CGS 2405 Advanced Programming with C++ Course Justification

School of Computing and Information Sciences. Course Title: Data Structures Date: 3/30/2010 Course Number: COP 3530 Number of Credits: 3

A3D - 3D Animation

IPNP - IP Networks and Protocols

Chair of Software. Engineering. Overview. School of Business Informatics and Mathematics. 1. Find out why software engineering is important

AP Computer Science A Mira Costa High School - Class Syllabus,

Introduction to Programming System Design CSCI 455x (4 Units)

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

All LJMU programmes are delivered and assessed in English

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

City University of Hong Kong. Course Syllabus. offered by Department of Computer Science with effect from Semester A 2017/18

GD - Differential Geometry

3. Total estimated time (hours/semester of didactic activities) 3.1 Hours per week 4 Of which: 3.2 course seminar/laboratory

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

College of San Mateo Course Outline

Informatics Spring Semester

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

Advanced Programming in C++

CMSC 132: Object-Oriented Programming II. Administrivia

COLLEGE OF THE DESERT

LIS 2680: Database Design and Applications

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

Homeschool Programming, Inc.

Textbook Charles Petzold, Programming Windows, 5th edition, Microsoft Press. References - other textbooks or materials none

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

Digital Communication and Aesthetics,

Only the original curriculum in Danish language has legal validity in matters of discrepancy

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

Transcription:

Coordinating unit: 270 - FIB - Barcelona School of Informatics Teaching unit: 723 - CS - Department of Computer Science Academic year: Degree: 2018 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 IES - Prerequisite PROP 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 / 7

4.Being able to develop a computer program of small-middle size that uses reflection techniques 5.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 6.Learn a language based on prototypes so that the student is able to get the general concepts in a concrete implementation (JavaScript) 7.Knowing what a closure is and some techniques associated with their use. Understanding what Continuations are and using them to implement several control structures 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 / 7

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 a Smalltalk 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. Prototype based programming Classes vs. prototypes. Inheritance vs. delegation Control Structures: Continuations Continuations are the result of being able to reify and eventually modify the execution stack of a program while it is running, but from the same language. We will explore the possibilities that this offers and the associated techniques. 3 / 7

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: 18h Theory classes: 6h Laboratory classes: 6h Self study: 6h 1 Reflection: General concepts Hours: 16h Theory classes: 2h Laboratory classes: 2h Self study: 10h 2 4 / 7

Reflection in Java (java.lang.reflect) and Smalltalk Hours: 36h Theory classes: 8h Laboratory classes: 8h Self study: 20h 3, 4 Practical exercise Hours: 0h Self study: 0h Submission date: End of semester. 4 Theory test Hours: 12h Self study: 10h 2, 3 Prototype based programming Hours: 26h Theory classes: 6h Laboratory classes: 6h Self study: 14h 5, 6, 7 5 / 7

Continuations Hours: 28h Theory classes: 6h Laboratory classes: 6h Self study: 14h 7 Final test Hours: 12h Self study: 10h 5, 6, 7 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 (Practice). Then, the evaluation method would be: 0.6 * Theory + 0.4*Practice where: Theory: 0.5 * T1 + 0.5 * 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. 6 / 7

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. Noble, J.; Taivalsaari, A.; Moore, I. (Editors). Prototype-based programming: concepts, languages, and applications. Springer, 1999. ISBN 9814021253. Complementary: Proceedings of OOPSLA '87, ACM SIGPLAN Notices. 22(12):147--155, 1987. Others resources: Hyperlink http://download.oracle.com/javase/6/docs/technotes/guides/reflection/index.html https://developer.mozilla.org/es/javascript http://www2.parc.com/csl/groups/sda/projects/reflection96/docs/rivard/rivard.html 7 / 7