Software Development Honor

Vocational Activities

Requirements

  1. Have the Computing V honor.

    Answer: Computing V teaches advanced fundamentals (programming logic, data structures, basic algorithms) that are prerequisites for Software Development, an Honor focused on creating real programs. Without this foundation, concepts such as variables, loops, functions, and development tools would lack context. — The pedagogical progression respects increasing complexity. Computing I-V covers everything from fundamentals to intermediate programming. Software Development requires an IDE, version control (git), debugging, and the software life cycle. Without prior mastery of logic and algorithms, the Pathfinder would get stuck. At tech camporees, tiered workshops follow this logic.

  2. State what software is and what its functionalities are for the control and manipulation of information.

    Answer: Software is the set of instructions (programs) that tell the computer what to do. Its functions include: storing information in databases, processing data (calculations, transformations), presenting results (interface), communicating between systems (networks/APIs), and automating repetitive tasks with logical rules. — Software differs from hardware (physical components). Categories: system (operating systems), applications (Word, Excel, games), embedded (in household appliances). Languages (Python, JavaScript, Java) are used to create them. SaaS (Software as a Service) is a modern cloud-based model. Without software, hardware is inert — it is software that gives the computer its usefulness.

  3. Define a programming language and discover the difference between high-level and low-level programming.

    Answer: A programming language is the language used to write software. Low-level (Assembly, Machine Code) is close to the hardware, fast but difficult. High-level (Python, Java, JavaScript) is close to humans, easy to read and write, being translated by the compiler or interpreter for the machine. — Low-level has instructions directly to the processor (MOV, ADD, JMP). High-level abstracts (print, if, for). A compiler (C, Rust) translates everything at once; an interpreter (Python) executes line by line. C is considered mid-level (close to the hardware but portable). JavaScript dominates the web; Python leads in data science; Java is robust in corporations.

  4. Define the following types of programming studies:
    • Structured programming
    • Functional programming
    • Object-oriented programming
    • Event-driven programming

    Answer: 1) Structured programming: a paradigm that organizes code into three basic control structures — sequence, decision (conditions, if/else), and repetition (loops) — avoiding disorderly jumps (goto). It favors clarity and maintenance. Example languages: C and Pascal. 2) Functional programming: a paradigm that treats functions as first-class citizens (they can be passed as arguments and returned), emphasizes pure functions without side effects, and the immutability of data. Examples: Haskell and Lisp. 3) Object-oriented programming: a paradigm that models the problem through objects that bring together data (attributes) and behaviors (methods), using concepts such as classes, inheritance, encapsulation, and polymorphism. Examples: Java and Python. 4) Event-driven programming: a paradigm in which the flow of the program is determined by events — user actions (click, key pressed, mouse movement) or system messages — handled by functions called "event handlers". A typical example: JavaScript on web pages. — Each paradigm has its ideal niche. Structured is the historical foundation. Functional is growing in popularity (Scala, Elixir). OOP dominates corporate software. Event-driven governs graphical interfaces and the web. Modern languages (Python, JavaScript) support multiple paradigms. Knowing each one expands the programmer's mental tools for solving different problems.

  5. Define the terms below:
    • Binary code
    • Scope
    • Flowchart
    • Programming
    • Database
    • Compilation

    Answer: 1) Binary code: the most basic form of representing data and instructions in the computer, using only two digits, 0 and 1 (bits). It is the machine language that the processor executes directly. 2) Scope: the reach or region of the program in which a variable (or identifier) is visible and can be used. It can be global (accessible throughout the program) or local (accessible only within a block or function). 3) Flowchart: a graphical representation of the logic or flow of a program or process, using standardized symbols (rectangles for actions, diamonds for decisions, arrows for the flow) that show the sequence of steps. 4) Programming: the act of writing, in a language the computer understands, the set of instructions (code) that defines how the program should solve a problem or perform a task. 5) Database: an organized system or set for storing, relating, and retrieving information in a structured way, usually managed by a DBMS (Database Management System), such as MySQL or PostgreSQL. 6) Compilation: the process of translating source code, written in a programming language readable by humans, into machine code or an executable that the computer can run. It is done by a program called a compiler. — Binary is the basis of hardware (each bit is 0/1). Scope avoids conflicts between variables (local vs global). A flowchart uses standardized symbols (diamond=decision, rectangle=process). SQL manages relational databases. Compilation generates .exe or .o files. NoSQL (MongoDB, Redis) is a modern alternative. Knowing the terms makes technical communication easier.

  6. Know the main steps to create a piece of software.

    Answer: 1) Requirements gathering (understanding the problem). 2) Analysis and modeling (planning the architecture). 3) Coding (writing the code). 4) Testing (validating that it works). 5) Deployment (releasing it for use). 6) Maintenance (fixing bugs and evolving it). These steps form the software development life cycle. — Life-cycle models include waterfall, iterative, and agile (Scrum, Kanban). Each step generates documentation. Testing includes unit (TDD), integration, and user testing. Deployment uses CI/CD (Git, Jenkins, Docker). Maintenance is 60-70% of the total cost. At tech camporees, mini-projects follow these steps for real hands-on experience.

  7. Describe the use of UML for the development phases of a piece of software.

    Answer: UML (Unified Modeling Language) is the standard visual language for modeling software. It uses diagrams (use case, classes, sequence, activities) to document requirements, design the architecture, and visualize behavior. Each development phase has specific diagrams that facilitate communication between programmers and stakeholders. — UML was standardized by the OMG in the 1990s. It has 14 types of diagrams: structural (classes, components) and behavioral (sequence, activities). Tools such as StarUML, draw.io, and PlantUML make creation easier. Analysis uses use cases; design uses classes; integration uses sequence. UML documentation is living and evolves with the project.

  8. Which techniques are best applied in Agile development? Present a case study about this technique.

    Answer: The most widely applied techniques in Agile development are: Scrum (short cycles called sprints, with the roles of Product Owner, Scrum Master, and Development Team, daily meetings, and incremental deliveries); Kanban (a visual board with To Do / Doing / Done columns and a work-in-progress limit); and XP / Extreme Programming (TDD, pair programming, continuous integration, and frequent releases). Case study: Spotify adapted Scrum by creating Squads (small, autonomous teams), Tribes, Chapters, and Guilds, allowing features to be delivered quickly while maintaining team autonomy; another example is the use of Scrum by a team that reduced deadlines and increased quality by delivering in two-week sprints. The 'present a case study' part is the associated practical activity. — The Agile Manifesto (2001) prioritized individuals over processes. Scrum has ceremonies: planning, daily, review, retrospective. Kanban emerged at Toyota. XP emphasizes technical quality. Spotify, Netflix, and Magazine Luiza use Agile. Sprints last 1-4 weeks. User stories describe requirements from the point of view of the end user.

  9. In which development projects is it possible to apply RUP, and what are its phases?

    Answer: RUP (Rational Unified Process) is applied in medium and large projects, with complex requirements, larger teams, and a need for detailed documentation and traceability — for example banking systems, ERPs, government systems, and critical software. Its four phases are: 1) Inception (defining scope, vision, and feasibility), 2) Elaboration (defining the architecture and mitigating the main risks), 3) Construction (coding and testing most of the system), and 4) Transition (delivering the product to the user, training, and adjusting). Each phase is developed in iterations. — RUP was created by Rational (IBM) based on UML. It is iterative and incremental, with workflows (business modeling, requirements, analysis, implementation, testing). Heavier than Scrum, but it ensures rigor. Suitable for projects with regulation (health, finance, government). Today it is partially in disuse, replaced by agile methods in smaller and more dynamic projects.