Video summary
PROGRAMACIÓN I COMISIÓN C y D ENCUENTRO 2
Main summary
Key takeaways
Main ideas, concepts, and lessons
1) Course logistics and prerequisites
- This is Meeting #2 for the “Programming class” (Commission C y D, referred to as the “number one programming class”).
- The teacher checks whether students can:
- Install Git Bash
- Follow the installation videos without issues
- The teacher clarifies that some video steps (e.g., clicking “Next”) may be slightly outdated, but the key is to correctly select options related to Git Bash shortcuts.
2) Git Bash installation focus (important setup detail)
- During Git Bash installation:
- Most screens involve repeatedly clicking “Next”
- Students must ensure shortcut options are enabled so Git Bash can be opened from the right-click context menu
- The teacher explains:
- There are three checkboxes early in the installer
- Activating the first checkbox often auto-activates the other two by default
- The exact wording/availability may vary depending on the Git Bash version, but the goal is to enable the required shortcut functionality.
3) Why GitHub + Git Bash matter for the course
Students are instructed to:
- Create a GitHub account
- Install Git Bash
Then they will work inside a folder that is synced to GitHub.
Key benefits emphasized:
- All submitted exercises (Python, PCN, etc.) must be uploaded to the synchronized folder/repository
- Having repositories on GitHub is useful for:
- Job interviews (evidence of programming work)
- Practice, since many companies use GitHub
4) Forum participation requirement
- The teacher states the forum is mandatory.
- Due to time constraints, they may not respond to every post individually:
- If answers are wrong or don’t match the activity instructions, they will respond/correct
- If they don’t respond, responses likely meet expectations
5) Visual/meeting management (Teams/Meet backgrounds)
The teacher and students discuss updating a virtual background:
- In camera settings (expanded options) → backgrounds/effects/video settings
- Purpose:
- Improve class appearance
- Maintain privacy
Core technical content: “Problems in the field of computer science” (computing problem categories)
The teacher frames programming readiness as requiring:
- Minimum knowledge of both software and hardware
- Ability to troubleshoot
A) Definition of the topic
In computer science, problem analysis means identifying, understanding, and solving issues related to:
- Development, maintenance, and use of computer systems
Process:
- Analyze the problem
- Identify root cause
- Develop an effective solution
B) Hardware vs. software (definitions and distinctions)
- Software: everything digital you can interact with that is not physical, including:
- Operating system
- Applications/tools/frameworks (e.g., Visual Studio Code)
- Hardware: physical components inside the computer/tower/case, such as:
- CPU/processor
- Motherboard
- Video card
- RAM
- Clarification from the teacher:
- Peripherals like mouse/keyboard/screen are treated as peripherals (physical external devices), not core “hardware” in this phrasing.
C) Troubleshooting categories (what can go wrong)
1) Software errors
Examples:
- Applications failing to open
- Programming errors
Suggested approach:
- Source code analysis (review code and project structure)
Also consider:
- Problems caused by third-party software (e.g., browser issues, Chrome blocking pages due to security settings)
2) Hardware problems
Key examples and concepts:
- Processor cooling
- Heatsink + fan + thermal paste
- Thermal paste doesn’t “cool” the CPU directly; it improves contact between the CPU and heatsink
- Hard drive failures / disk issues
- Not always “burning out”; sometimes it’s:
- Disk full / near full
- Fragmentation effects (for HDDs)
- Not always “burning out”; sometimes it’s:
SSD vs HDD
- SSD: fast “solid-state” storage without moving parts
- HDD: uses moving parts
Lesson emphasized:
- Budget/lower-end machines may be “deceptive” (e.g., soldered storage that’s not easily replaceable)
3) Security problems (viruses/malware/hacking)
Security is presented as essential even for programmers to avoid:
- Vulnerabilities in delivered software
- Data theft
Principles mentioned:
- Encrypt sensitive data (passwords, user info)
- Secure forms/transmission mechanisms (teacher references PHP-like handling)
Threat types described:
- Annoying viruses
- Spam/popups that irritate
- Trojans/worm-like malware
- Slows systems and damages files over time
- Removal: antivirus or formatting if detection fails
- Ransomware
- Steals/encrypts information
- Often connected (per the teacher) to downloading pirated/cracked software
- Behavior described:
- Runs hidden scripts
- Captures activity (including browsing and credentials)
- Encrypts data; decryption is generally infeasible
Detection/mitigation advice:
- Use an antivirus (teacher emphasizes having one good one)
- Avoid suspicious/cracked sites and unsafe TLDs
- Don’t trust site “secure” indicators alone
Additional discussion:
- HTTPS/SSL (“secure” sites) does not guarantee safety from malicious content
- Human behavior is described as the biggest factor in security failures
Question: multiple antiviruses?
- Teacher’s answer: don’t install more than one antivirus
4) Performance issues
Symptoms:
- Slow or crashing applications
Common causes emphasized:
- RAM saturation (memory usage)
- CPU temperature / overheating
- Background services and disk usage spikes
Example procedure/tools:
- Open Task Manager
- Right-click taskbar/start → Task Manager, or press Ctrl+Shift+Esc
- Check:
- CPU %, Memory %, Disk %, Network %, GPU %
- Look for red/highlighted issues such as Memory 100%
Optimization suggestions:
- Disable unnecessary startup apps/services
- Possibly disable system services (teacher mentioned):
- Windows Search
- SysMain/SisMain-related service
- Clean temporary files using:
%temp%via Runtempvia Run (system temp)
- Warning:
- Some temp files may not delete—use “Skip” when retry dialogs appear
Detailed methodology/instructions: Git Bash + GitHub workflow
This section provides a step-by-step process for setting up a Git repository and syncing a local folder to GitHub.
Step-by-step: Create local folder + file (pre-Git)
- Create a new folder on the desktop
- Right-click desktop → New folder
- Name it (teacher uses something like):
- “practical practices under programming” / “programming exercises” (underscored naming)
- Inside the folder, create a text file using Notepad
- Example contents:
- “welcome”
- “hello”
- Save as welcome.txt
- Example contents:
Step-by-step: Open Git Bash in that folder
- Ensure installation enabled the right-click Git Bash option
- Right-click inside the folder → “Open Git Bash here”
Step-by-step: Create a GitHub account (prerequisite)
- Go to GitHub and:
- Create account
- Log in
- Log in via Google or via email/username + password
- Email verification code may be required depending on sign-up method
Step-by-step: Create a GitHub repository
- On GitHub:
- Click New (green button)
- Choose repository name (teacher uses consistent naming like programming practices…)
- Optionally add a description
- Choose visibility: usually Public
- Decide whether to enable README:
- Teacher keeps README disabled
- Click Create repository
Step-by-step: Initialize Git and upload the local folder to GitHub
Commands are run inside Git Bash.
1) Initialize the repository locally
- In Git Bash (inside the empty folder):
- git init
2) Check status
- git status
- Expected:
- Files appear as “uncommitted” / red if not staged yet
3) Add files to the staging area
- Example for one file:
- git add welcome.txt
- Teacher’s general recommendation:
- git add . (adds everything in the folder)
4) Commit the staged changes
- git commit -m "project uploaded"
- Teacher explains:
- -m is the commit message
- The message should describe what changed (e.g., “project uploaded”)
5) Create/ensure main branch
- GitHub-related branch naming referenced by the teacher:
- git branch -M main
- Teacher’s explanation:
- This selects the main branch (the main line in the repository)
6) Link local repo to the remote GitHub repo
- Use a remote add command with the repository URL:
- git remote add origin https://github.com/.../....git
7) Push to GitHub (upload)
- git push -u origin main
- Teacher explains “push” as sending local commits to the remote GitHub repository
Verification:
- Refresh GitHub to confirm welcome.txt appears
- Open the file to confirm its content (e.g., “hello”)
- Confirm the commit message shown on GitHub matches what was committed
Step-by-step: Sync changes later via Visual Studio Code + Git
- Teacher demonstrates editing
welcome.txtin Visual Studio Code- Save after editing (e.g., “hello” → “Hello, Pepe”)
- Observed:
- The file appears as modified (VS Code shows “M” / modified status)
- Then:
- In VS Code Git panel:
- Create a commit with a message (e.g., “Pepe was added to the greeting”)
- Synchronize/push changes
- In VS Code Git panel:
- Verification:
- Refresh GitHub → commit history updates and text changes appear
Step-by-step: Add new exercise files (e.g., Python)
- Create a new file (e.g.,
exercise1.pyor a similarly named.p/ source file) - Save, commit, and push using VS Code Git integration
- GitHub should then show:
- The new file added
- Contents visible in the repository
Teacher emphasizes this workflow for:
- PCN exercises
- Python exercises
- Other submitted artifacts
Step-by-step: Deleting a GitHub repository (when needed)
- Delete from GitHub UI:
- Teacher shows deletion via GitHub settings
- Scroll → Delete this repository
- Confirm multiple times (password required)
- Alternative delete methods are mentioned (console/terminal), but UI is recommended.
Speakers/sources featured
- Teacher (primary speaker)
- Paloma (student; asks about Git Bash installer “Next” / version mismatch and background)
- Victor (student; asks about Git Bash/version and RAM/performance matters)
- Miguel (student; participates in background/installer questions)
- Silvia (student; asks about forum/clarification reasons; acknowledges)
- Juan (student; participates in security/HTTPS confusion)
- Maxi (student; participates in Git/GitHub questions and scheduling)
- José (student; mentions security/HTTPS/safety considerations)
- Juan Manuel (student; mentioned with ransomware-related resources/links)
- ForTi/Forti (referenced as a company/source in security discussion; ransomware/security impact attributed to leaked usernames/passwords)
- BitDefender (antivirus brand used as an example)
- Malwarebytes (mentioned as “Malwides/Malwabytes” in browser extension context)
- Browsers: Google Chrome, Firefox, Brave
- Meeting platforms: Microsoft Teams / Google Meet
- Cloud storage: OneDrive, Google Drive
- Windows services: Windows Search, SysMain/SisMain
- GitHub (main source for repository creation and commands)