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()andConsole.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, andelse. - 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/elsebranches.
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.