home

IT1050 Programming Logic

Learning Log — IT1050 Programming Logic: Lab-by-Lab Reflections

Repository: timothymasso/IT1050-Programming-Logic · CRN 81766

Over the semester I completed a sequence of focused C# labs that built up programming fundamentals step-by-step. Below is a concise blog-style walkthrough of each lab, the core concepts I learned, and why they matter. This progression is practical: begin with I/O and data, add control flow and math, then model real-world entities with objects and collections.

Lab One — Getting Started (LabOneContent)

What I learned

  • C# console application structure (Main, namespaces).
  • Primitive types: int, double, string, bool.
  • Console I/O with Console.ReadLine() and Console.WriteLine().
  • Parsing input (int.Parse, double.Parse, TryParse) and basic arithmetic.

Lab Two — Decisions and Branching (LabTwoContent)

What I learned

  • Comparison operators: >, <, >=, <=, ==, !=.
  • Boolean operators: &&, ||, !.
  • Control flow with if, else if, and else.
  • Simple input validation using conditional checks.

Lab Three — Commission Calculations (CommissionLab)

What I learned

  • Applying percentages and basic finance math (commissions, rates).
  • Tiered logic: different rates for sales ranges or thresholds.
  • Numeric formatting (currency, rounding).

Lab Four — Speed Calculations (SpeedLab)

What I learned

  • Translating formulas into code (e.g., speed = distance / time).
  • Using conditionals to classify numerical results (within limit vs speeding).
  • Handling edge cases (zero or negative time).

Lab Five — Odd/Even (OddEven)

What I learned

  • The modulus operator % to get remainders.
  • Determining parity (odd vs even) of integers.
  • Using the result in if/else branches.

Lab Six — Parking Fee Calculator (ParkingCalculator)

What I learned

  • Time arithmetic: computing elapsed time, rounding up to billing increments (e.g., next hour).
  • Piecewise fee computation: different billing rules for different durations.
  • Breaking real-world logic into clear program steps.

Lab Seven — Employee Model (EmployeeLab)

What I learned

  • Intro to object-oriented design: creating an Employee class with properties.
  • Methods to encapsulate behavior (e.g., CalculatePay()).
  • Encapsulation: grouping related data and functionality.

Lab Eight — Employee Lab II (Employeelab2)

What I learned

  • Extending classes with constructors, additional properties, and behaviors.
  • Managing multiple objects using arrays or List<T>.
  • Potential introduction to persistence (file I/O) or more advanced methods (raises, benefits).

Lab Nine — Faculty Records (FacultyLab)

What I learned

  • Managing collections of records: searching, sorting, and filtering.
  • Iterating collections with loops and applying selection criteria.
  • Introduction to library helpers (and optionally LINQ) to query data.

Lab Ten — Lists and Dynamic Collections (LabList)

What I learned

  • List<T> operations: add, remove, insert, iterate.
  • Differences between fixed arrays and dynamic lists.
  • Common list-based algorithms: search, indexing, and simple mutations.

Mini Exams (Mini Exam 1 & Mini Exam 2)

What I learned

  • Rapid reinforcement of fundamentals: variables, conditionals, loops, and arithmetic.
  • Timed or constrained problem solving to solidify understanding.

VSCode Bonus Lab

What I learned

  • IDE productivity: running code, debugging, breakpoints, and stepping through code.
  • Useful extensions and shortcuts that speed development.
  • Formatting and diagnostic tools (linting, IntelliSense).

Final Quiz

What I learned

  • A comprehensive review across types, control flow, collections, and OOP.
  • Reinforced concepts and identified remaining areas to practice.

Final Project

What I learned

  • Integrating topics: class design, collections, validation, user interaction, and program flow.
  • Designing a program: breaking problems into classes and methods, iterative implementation, and testing.
  • Delivering an end-to-end solution that demonstrates cumulative skills.