0% found this document useful (0 votes)
30 views3 pages

CI0202-Principles of Computer Science

This document presents the description of a course on Principles of Computer Science. The course introduces basic programming concepts to solve engineering problems using computer tools. The course consists of 15 topics covering programming fundamentals, data types, variables, control structures, subroutines, data collections, and object-oriented programming. The course is evaluated through midterm exams, laboratories, and scheduled assignments.
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)
30 views3 pages

CI0202-Principles of Computer Science

This document presents the description of a course on Principles of Computer Science. The course introduces basic programming concepts to solve engineering problems using computer tools. The course consists of 15 topics covering programming fundamentals, data types, variables, control structures, subroutines, data collections, and object-oriented programming. The course is evaluated through midterm exams, laboratories, and scheduled assignments.
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/ 3

Group 11: L/J 11am-1pm 101 IN/111 IN

CI-0202 Group 13: L/J 9am-11am 101 IN/111 IN


Principles of Computer Science Professor: Pablo Sauma Chacón
The cycle 2020 [email protected]
Consultation: K 4pm to 8pm 614 IF Annex

Letter to the student. Service course, with no prerequisites or corequisites. 4 credits, 4 in-person hours, 8 out-of-class hours.

Course description
It is a basic programming course for students in the engineering field and related areas. The course introduces the student to
abstract thinking for the resolution of engineering and scientific problems, automatable by means of tools
development informatics, using systematic methodologies. The student will learn to recognize the applicability of workflows
control and basic data models to achieve the design and implementation of programs and algorithms.

Objectives
Provide basic training in programming and the construction of algorithms and programs for problem solving.
using current techniques. By the end of this course, the student will be able to:

Design, organize, and implement algorithms to solve specific problems in the fields of engineering, science, and related areas.
2. Use a programming environment for editing, testing, and debugging programs.
3. Reuse software components.
4. Apply good software construction practices.

Week
Contents and schedule
Fundamentals of programming March 9
Programming languages: concept of programming, machine language, assembly language, language
high level, virtual machine, compiler and paradigms.
Life cycle of a program: problem, analysis, design, implementation and testing
Algorithm: concept, primitives, and examples
2. Numeric systems and data representation March 9
Bases and conversion: decimal, binary, and hexadecimal
Text encoding systems: ASCII and UNICODE
3. Data types 16-Mar
Data types: integers, reals, booleans, characters, and strings of text.
Integer precision arithmetic, floating-point precision arithmetic.
4. Definition and use of variables March 16
Definition of values and variables:
Statement: type, identifier and address
Initialization according to the data type: values, indirection (e.g. pointers, references)
State of the variable in memory (value)
Assignment and type conversion

Use of variables:
Class attributes: declaration, scope of life, and concealment (encapsulation)
Local variables: declaration and lifetime scope
Static and constant: declaration and scope of life
5. Basic input and output, verification March 23
Basic input and output:
Input: command line parameters and interactive input
Output: standard output and interactive output
Data verification and error handling (e.g., exception handling)
6. Expressions and operators March 23
Evaluation of expressions and order of precedence
Operator arity: unary (e.g., negation) and binary (e.g., multiplicative and additive)
Types of operators: arithmetic, relational (comparison and equality), logical, and assignment

1/3
7. Instructions and control structures March 30
Sequence of instructions and blocks of instructions
Condition of instructions (6-Apr: without saint)
Repetition of instructions by condition and by counter
8.a. Subroutines: fundamentals April 13
Concepts: modularization and reuse, declaration and invocation
Components: header (identifier, parameters, and return type) and body (April 13: without university)
Functions and procedures
Overloading of subroutines: declaration and resolution of calls
8.b. Subroutines: operation April 20
Passing arguments: by value and by reference
Static memory allocation, dynamic memory allocation, and automatic memory allocation
April 27: I exam
(queue of calls)
(up to theme 7)
Scope rules or identifier scope
Constructors: concept and use, declaration and invocation
9. Recursion May 4th
Concept and usage
Order of calls
10a. Linear data collections: fundamentals May 11
Concept (e.g., arrays, lists), structure, and memory state
Declaration and initialization
Access to elements and traversal
Passing collections as arguments to subroutines
10b. Linear data collections: operations May 18
Utility and common operations (sum, average, minimum, maximum)
May 25: Second exam
Search (according to the type of data of the elements)
(up to topic 10)
Sorting (according to the type of data of the elements)
11. Matrices June 1
Concept, structure, and state of memory
Declaration and initialization
Access to elements and traversal
12. Rows or chains of characters (texts) June 8
Concept
Operaciones: concatenación, obtener tamaño, extraer carácter o fragmento, comparación, búsqueda,
replacement
13. Input and output: files June 8
Concepts and physical organization of files
File operations: reading and writing
Binary/textual processing: opening/closing and reading/writing
14. Introduction to object-oriented programming June 15
Paradigm: classes and instances, attributes and methods, abstraction and reuse
Analysis and design: modeling of classes and instances
Construction (compilation, interpretation) and execution
15. Advanced programming (topic to choose from the following) 22-jun, 29-jun
Matrices, algorithms, and linear algebra libraries.
Fundamentals of graphing and graphical interfaces.
Indirection (pointers and references), copying and cloning of objects.
Basic search and sorting algorithms.
Inheritance and polymorphism III exam
Arbitrary precision arithmetic. (up to topic 14)
Notebooks of computer languages.
Data visualization (e.g., creation of graphs, animations).
Simulation (e.g., based on mathematical, physical models).
Prediction (using simple models).

2/3
Methodology and evaluation
A traditional-constructivist hybrid methodology is followed. Each week the student Activity Weight
dedicate 12 hours to the Principles of Computer Science course, 4 in-person and 8 outside of class. The 4
In-person hours per week are divided into 2 hours of lectures and 2 in the 3 partial exams 60%
computer lab. Audiovisual resources are used in lectures and the Laboratories + tasks 30%
blackboard to illustrate the problem-solving process and programming concepts.
During lab hours, students solve short programming problems that Scheduled task 10%
they require the theory taught in the lectures with the support of the course professor and the
assigned assistant.

In the 8 extra-class hours per week, the student must solve programming problems posed in the form of
laboratories and short individual tasks of equal weighting. The statements of the tasks and laboratories will be provided by the
professor in a virtual classroom hosted on Virtual MediationInvalid input. Please provide text to translate.The usage modality of the platform
it will be virtual absence. Classes and laboratories will be taught in person, while the platform will be used for delivery.
and evaluation of the laboratories and tasks. The studied material and resources will also be made available on the platform.
class. The student will submit their solutions in the virtual classroom before the deadline stipulated in the statement of each task.
Late submissions will not be accepted.

Three partial exams will be conducted with equal weighting (20% each) in the weeks indicated.
Schedule to the right of the contents. The exams will be conducted on paper during the lesson in the classroom and therefore will have
a maximum duration of 1 hour and 40 minutes. In case of a delay, the teacher will adjust the schedule dates and negotiate.
the exam dates with the students once the content has been covered. Due to the nature of the
contents, the exams are cumulative. Each exam will present a problem that the student must solve through the
computer programming.

A scheduled task will be carried out in the second half of the course. The objective of this project will be to solve a problem of
complexity higher than those seen in class. For this, the student must carry out both research work to obtain
knowledge regarding the background of the problem and its solution, as well as the implementation of the solution to this problem.

Guidelines
1. During the exams, the student may consult theoretical material (books, notes) or code that is the product of their
work in the course or that has been provided by the professor. The means to consult these materials during the
exams will be indicated in advance by the teacher.
It is illegal to present, as your own, partial or total code written by others or obtained from information sources.
such as books or the Internet, without the explicit authorization of the teacher. Exams are strictly
individuals, and in case it is by computer, it is illegal to violate this rule through email applications or
messaging. In any assignment where plagiarism is detected, a zero will be assigned as the grade in the evaluation and will
The regulations stipulated in the Order and Discipline Regulations of the University of Costa Rica will be applied.
RichUnable to access external URLs or documents.).
All code submitted by the student must compile without errors. Otherwise, it will be graded as 0.
In any type of evaluation, the teacher could propose optional activities for extra credit in the grade.
of the course.
5. Any coursework that includes research must cite the sources of information consulted. Otherwise, it will be
rated with 0.

Bibliography

Learning IPython for Interactive Computing and Data Visualization


Books, 2013.
data visualization
Algorithms and Programming with Python Language
The provided text is a URL and cannot be translated as it does not contain translatable content.

Software

Python 3 Downloads:Invalid input for translation.


2. Jupyter Notebook is a web application that allows you to create and share documents that contain live code,
equations, visualizations, and explanatory text. Their uses include: data cleaning and transformation, simulations
numerical and much more:http://jupyter.org/
3. Spyder is a development environment that allows the execution of Python code and visualization of its variables in
real timeThe provided text is a URL and cannot be translated.
4. Anaconda (includes Python 3, Spyder, and Jupyter):Invalid input format. Please provide a text for translation.

3/3

You might also like