Computer Science I Syllabus Overview
Computer Science I Syllabus Overview
Professional School of
Computer Science
Syllabus
2. TEACHER
Dr. Manuel Loaiza Fernandez
4. SUMMARY
1. Historia2. M´aquinas virtuales3. Sistemas de tipos b´asicos4. Conceptos Fundamentales de Programacio´n5. Funciones
6. Arreglos y Punteros 7. Programacio´n orientada a objetos8. Plantillas y STL 9. Conceptos Avanzados
5. GENERAL OBJECTIVE
Introduce the student to the fundamentals of the object-oriented paradigm, allowing them to assimilate the concepts.
necessary to develop information systems.
1
6. CONTRIBUTION ´TO PROFESSIONAL TRAINING
´ AND GENERAL EDUCATION´
This discipline contributes to the achievement of the following outcomes of the career:
Apply knowledge of computing and appropriate mathematics for the discipline. (Evaluate)
c) Design, implement, and evaluate a system, process, component, or software program to achieve the
desired needs. (Evaluate)
h) To engage in a process of continuous professional learning. (To become familiar with)
i) Use current techniques and tools necessary for the practice of computing. (Use)
C2. Ability to have a critical and creative perspective to identify and solve problems using thought
computational lie.
C3. An intellectual understanding of, and appreciation for, the central role of algorithms and data structures.
Outcome c
C23. Ability to undertake, complete, and present a final project. ⇒Outcome i
[Link] the need for permanent training and the improvement of skills and capabilities. ⇒Outcome i
[Link] and design computer systems in a way that demonstrates understanding of the balance between the
design options.⇒Outcome c
CS2. Identify and analyze the appropriate criteria and specifications for specific problems, and plan strategies.
for its solution. ⇒ Outcome c
Evaluate systems in terms of quality attributes in general and the possible advantages and disadvantages that arise.
presented in the given problem. ⇒ Outcome a
8. CONTENIDOS
UNIT 1: History(1)
Competencies: C1
CONTENT GENERAL OBJECTIVE
Brief review of programming paradigms. Discuss the historical context of the paradigms of
various programming languages [Familiarize]
Comparison between functional programming and pro-
imperative grammar.
History of programming languages.
2
UNIT 2: Virtual Machines(1)
Competencias: C2, CS6
CONTENT GENERAL OBJECTIVE
The concept of virtual machine. Explain the concept of virtual memory and the way
how it is carried out in hardware and software [Familiarize oneself]
Types of virtualization (including Hardware / Soft-
ware, OS, Server, Service, Network. Differentiate emulation y the aislamien-
to familiarize
Intermediate languages.
Evaluate compensation virtualization
3
UNIT 3: Basic Type Systems (2)
Competencias: C1,C2,CS1
CONTENT GENERAL OBJECTIVE
Types as a set of values along with a con- Both for primitive type and a compound type, des-
set of operations. to write informally about the values it has
Type[Get acquainted]
Primitive types (e.g. numbers, booleans)
For a language with a static type system, des-
Composition of built types from other types describe the operations that are prohibited in writing
(e.g., records, unions, arrays, lists, functions.
nes, references) static, how to pass the wrong type of value to a
function or method [Familiarize]
Declaration of models (link, visibility, scope
and lifespan). Describe examples of program errors detected
by a type system [Familiarize]
Overview of type checking.
For multiple programming languages, identifi-
create properties of a program with verification
tactics and properties of a program with verification
dynamic [Use]
Give an example of a program that does not verify ti-
however it does not have
error when executed [Familiarize]
4
UNIT 4: Fundamental Concepts of Programming (6)
Competencias: C1,C2,CS2
CONTENT GENERAL OBJECTIVE
Basic syntax and semantics of a high-level language Analyze and explain the behavior of programs
level. simple ones that involve fundamental structures
programming variables, expressions, assignment
Variables and primitive data types (e.g., numbers, inputs, outputs, control structures, functions, parameter passing
characters, booleans parameters, and recursion[Evaluate]
Expressions and assignments. Identify and describe the use of primitive data types
Conditional and iterative control structures. familiarize
Write programs that use primitive data types
you [use]
Modify and expand short programs that use it.
Conditional and iterative control structures
my functions[Use]
Passing functions and parameters. Design, implement, test, and debug a program
that uses each of the following structures of
Parameter passing essential data: basic calculations, simple I/O,
Function overloading standard conditional and iterative structures, define
Function definition, and parameter passing [Use]
Fundamentals of recursivity
Understand and apply the concept of parameter passing
Template concepts in functions both by value and by reference to a function.
reference.[Use]
5
UNIT 6: Arrays and Pointers (10)
Competencias: C1,C2,CS2
CONTENT GENERAL OBJECTIVE
6
UNIT 7: Object-oriented programming (10)
Competencias: C2,C24,CS1,CS2
CONTENT GENERAL OBJECTIVE
Decomposition into objects that store Use subclass to design a simple hierarchy of
behaviors and possess behavior classes that allow the code to be reusable by different
your subclasses[Use]
Class hierarchy-based design for mo-
delaying Correctly reason about the flow of control in
Object-oriented languages for encapsulation a program through dynamic sending [Use]
crown: Compare y to contrast (1) the approach
procedural/function - defining a function
privacy and the visibility of members of the
class por cada operaci´on con el cuerdo de la funci´on
providing a case for each data variation -
Interfaces reveal a unique method of signatures y (2) the object-oriented approach - defining a
abstract base classes class for each variation of data with the definition
from the class providing a method for each
Definition of categories, fields, methods and cons operation. Understanding both approaches as a
Instructors. definition of variations and operations of a
The subclasses, inheritance, and alteration method matrix[Evaluate]
temporal. Explain the relationship between object-oriented inheritance.
Subclassification: objects (shared code and overriding) and subtyping
ion (the idea of a subtype is to be usable in a con-
•Polymorphism article Subtype; implicit upcasts text in which he waits for the supertype) [Familiarize]
tos in languages with types.
Use object-oriented encapsulation mechanisms
• Notion of behavior replacement: the tos, such as interfaces and private members [Use]
subtypes act as supertypes.
Define and use iterators and other operations on
Relationship between subtypes and inheritance.
aggregations, including operations that have fun-
Use of class collections, iterators, and others com- options as arguments, in multiple languages of
components of the standard library. programming, select the most natural way by
each language[Use]
Dynamic assignment: definition of call method
yes.
7
UNIT 9: Advanced Concepts (10)
Competencies: C1, C2, CS2
CONTENT GENERAL OBJECTIVE
´
9. METHODOLOGY
The course professor will present theoretical classes on the topics outlined in the program, encouraging intervention by
the students
The course professor will present demonstrations to support theoretical classes.
The teacher and the students will carry out practices.
Students must attend class having read what the teacher is going to present. This way, it will facilitate the
understanding and the students will be in better conditions to ask questions in class.
10. EVALUATIONS
References
Deitel and Deitel, 2017 Deitel, P. and Deitel, H. (2017). C++ How to Program (Early Objects Version). Deitel, How to
Program. Pearson Education.
[Stroustrup, 2013] Stroustrup, B. (2013).The C++ Programming Language. Addison-Wesley, 4th edition.