Programming II#

Binder

This course is taught in java programming language. It is part of the courses offered by ETITC for the systems engineering program. All courses are stored in the uETITC GitHub organization.

Images are taken from the references [2, 3, 4].

Tabla de Contenido (ToC)#

Proyecto

Objective#

To train students in problem solving through object-oriented programming (OOP). Throughout the course, students will learn to apply advanced modular programming techniques, to reuse code through libraries and frameworks, and to develop complex solutions through debugging and logical reasoning processes.

In addition, the course aims for students to acquire additional competencies in key areas such as developing applications with graphical user interfaces using JavaFX, implementing recognized design patterns such as Factory and MVC, and managing persistence and database connection in their applications. These skills will enable students to create robust and efficient software, aligned with the needs of the work environment.

Subject Learning Results (RAC)#

At the end of the course the student will be able to:

RAC1. Solve problems by applying object-oriented programming.

RAC2. Apply modular programming techniques and code reuse, using libraries and frameworks.

RAC3. Develop step-by-step solutions applying debugging techniques and logical reasoning to solve complex programming problems.

Grades#

Periods#

For all periods the grade is divided as Tabla 2. The first and second periods are 35% of the final grade, while for the last period is 30%. All exams consists of two tests: one practical (60%) and the other theoretical (40%).

Tabla 1 Exams.#

Period

Porcentage

Exam Date

First

35%

12/09/2024

Second

35%

24/10/2024

Final

30%

28/11/2024

Tabla 2 Grades per period.#

Grade

Porcentage

Self-Evaluation

10%

Co-Evaluation

10%

Workshops / Project

40%

Exam (Theoretical - Practical)

40% (40% - 60%)

Project#

Tabla 3 Grades for project.#

Grade

Porcentage

Date

1st Delivery

10%

16/09/2024

2st Delivery

10%

17/11/2024

Solution

40%

02/12/2024

GitHub

30%

02/12/2024

Presentation

10%

02/12/2024

Assigments#

All assignments will be stored on GitHub, but must be uploaded for grading on the Virtual Campus.

Truco

You can practice and complement the course by solving programming problems in any of the following pages:

Each solved problem, which has passed all the tests created for the page, can be exchanged for points. Very simple problems are not valid.

Executing Notebooks in Colab#

Importante

If you are working in Google Colab you must execute the following code block in every notebook, before executing any cell. Remember that the tutorial on how to configure the environment can be found at: 1. Intruduction To Java. There are several ways and Google Colab is one of them.

%%sh
%%capture
# Install java kernel
wget -q https://github.com/SpencerPark/IJava/releases/download/v1.3.0/ijava-1.3.0.zip
unzip -q ijava-1.3.0.zip
python install.py

# Install proxy for the java kernel
wget -qO- https://gist.github.com/SpencerPark/e2732061ad19c1afa4a33a58cb8f18a9/archive/b6cff2bf09b6832344e576ea1e4731f0fb3df10c.tar.gz | tar xvz --strip-components=1
python install_ipc_proxy_kernel.py --kernel=java --implementation=ipc_proxy_kernel.py

Projects#

  • Jose Mateus

  • Miguel Lara

  • Manuel Castillo

  • Lenin Cruz

  • Cristian Camilo Espinosa

  • Diego Fernando Báez

  • Juan Esteban Joven

  • Michael Pinzón

  • Carlos Sotelo

  • Andres Molina

  • Edison Rincon

  • Juan David Bejarano

  • Johan Alexis Hernandez Sanchez

  • Edwin Leonardo Bautista Gil

  • Sara Milena Villacorte Pedraza

  • Brayan Stiven Sandoval Reyes

  • Danna Sofía Rojas Flórez

  • Diana Lorena Salinas Ortegón

  • Juan Diego

References#

Guides and Tutorials#

Repositories#

Books#

[1]

Erich Gamma, Richard Helm and others. Design Patterns CD. Elements of reusable object-oriented software. Volume of Professional Computing. Addison-Wesley Professional, cdr edition, 1998. ISBN 9780201634983,0201634988.

[2]

Takako Soma (auth.) James T. Streib. Guide to Data Structures: A Concise Introduction Using Java. Volume of Undergraduate Topics in Computer Science. Springer International Publishing, 1 edition, 2017. ISBN 978-3-319-70083-0,978-3-319-70085-4.

[3]

Paul A. T. Koffman, Elliot B.; Wolfgang. Data structures : abstraction and design using Java. Volume of. Wiley, third edition. edition, 2016. ISBN 9781119000235,1119000238,9781119239147,1119239141.

[4]

Y. Daniel Liang. Introduction to Java Programming and Data Structures, Comprehensive Version. Volume of. Pearson, 12 edition, 2019. ISBN 0136520235,9780136520238.

Importante

You can find all references in the Google Drive folder References, to get acces you must enter with the institutional email.