Computer Programming I
Course lessons, materials, and the 2026 annual schedule.
Lessons 1 and 2 taught by Professor Diego Ascânio.
- 01
Introduction
Lesson 1 taught by Professor Diego Ascânio.
- 02
- 03
- 04
- 05
- 06
Course presentation and introduction to programming
Course objectives, assessment criteria, tools, lab routine, and the role of programming in the technical program. Environment setup and execution of the first program.
Computational thinking and algorithms
Decomposition, pattern recognition, abstraction, and algorithm design using natural language and pseudocode.
Propositional logic and Boolean expressions
Propositions, true and false values, negation, conjunction, disjunction, truth tables, and Boolean expressions in programs.
Variables, data types, and operators
Variables, constants, numeric and text types, assignment, arithmetic operators, precedence, type conversion, and output formatting.
Data input and output
Data input and validation, output messages, and program organization through input, processing, and output.
Review of sequential algorithms and problem statements
Review of variables, types, operators, and input/output. Problem interpretation by identifying input data, processing, and expected output.
Conditional structures: if and if/else
Decision flow, simple and compound conditions, and problems involving classification, comparison, and rule application.
Chained conditionals and logical operators
If/elif/else structures, relational and logical operators, and compound expressions applied to value ranges, intervals, and combined rules.
Conditional best practices and debugging
Clarity, indentation, error messages, desk checking, edge cases, test sets, and conditional refactoring.
Repetition with while
Condition-controlled loops, variable updates, sentinels, infinite-loop prevention, counting, and running totals.
Repetition with for and counters
Counter-controlled repetition, numeric sequences, predictable traversals, sums, countdowns, and averages.
Accumulators, counters, minimum, maximum, and average
Repetition patterns with accumulators and counters for minimum, maximum, average, occurrences, conditional sums, and simple reports.
Nested loops
Nested loops applied to tables, text patterns, grids, and two-dimensional traversals.
Flow control in loops
Use of break and continue, input validation, and interactive menus with in-memory data.
Integrated review: conditionals and loops
Integration of decisions, logical operators, and loops in progressively challenging problems.
- Assessment
Practical assessment 1
Assessment of sequential algorithms, conditionals, logical operators, and repetition structures, followed by analysis of the main improvement areas.
Functions: motivation and modularization
Program organization with functions and procedures, reduction of repeated code, and reuse of recurring calculations.
Parameters, return values, and scope
Parameters, return values, the distinction between printing and returning, local and global variables, validation, and function composition.
Problem decomposition with functions
Decomposition of larger programs into smaller functions, definition of responsibilities, and solution composition.
- 3rd term · 04/08–29/09/2026
Assessment plan · 20 points
Assessed exercises: 8 points (40%); practical assignment: 4 points (20%); exam: 8 points (40%).
Lab: modularization with functions
Application of functions, parameters, and return values in a modular program, including input validation and reusable calculations.
Introduction to recursion
Base cases, recursive calls, and comparison of iterative and recursive solutions for factorial, counting, and summation problems.
Lab: recursion and iterative solutions
Implementation and comparison of recursive and iterative solutions for factorials, sums, counting, and simple sequences.
Arrays: creation, indexes, and traversal
One-dimensional structures, indexes, access, updates, and array traversal with loops.
Matrices: rows, columns, and traversal
Two-dimensional structures, organization into rows and columns, and traversal with nested loops.
Exercise review: matrices
Solution and analysis of the matrix exercise, including indexes, traversal, test cases, and alternative implementations.
- Assessment
Assessed exercise 1 — Matrices (4 points)
Individual matrix problems involving traversal, search, sums, counting, diagonals, and row and column totals.
Records and practical assignment introduction
Records, dictionaries, and simple objects for representing entities with fields of different types. Start of the practical assignment: an in-memory registry system using heterogeneous structures.
- Assessment
Assessed exercise 2 — Records (2 points)
Creation, lookup, and update of student, product, or contact records, using suitable data types and field validation.
- No class
Brazilian Independence Day
Brazilian Independence Day national holiday.
- Assessment
Assessed exercise 3 — Lists of records (2 points)
A collection of records with entity insertion, listing, search, and updates, organized with functions and data validation.
Lab: practical assignment development
Development of the in-memory registry system with a list of records, menu, creation, listing, search, update, deletion, and data validation.
- Assessment
Practical assignment due — Record-based registry (4 points)
An in-memory registry system using heterogeneous structures and functions. Requirements: menu, creation, listing, search, update, deletion, and data validation.
Review for the 3rd-term exam
Review of functions, recursion, arrays, matrices, records, and lists of records, including integrated problems and test-case analysis.
- Assessment
3rd-term exam — 8 points
Exam covering the term content: functions, recursion, arrays, matrices, records, and lists of records.
Assessment feedback and solution analysis
Analysis of the assessment solutions, identification of the main errors, and review of problem-solving strategies.
Recovery and 3rd term wrap-up
Review of arrays, matrices, and records, with a recovery activity and synthesis of the term's content.
- End of the 3rd term · 29/09/2026
Files: basic reading and writing
Data persistence through opening, reading, writing, and closing text and CSV files.
CSV files and registry integration
Tabular data organization in CSV, separators, headers, row processing, and registry persistence.
Final project: specification and planning
Definition of theme, minimum requirements, features, data structures, persistence, and project decomposition into functions.
Final project: guided development I
Initial project structure with a menu, core functions, data entry, and data listing.
Final project: guided development II
Search, filters, validation, file persistence, incremental testing, and bug fixing.
- Assessment
Project presentations and assessment
Feature demonstration and explanation of implementation decisions. Assessment of code organization, functions, data structures, files, and solution clarity.
Wrap-up, general review, and recovery
Synthesis of variables, conditionals, loops, functions, lists, records, and files, with self-assessment and review of topics that need reinforcement.
Resources
- JavaScript on Beecrowd: input, output, and local testing
A guide to running programs with Node.js before submitting to Beecrowd.
- TypeScript Playground
The environment used for coding during the course.
- Programming Logic and Algorithms with JavaScript
Book by Edécio Fernando Iepsen.