Posts Tagged ‘Software Engineering’

Programmer’s Words to the Wise

Monday, January 21st, 2013

Found this collection of words of wisdom from Barry Boehm’s retrospective of the past 50 years of software development and thought it might help our software engineers and digital arts engineering students. The piece has been somewhat edited and expanded by William Payne, a Data Science Engineer & Quantitative Software Developer.

Some of the topics covered are: Skepticism and Critical Thinking, Flexibility and Craftsmanship, Clarity and Communication and Total Commitment to Quality. Lots of food for thought.

Anything you would add?

Programming a binary search algorithm

Monday, April 11th, 2011

My newest software engineering project consisted of writing a program that would write a binary search algorithm. In my previous project, I had mentioned that I avoided using arrays, but in this project I had to use arrays. An array is an arrangement of objects, but in this case it would be an arrangement of integers. The binary search function should look into the array and find the index where the value is being held.

For this project I decided to take an extra step. I was to assume that the data pool size was given and the data was sorted. However I took the approach to figure out how to dynamically allocate an array in my C programming course during run-time. This means, that the program would ask the user for the size of the array, rather than having a fixed sized. This part wasn’t too difficult. I needed to allocate space in the computer’s memory in order to be able to create an array that will fit in the allocated memory.

So now that I’ve set up my array at run-time, I now gave the user the option to enter the data pool. However I had to make sure that the data was sorted, as the user may input the data in no specific order. This was tricky, as I have not worked with arrays before, I searched online on how to sort arrays, and I found out a sorting technique called bubble sort. Bubble sorting consists of looking through the array and comparing adjacent value and swapping them if they are in wrong order. This type of sorting is somewhat slow, but in my case, I’m not expecting to sort throw large pool of data. Great, so now I have established my dynamic array and I have sorted the array, now I can focus on writing the binary search algorithm.

The idea behind the binary search algorithm or half-interval search algorithm is to compare two values (the first index and last index) to the middle index of the array, if the values are equal, there value has been found, if not, it will take a new set of values and compare the middle index again until the values are equal. The comparison is done with by size comparison, is the middle index greater than or less than the search query.  For this part I tried a few methods and I wasn’t getting quiet what I was expected, so what I decided to do, was to visually see how the algorithm worked and for that I did an example on paper and pen. After I saw what actually needs to happen, I could then write the algorithm so replicate that process. I found out that writing the algorithm down in paper helped a lot as I was able to solve the algorithm after 1 single try after writing it down, in comparison with 2 of my previous failures of just thinking of the algorithm.  This is how I went about completing my software engineering project for my C Programming course. I enjoyed working on this project mainly because I did most of the work without getting extra help

-Jared D.

Programming a website

Monday, March 21st, 2011

Over spring break, I decided to try to use some of the knowledge I’ve learned in my software engineering class and try to apply it in other projects.  I found out that the programming language PHP which is used in web based applications, is very similar to that of the program language which I am currently learning, C programming. I finally found a side project to work on that would also help learn another programming language.  The project would consist of making a website that would allow the user to register and login to view the member only section of the website.

In my previous blog, I spoke about “for loops” and these loops also are used in similar way in PHP, lucky for me, I had some experience working with for loops. I was amazed in the similarity of the two languages. It seemed like I was coding in C with slight syntax changes, but the overall experience is very alike. Function calling in PHP is just like function calling in C, which helps organize the code so that you can read the code nicely.  I had to use a function call to display the country option in the register page, so that when the user puts in their info, they can also select what country they are from. Although I got the basic pages down rather fast, it took me some time to learn how to error proof the registration page, as I haven’t spent much time doing this. I had to make sure that when the user was asked to input some information that the field was not left blank or that if we ask for a first name, it wouldn’t allow the use of numbers, but would allow certain special characters that might actually be used in names.

Overall this project was interesting, although it is not completely finished, I completed a large section. I learned that material learned in class can be applied to other projects that don’t necessarily need to be of the same type, some skills are transferable and a lot of what I am learning are the building blocks for other programming languages.

Programming Pascal’s Triangle

Monday, March 14th, 2011

After long hours of studying and trial and error at Cogswell’s programming lab, I’ve finally completed my software engineering project.  The project was to re-create Pascal’s Triangle in C programming.

Sure, it may look easy, but I’ve stumbled across multiple problems with this project.  First I needed to decide how I was going to approach the problem, and how to create a formula for the program. Luckily, Pascal’s Triangle is a well known problem. There are plenty of examples online explaining how the triangle works.  After I figured out the formula, I then had to write a function so that the computation could take place and the output is printed to the computer screen. This is where I encountered the most difficulty, writing a function that prints the output in a triangular form. To achieve this, I had to use all the resources I had available to me:  the internet, tutors, and the professor of Cogswell’s software engineering program here. I decided to look online for examples of the same program.  Fortunately, a lot of examples online involved using methods that utilized arrays or the examples were just too sloppy, which meant that the project would be a good challenge for me. I thought to myself, surely there is a better way of making the program without utilizing arrays, and sure enough there was.

My solution to this problem was to make use of the “for loop,” a conditional statement where if all the statement are true, it will perform the indicated piece of code, or if the statements are false, it would proceed to a different set of instructions. At this point I thought I’ve finally finished my project, and all I had to do was to write the “for loop.” Sure enough, this is the point where I stumbled across the issue I mentioned earlier.  I had to figure out how to make the output print out in a triangular form.  The method I used to approach this was through trial and error with help from the debugger. The debugger allowed me to figure out where and when the program was printing the output, which allowed me to change the code to make the necessary adjustments so that it printed out correctly.

Finally I finished my project. This project may not seem like much, but I did get to learn valuable lessons from it. What I really learned from this project was how to use “for loops” and how to successfully use the debugger in order to find out where the problem is located. These tools are essential for any programmer to learn. The “for loops” are an important part for programming and can be difficult to understand as a first time programmer. Next time I am asked to write a program that uses “for loops” I can be assured that even though I may run into some problems, I will always know how to debug the program.

Engineering Degree Overview

Wednesday, October 28th, 2009

Engineering

Engineers address the needs and problems of society with a blend of science, technology, and art. The Engineering programs at Cogswell Polytechnical College are part of an educational system that promotes true “integration” among curricula, teaching and learning approaches, and faculty. Integration is at both the vertical level among the engineering programs and at the horizontal level among the engineering and digital art programs.

Students:

  • Get hands-on experience working with faculty in small groups
  • Benefit from an educational environment that focus on learning, blends theory and practice, and integrates engineering and digital art
  • Graduate and become successful alumni pursuing rewarding careers

Innovation is key in the industries for which we prepare our students. Students can pursue any of the following programs:

~ Hadi Aggoune, Director of the Engineering Program

Alum Tobiah Marks Recalls His Time at Summer Camp

Monday, June 15th, 2009

Tobiah Marks just completed a dual degree in Digital Arts Engineering and Software Engineering.  As Tobiah recalls his involvement at Cogswell College, he remembers the start of it all: Being in high-school and attending Cogswell summer camps.  Here is his story:

 

How many summers did you participate in camp?

Three I believe . . .

 

What courses did you take at Cogswell’s summer camp?

Digipen Game Design (made a game in a week) and Maya 3D Modeling.

 

What was it like to be part of the summer camp experience?

Great. It was a lot of fun.

 

What did you learn?

Basic game programming and a lot about 3D Modeling which I hadn’t done before.

 

Did the camp have any influence on your major in college?

Not so much influenced but it encouraged what I was already thinking I wanted to do with my life.

 

Did the camp influence your decision to apply to Cogswell and enroll as a student?

VERY much so. Getting to know the staff and the students of Cogswell really helped me pick this school vs. others. The people here liked what I liked and were doing what I wanted to do.

 

What are the advantages of going to summer camp at Cogswell?

I was able to get to know the college. Plus, I was able to do the things I thought I wanted to do and see if I really liked it – and it’s just plain fun.