# Any programmer? Help me out! :frown2:



## xyz.unknown (Oct 12, 2012)

So the problem is I'm a computer science student getting close to my final semester and I have to make a final year project and I just dont know what to make, I never practiced any programming and just know the very basics of java, C, html, css, php. Teachers arent helping and I am too scared to discuss with them too. I am so lost as what to make, I am scared of choosing something too advanced and end up not being able to finish it. I regret not doing any programming and now the time is up + I never had much of a passion for programming anyway. Please any professional here that can point me in some direction.


----------



## Paper Samurai (Oct 1, 2009)

Depending on how much time and knowledge you have of course, here's some suggestions: 

-A compiler 

-Some kind of physics simulation

-A multi-threaded server

-Some kind of bare bones game engine


----------



## 812161 (Oct 8, 2016)

I'm not sure how you made it to the final semester of your degree without practicing TONS of programming, but we'll set that aside.

What guidance has already been given about your final project? What objectives does it have to meet? How complicated is it expected to be? Does it have to be client based or can you do a server based project? Can you do something mobile? Can you do something with a database?

Bottom line, the best project is to find a problem that is personal to you and to find a way to solve it with your project. Us giving you ideas is a challenge. You need to have a set of "requirements" that need to be met and only you can furnish those without interacting with others.

Do you have hobbies that could be better served with some kind of an application, website, store, etc?

And, you may be scared, but you HAVE TO talk to your instructors.


----------



## Synaps3 (Jul 12, 2012)

> -A compiler
> 
> -Some kind of physics simulation
> 
> -A multi-threaded server


That seems a little advanced. Maybe you could make an interpreter or byte-code VM instead of compiler.
Making one of these can be tedious, but it's not very complex (you decide how complex it should be). For someone who like(ed) programming, this can actually be fun because it's pretty rewarding to be able to say you make a programming language (no matter how simple it is). Most people would think you're a genius.

What I would do is start by planning out how the syntax will look and what the commands are going to be in your language. I wouldn't bother with expression parsing (it may get too hard). Just have every line be a new command (sort of how assembly language looks). Then maybe have an eval function that does the math or just stick to add, sub, mul, etc. If each line is predicable it should be easy to parse. I also wouldn't worry about making classes. Probably just have one main file with methods in it. Then in the code you write you'd create only public and temp variables. The temp vars get cleared everytime the current method id done executing and the public ones are created when the code is first loaded and kept around until the program is done executing (more advanced interpreters use garbage collection - don't bother with it).

After you've written the code to tokenize the file (split the code by space so each command and parameter is a different element in a string array), then if you want, you can optimize by converting the commands in to bytes and then save that as your "compiled program". Then write the code that will read those bytes and execute the corresponding command. The reason for not just interpreting the "english" commands before converting them is that it is much faster for the computer to run the byte code than it can read long strings (plus, it makes you seem advanced when you say I made a byte-code vitual machine). Even though it isn't really a virtual machine - doesn't matter 

Have fun!

But anyway, you mentioned you don't have a passion for programming. You might not want to get into it then. I know it might seem like an obvious statement, but programming has the ability to wreak self-esteem (if you get obsessed with it) because the computer will not tolerate any flaws, only perfection - this can make you crazy after a while. That's why I don't program so much anymore, but I still enjoy thinking about it sometimes.


----------



## SplendidBob (May 28, 2014)

My advice, php driven website. Php is super easy and there will be a **** load of code online you can "borrow" for it. If you can get away with this kind of thing, that is. I expect they would prefer to see something in C or whatever


----------



## Held (Nov 3, 2016)

What are the requirements for this project? How much time do you have? What's the scope? What's the purpose of the project? There must be some written guidelines.


----------



## discoveryother (Sep 18, 2016)

completely depends on what you want to focus on re languages etc. it sounds like you're more interested in web based things. maybe have a look at Haxe, there's good tutorials and you can make it as a web app first and then compile it as a mobile app (a big part of your project could be research into cross-platform languages). use a mysql database or have a go with Firebase (also has easy tutorials, can use google, facebook logins rather than make your own from srcatch).

just come up with some stupid idea - like facebook for pets, a simple game, a shop, etc. or something related to your interests?


----------

