Order Now  +1 678 648 4277 

About Me (Neil Harding) - Lead Programming Tutor at programmighomeworkhelp.com

For the past 30 years I have been programming in different languages from low level such as assembly to high level as java and functional language such Haskell.

Table Of Contents
  • My Favourite Programming Language
  • Oh, say can you C?
  • It’s not snakes on a plane, but look out for the Python.
  • Time for a brew of hot Java.
  • There’s a reason no one uses it.

My Favourite Programming Language

I tend to do the assembly language assignments myself as I have 20 years experience in assembly language and I am familiar with almost all of the processors used, and even ones like LC3 it only took me a few days to learn. In assembly language you have to deal with the details, there is no string handling, no arrays and even math operations need to be handled a single step at a time. Although you may never need to program in assembly once you get a job, it is useful as it can help when debugging a language such as C/C++ allowing you to debug the generated code. Many assembly language assignments are run on a virtual machines, so that you don’t need to worry about the program crashing and doing something unexpected.

I used to write games in assembly language for a living, and so I can handle the most complicated assignments, and I have solved programs such as a Sudoku puzzle solver although most assignments are much simpler and only involve simple calculations or string manipulation. I fully comment the assembly language code, not in terms of what the instruction is doing, but in what the intent is. Often I write code with the C equivalent in comments if the code is particularly complicated.

For assembly language that involves hardware as well, those are completed by our experts as building circuits is out of my field and so we make sure that we have experts who are familiar with building digital circuits. Even lower than assembly language is VHDL which deals with building microprocessors themselves, this is outside my field so we use one of our experts for these assignments.

Oh, say can you C?

A step up from assembly is C, which is often called portable assembly. You deal with raw access to memory using pointers, but the advantage is that you can write programs that use the machine to their full capacity. I’ve found that most assignments in C also are run under Linux as Linux was designed to be used with C. Linux treats everything as files so you can use the same code to view a webcam as you can to view a file, which simplifies the development of software.

Linux also allows you to fork a process which is simpler than using threads, the program splits into 2 and the parent and child can communicate with each other. The most common C assignment we seem to get is to write a replacement shell, with some commands implemented internally but most of them just call the existing binaries. Writing a shell also involves with dealing with pipes which allow you to pass the output of 1 command as the input of another.

The most complicated C assignments tend to involve either multiple threads and synchronizing them, or the equivalent using multiple processes. I specialize in Windows, so most C assignments are done by our experts, but I occasionally do some assignments where the code which is not specific to the operating system.

There is a big difference between C and C++, although most C code will run unchanged in a C++ context, a C++ assignment will be expected to use features such as object orientated code and templates, but an understanding of C will help you when you use C++.

It’s not snakes on a plane, but look out for the Python.

Many universities are now using Python as an introductory programming language. Although it is being taught as an introductory level, it does not mean that it is something you will not use throughout your career. Although Python does not perform as quickly as languages such as Java or C/C++ the development time means it is great for initial development and also for tasks where the performance is not an issue.

Due to it’s simple syntax, Python is used for people in non computing related courses, such as bio-informatics as well as being common in AI. It uses indentation as a control structure, so there are no keywords such as begin / end or symbols such as { }. Python has a hash map and sets built into the language, rather than having to include a library. In addition it also has decorators which allow you to call methods each time a specific function is called, and generators which enable you to deal with potentially infinite sequences. It has an extensive library of packages that can be installed that deal with all sorts of fields, such as symbolic mathematics, conversions between units, website development.

I learned Python a few years ago, when I was working on assignments, it’s the fastest programming language for development that I’ve found, you can write code in about half as many lines as you would in C++ or Java but in addition you end up with code that looks more like pseudo code and is readable by non programmers.

The fact that code is quicker to write and also at a lower level means we can charge less for these assignments than any others, and I often do these ones myself unless it requires domain specific knowledge such as bio-informatics, or statistics.

Time for a brew of hot Java.

Java is designed to be run on multiple platforms, so rather than an executable file you end up with a JAR file (which is just a zip file, with a different extension), which will run in a virtual machine. Unlike C/C++ it is much easier to write a GUI application as there is a standard library included with Java but C/C++ needs an external one.

Writing an application that uses a GUI is much more complicated than a command based one, as the user can have many more different interactions with the UI when using a GUI rather than a text based UI. You also have a great deal of flexibility when writing a GUI application, I had to write 6 versions of the same assignment (friends referred other friends) and I managed to use different algorithms, different ways of initializing the GUI and interacting with the GUI as we write each assignment from scratch.

Java uses a garbage collector for dealing with memory, so you allocate memory but you don’t need to free it, and it offers much less scope for customization compared with C/C++. You can’t treat an object allocated as 1 type as another type (with limited exceptions), which is different than C/C++.

Although not as common as it used to be, there are some courses that still teach JSP (Java Server Pages) to provide a dynamic website. This is often used in conjunction with JDBC which allows you to connect with a SQL server and use a database for persistence. Applications such as Open Office are written in Java, so it is quite capable of producing commercial grade software.

In addition to regular Java, Android uses it’s own version for development on mobiles, which we also have completed assignments on.

There’s a reason no one uses it.

Functional programming languages are the latest fad, and we have a limited number of experts who are familiar with them. There are some strong theoretical advantages to functional programming as it is very amenable to parallel processing as you can’t change the value of variables. The main problem is that almost all programs are not pure, and need to have input from the user or from files, which means that they need to use some non functional code anyway. We tend get assignments in Ocaml, Scheme and Haskell rather than F# and other functional programming languages. We have to charge slightly more for assignments in these languages as it is hard to find people who are able to work on them.

One interesting programming language is Prolog, and we have been getting some assignments in this. In Prolog you don’t so much write a program to solve a problem, but instead describe the problem and let the computer find solutions. Prolog allows you to solve logic type puzzles quite easily, but it is not much used outside of academia and again there are a limited number of people able to complete these assignments.

I’m not sure whether Matlab should be in this section or not, it is a powerful programming language but it is also very expensive if you are not using the student edition. Matlab can handle large matrices with ease, and uses a different syntax than most other programming languages. It also has toolboxes which allow you to add additional features such as physical simulation with simulink. Due to the cost of Matlab, we have to charge more for these assignments as the cost limits the number of people who are willing to work on the assignments.