Course Descriptions
A breakdown of the courses that built my foundation in software development, along with reflections on what I learned, challenges I faced, and how each course connects to real-world work.
CSC-251 – Advanced Java Programming
Focus: Continuation of Java programming with deeper emphasis on object-oriented programming and event-driven application development.
What I Learned
This course expanded on the concepts introduced in CSC-151 and pushed my understanding of Java development further. I gained more experience designing and implementing object-oriented programs, working with classes and objects in larger projects, and structuring applications more efficiently.
One of the major areas covered was event-driven programming, which involved creating interactive applications and managing how programs respond to user input. This course helped strengthen my ability to design, test, and debug more complex Java programs.
Challenges
The biggest challenge I faced in this course was working with JavaFX to build graphical user interfaces. Developing front-end elements inside Java applications required understanding event handling, layout structures, and how different components interact within a windowed application.
While it was initially difficult, gaining experience with JavaFX helped me better understand how user interfaces function in desktop applications.
Real-World Use
I have used Java outside the classroom multiple times, particularly when creating custom Minecraft modifications for myself and friends. These projects require understanding Java logic, debugging code, and modifying existing systems to implement new functionality.
Experiences like this reinforced the programming skills learned in both CSC-151 and CSC-251 while showing how Java can be used in real-world development projects.
Artifacts
CSC-151 – Java Programming
Focus: Introduction to Java programming fundamentals and object-oriented programming concepts.
What I Learned
Throughout the course, I developed a strong understanding of Java syntax and object-oriented programming principles. I learned how to structure programs using classes and methods, manage program logic using control statements, and apply debugging techniques to identify and fix errors in code.
This course helped strengthen my programming mindset and reinforced the importance of writing organized, readable, and maintainable code.
Challenges
One of the biggest challenges I faced during this course was keeping Java syntax and keywords separate from other languages I had previously learned, particularly C++. While both languages share many programming concepts, they differ in structure and implementation.
Over time, consistent practice helped me clearly distinguish the differences between the languages and improve my ability to switch between them.
Real-World Use
Outside of the classroom, I have applied Java in practical ways by developing custom Minecraft modifications for myself and my friends. Creating these mods required understanding Java programming logic and applying problem-solving skills to modify game mechanics, implement new features, and troubleshoot errors.
This experience helped reinforce the concepts learned in the course while showing how programming skills can be applied to real projects.
Artifacts
CSC-121 – Python Programming
Focus: Introduction to programming using the Python language with emphasis on algorithms and core programming principles.
What I Learned
In this course, I learned how to design and build programs using the Python programming language. The class focused on applying common programming concepts such as control structures, functions, and algorithms while using Python’s standard library.
Because Python is known for its readability and flexibility, the course also helped me understand how different programming languages approach similar problems in different ways. This experience helped expand my ability to work across multiple programming languages.
Challenges
Since I had already worked with Java before taking this course, one of the biggest challenges was adjusting to Python’s syntax and structure. I initially found myself writing code in a very Java-like style, including creating unnecessary classes and structures that Python often does not require.
Another adjustment was getting used to Python not requiring strict type checking at compile time. Over time, I became more comfortable with Python’s dynamic nature and began writing more efficient and idiomatic Python code.
Real-World Use
I have used Python frequently outside of the classroom, particularly when working with Raspberry Pi devices and developing Discord bots. Python’s simplicity and large library ecosystem make it ideal for small automation projects, hardware interaction, and creating custom tools.
These projects helped reinforce the programming concepts learned in the course while allowing me to apply them to practical and creative applications.
Artifacts
CSC-134 – C++ Programming
Focus: Introduction to computer programming using the C++ language with an emphasis on object-oriented programming concepts.
What I Learned
This course served as my first real introduction to programming and software development. Through learning C++, I was introduced to the core fundamentals of programming, including variables, control structures, functions, classes, and object-oriented programming principles.
I learned how to design programs from scratch, structure logic in a way the computer can interpret, and follow the full development process of coding, testing, and debugging applications. This class helped build the foundation for every programming language I learned afterward.
Challenges
One of the biggest challenges in this course was simply learning how to think like a programmer. Since this was my first coding class, understanding programming logic and syntax felt like learning an entirely new language.
Over time, consistent practice and working through coding exercises helped me become more comfortable with writing and troubleshooting programs.
Real-World Use
While I have not used C++ extensively outside the classroom yet, the foundational concepts learned in this course apply directly to nearly every programming language I use today. Even small tasks, such as writing simple command-line utilities or testing program logic, can be done quickly using the skills gained in this class.
The problem-solving and structured thinking developed here continue to influence how I approach programming in languages like Java and Python.
Artifacts
WEB-182 – PHP Programming
Focus: Introduction to server-side web development using the PHP scripting language to create dynamic web pages.
What I Learned
In this course, I learned how PHP is used to add server-side functionality to websites. The class focused on creating dynamic web pages that interact with user input, process form data, and generate content through embedded scripting within HTML.
I also learned how PHP works alongside front-end technologies to create full web applications. This course helped me understand how websites can move beyond static pages and respond to user interaction.
Challenges
One of the challenges I faced in this course was getting comfortable working with a local server environment in order to properly run and test PHP files. Since PHP runs on the server instead of directly in the browser like JavaScript, it required setting up and managing a development environment to see changes in real time.
Once I became more familiar with the process, it became much easier to test and debug server-side code.
Real-World Use
The concepts learned in this course are directly relevant to modern web development. PHP can be used to process form submissions, manage user data, and generate dynamic website content.
In projects like my capstone portfolio, PHP can be used to power features such as contact forms or simple data processing that require server-side logic.
Artifacts
WEB-115 – Web Markup and Scripting
Focus: Introduction to JavaScript and W3C web programming standards.
What I Learned
In this course, I learned the fundamentals of JavaScript and how it is used to add functionality to websites. I gained experience with JavaScript syntax, functions, object-oriented concepts, and how scripts interact with HTML elements to create dynamic web behavior.
This course helped me understand how client-side scripting improves user interaction and overall website functionality.
Challenges
One of the main challenges I faced during this course was debugging poorly structured or inefficient code. JavaScript errors can sometimes be difficult to trace, especially when multiple scripts interact with each other.
Through practice and repeated debugging, I improved my ability to identify logical errors and write cleaner, more organized code.
Real-World Use
The skills learned in this course are directly applicable to web development projects. For my capstone portfolio, I will be using JavaScript to add interactive elements and improve the functionality of my website.
Understanding JavaScript also allows me to create more responsive and engaging user experiences in future development projects.
Artifacts
DBA-120 – Database Programming
Focus: Introduction to database programming using SQL with emphasis on data definition, data manipulation, and report generation.
What I Learned
In this course, I learned how to work with relational databases using SQL. The class focused on writing queries to create, retrieve, update, and manage stored data within a database system.
I gained experience working with different types of SQL statements, including data definition and data manipulation commands, as well as generating reports based on stored data. This course helped me understand how applications store and manage large amounts of information efficiently.
Challenges
One of the biggest adjustments in this course was realizing that database programming is different from traditional programming languages. Instead of writing structured code with logic and control flow, the work primarily involved writing queries to retrieve and manipulate data.
It took some time to shift my thinking toward working with queries and understanding how databases respond to different SQL commands.
Real-World Use
I have used SQL outside of the classroom when working on projects that require storing and retrieving data. In particular, I have used PostgreSQL databases to manage data for Discord bots that I have developed.
Using a database allows these programs to store persistent information and retrieve it efficiently when needed.
Artifacts
CTS-285 – Systems Analysis & Design
Focus: Introduction to methodologies used to analyze, design, and develop information systems.
What I Learned
In this course, I learned how software systems are planned and structured before development begins. The class focused on understanding the systems development life cycle (SDLC), project management concepts, and how developers analyze problems in order to design effective technical solutions.
I also learned about different tools and techniques used to model systems, plan development phases, and organize projects. This course helped me better understand the importance of planning and design in successful software development.
Challenges
One challenge in this course was learning how to think about software from a higher-level perspective instead of focusing only on writing code. The class required analyzing problems, breaking them down into system requirements, and designing structured solutions before any development begins.
Adjusting to this planning-oriented approach required careful attention to detail and a different way of thinking compared to traditional programming assignments.
Real-World Use
The concepts from this course apply directly to real-world software development. Before writing code, developers must understand the problem they are solving and design a system that meets those requirements.
The planning and analysis techniques learned in this course help guide the development process and reduce potential issues during implementation. These skills are especially useful when working on larger projects where organization and clear design are essential.