Built foundational programming knowledge using Python, Java, and C, covering object-oriented principles, data structures, recursion, and basic data handling.
Developed GUI-based desktop applications using PyQt, applying CRUD operations.
Reinforced best practices in SW development and version control - Jupyter Notebook, Git, documentation, and C programming workflows.
Gained full-stack development experience, including automated builds, test harnesses, documentation standards, and version control builds.
Explored rigorous testing principles and quality assurance, with emphasis on unit, integration, and system-level testing strategies.
Applied software engineering lifecycle and communication skills through team projects, requirement analysis, and deliverable documentation.
Studied human–computer interaction principles: user research, usability testing, prototyping, accessibility, and interaction design frameworks.
Practiced creating wireframes, low- and medium-fidelity prototypes, and iterative design responses informed by user-feedback loops.
Learned documentation and communication of design rationale through team-based UI/UX deliverables and presentations in course projects.
Developed formal reasoning and logic skills, using truth tables, symbolic logic, and proofs to build reliable, verifiable code structures.
Laid the groundwork for data-centric problem solving via courses like statistics, fostering analytical thinking and quantitative methods to approach debugging and optimization.