Computer Science: It is not Programming And Problem Solving

[ad_1]

I have had the pleasure and opportunity to make one of the favorite hobbies of my past two years, and it is to blame. I have had the opportunity to teach several different materials in the field of computer science, from introductory courses to upper division courses, and I’ve seen the pattern along the students has been a mystery to me, especially in the secondary division.

One of the major surprising facts that I have noticed is that most students have little or no experience in software development, especially in the secondary department. That is, they have not had sufficient opportunity to do hands on projects to improve and optimize programming skills in the lower classes, and when they take courses like software engineering, most of them do not have the ability to create a fully functional system from scratch.

Now understand if this is the first year for the students and they are just starting out and get to know their first computer language and all the tools and platforms that are available to them. And it is also understandable that there are different levels of students with different skill sets and motivation. But to be in the upper division course and still be dissatisfied with the basics is a little scary for me.

What I also noticed and honestly surprise me, is that most students who are just starting out in the computer science curriculum has no idea what computing is all about. Now maybe this unfair statement, you can argue that they are still unsure or undecided, but I think that is not the case. If you are a science or engineering curriculum, there are certain things that are important for students to know, as a good foundation is a math and physics.

Again, perhaps, the issue is how we prepare our youth for the first years of life.

For example, as part of the computer science curriculum, students are required to take courses in software engineering. I’m not going to discuss the software engineering, but to enlighten you, here is a description from Wikipedia: Software Engineering (SE) is the application of systematic, disciplined, quantitative approach to the design, development, operation and maintenance of software, and the study of these methods; that is, the application of engineering to software. The term software engineering first appeared in the 1968 NATO Software Engineering Conference and was intended to provoke thought about the perceived “software crisis” at the time. Software, much used and more generic term, not necessarily subsume the engineering model.

In this class, students are expected to have a good understanding of at least one programming language such as Java, C #, C ++ and etc … as well as a good understanding of Object-Oriented Methodology and design. On top of the programming skills, the student should have a good understanding of data structures and algorithms. Do not forget, a Program = data structure + algorithm! It would also help if the students have a knowledge database and etc …

These are just some of the technical skills they should have and keep fine tuning every single day. The more important factor in computer science has nothing to do with programming in JAVA or C # or something like that. It has to do with the ability to analyze and solve problems!

In the past my class, I had created six different teams consisting of three members each. Each group was given the opportunity to come up with their own project to design and develop the course, and if they were not doing it, I was going to assign them tasks.

The students were very good at coming up with to define their own projects. We had a good range of projects from Hospital Management System, the Hotel Management System, iPad applications and trade inventories Android application for simple 2D game, the Learning Management System on the Web and Windows-based applications create customized mimes.

Now it was time to start the real deal! Let’s start engineering our products

Throughout the course students were responsible define :. Requirements and specifications, design and implementation, and finally test and release (test) software project of

The surprising thing for me was that most students did not know where to start! Given a particular problem, how one would take it and dissect it into smaller parts to be able to solve it in small doses and come out with final solutions of the divide and conquer method!

As noted some teams did a very good job on each and every step, and others started weak and then increased their efforts and efficiency throughout the course. As you can see the projects themselves are fairly complex for students and all of them require knowledge of good user interface design, object-oriented design, database design, and

Some for most any kind of network communication! students do not even have any programming skills, and the fact they do not really care much about investing the time to learn it! Relying mostly on peers for the technical aspects of the project! Now we should not expect every person to be an expert, but they should at least show some interest and self-motivation to learn on their own.

Overall, the majority of students in the class were hard workers and they put very much time and effort in their respective projects. Most of them wanted to learn and be challenged. They just lack the proper skills that were required before taking this class.

There was much to discuss for the students in this particular class, and this put a lot of pressure on students to push themselves and be self-motivated and self-starters. And that’s exactly what my goal was not only this category than any class. I want my students to push harder and think bigger and explore more areas and ideas because this is the only way to grow and be competitive later in their career.

I myself am learning better ways and means to lecture and communicate with students with each passing hour. I hope that students are also put in the necessary effort to expand their horizons not only in class, but also outside the classroom!

[ad_2]

Leave a Reply

Your email address will not be published. Required fields are marked *