6 Replies - 978 Views - Last Post: 28 January 2015 - 06:21 AM

#1 Marvout   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 27-January 15

What language to write my (dream) program in?

Posted 27 January 2015 - 06:07 PM

I would like to write a program that students would use as a learning tool. In edu-speak, it would be a computer based adaptive learning environment.

Features/needs:
- Manage a large number of students that would sign in with their own accounts
- Manage a massive question bank
- Do analytics on what question is offered next to the student based on their past performance
- Be installed locally on a school server and be accessable via PC/mobile - (I'm guessing via browser?)
- Be accessable from outside the school via some form of web access. The limitation here is that it needs to work within the school building without it using any internet bandwidth, but it would be great if the students and teachers could access it from outside the building in the evening.
- Have an interface that makes sense on a PC or a 4" phone screen

I grew up around .bat files and got kinda fancy with them back in the day when they were relevant. I have taken a Pascal course in the past. I've done some SQL database stuff, but nothing fancy, almost all through interface and not command line. I've supervised an intro C++ course, but it was only very intro. So, I'm basically starting from scratch, with just enough knowledge to make me dangerous. <grin> (ie. Loaded with false presumptions...)

My question - What programming language would I write this in? Where would I start in learning what I need to know to build something this big? I'm not interested in being dependent on some kind of shell or second party, some kind of shortcut. My dream for this is that it should be able to sit in different schools and question subsets would be able to be shared via import/export. That there would be a way for questions to be able to be bulk imported into the app from text files. So I need to learn not only the syntax unique to the language, but how to break something like this up into manageable pieces the correct way to add them step by step.

Marvout

Is This A Good Question/Topic? 0
  • +

Replies To: What language to write my (dream) program in?

#2 jon.kiparsky   User is offline

  • Beginner
  • member icon


Reputation: 11679
  • View blog
  • Posts: 19,840
  • Joined: 19-March 11

Re: What language to write my (dream) program in?

Posted 27 January 2015 - 06:16 PM

Starting from where you're starting, there's no good answer to that question. The best answer to the question of "what language should I use?" is "whichever one best solves the problem" and for you, today, there is no language that fits that bill. You have to get to the point where this question makes sense.

First, you want to learn how to write programs. This will require learning some language, but the most important things that you'll learn are how languages express ideas, and how you use a language to express ideas in useful ways.

Once you've done that, you can return to this problem. At that point, you'll know enough to think about what you're biting off, and how best to go about chewing it.
Was This Post Helpful? 0
  • +
  • -

#3 Marvout   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 27-January 15

Re: What language to write my (dream) program in?

Posted 27 January 2015 - 06:50 PM

Understandable. Makes sense. But, I don't want to start learning Latin in order to understand language, only to find out that the people I want to converse with speak German. My impression is that some programming languages are better at creating certain kinds of programs. I'm hoping that I can start in the right place now to save restarting again later on.
Was This Post Helpful? 0
  • +
  • -

#4 modi123_1   User is online

  • Suitor #2
  • member icon



Reputation: 15314
  • View blog
  • Posts: 61,406
  • Joined: 12-June 08

Re: What language to write my (dream) program in?

Posted 27 January 2015 - 06:59 PM

A few things.. a question/answer program is a common programming project/assignment. You shouldn't have issues finding information on that.

Next - determine a platform. If you want to cover bases then a browser seems to provide that for the details you gave. This means a public facing web server and a database behind it. No install, no mess, and you can make the css 'responsive' to screen sizes.

Web programming is divided up into two parts - the client and the server. The client side, for the most part, is all about presentation in the browser. The server side runs data from the DB and deals with more complex tasks.


Quote

The limitation here is that it needs to work within the school building without it using any internet bandwidth,


This is a competing issue that is not appropriate for the rest of your description. again - pick a format and stick with it.. any other access types can be gold plated on later.

Quote

but how to break something like this up into manageable pieces the correct way to add them step by step.


Start the design now. List out features that are needed to get it off the ground, and what you can add later. Draw out moving parts, user interaction, security concerns, largest platform to hit, etc. If you don't draw your own road map then you have already lost.
Was This Post Helpful? 1
  • +
  • -

#5 Marvout   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 27-January 15

Re: What language to write my (dream) program in?

Posted 27 January 2015 - 08:34 PM

Modi123, could you say a little more about my competing issue?...

We are a rural school and share a smaller net connection with the whole school of 140 students than the DSL connection I have at home. This is the case for many of the schools I would imagine running this app. Is there not a way to host an app locally in such a way that it could be accessed through a browser that would not require every student to send/receive data via the school's tiny straw that connects them to the outside world?

This is quite a significant issue, as a lot of the online stuff that exists is really neat, but it ends up with a high throughput of data. I need to minimize and ideally eliminate internet traffic if the user is on the same side of the ISP as the serving app. We have our mail exchange mail server set up this way. If the net connection goes down, we can still access our mail. I'd need this app to perform in the same manner.

Marvout
Was This Post Helpful? 0
  • +
  • -

#6 Skydiver   User is online

  • Code herder
  • member icon

Reputation: 7105
  • View blog
  • Posts: 24,123
  • Joined: 05-May 12

Re: What language to write my (dream) program in?

Posted 27 January 2015 - 11:28 PM

You can configure DNS on your local network such that when it sees traffic for "http://my.dream.app.edu" to send it to a server that is local to your school. You can then deploy your program to both your local server and to a web hosted server (maybe even Amazon AWS, or Microsoft Azure). That way, your staff and students are used to hitting "http://my.dream.app.edu" and they would get the same experience at school and at home.

Then the only real network traffic you'll have to deal with is keeping the questions/answers and statistics database in sync between what is local and what is web hosted. If there is no requirement for that synchronization to be realtime, you could just do batch updates late at night when your network traffic is low.
Was This Post Helpful? 1
  • +
  • -

#7 Marvout   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 27-January 15

Re: What language to write my (dream) program in?

Posted 28 January 2015 - 06:21 AM

Skydiver, that makes sense. It is what I was envisioning, was just hoping my idea was plausible.

I think I have at least an abstract idea of how the app will ultimately install. Now, where do I begin learning the world of web apps? Sorry, if I sound like a broken record. Sometimes there are shifts in fundamental practices that if you miss, you're in the dark and it is hard to catch up when the rest have moved on. I used to build some web sites with FrontPage. Dropped it for a while and then had reason to come back to building a web page. I still had that idea - download the app, build the site, push it up. But the world had moved on and you do it all 'up there' now with sites like Wordpress. Once I caught on to the new paradigm, I could make progress.

I understand to make a program (in C++) I need to download and install a compiler, start walking through tutorials at something like learncpp.com, write the app in compiler and push it out. With this example, I've already arbitrarily chosen the language and matched it to a learning site. I'm guessing the paradigm is different for a web app.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1