Thread: Opinions for a school project

  1. #1
    Registered User
    Join Date
    Aug 2015
    Posts
    14

    Post Opinions for a school project

    Hello everyone, I know this might be a long post, but it was just so that you understand the situation I'm in, so if you have the time, know that your opinion will mean a lot to me!


    I'm in a team of 5 people (myself included) and we must develop a project for school. Our idea is a software for hotel management. We just finished the first semester and presentation, it was all about showing the diagrams (use case, entity-relationship diagram/model, BPMN), functional/non-functional requirements and the software's prototype. In the second semester we must decide things like what language/database we will be using (my team already decided to use java & oracle database).


    C is the first language they teach in there so that everyone gets some programming concepts, you know, loops, if-statements, arrays, switch, etc, but I was used to C before I got in the school, so I had good results and my team assumes I'm good at programming because of that, so they pretty much gave me the title of developer since they're more interested with analysis than programming.


    I'm the youngest fellow of the team (I'm 18, they are 28+) and as well the one with the most free time, so as soon as we decided to use java I started studying it (no reason to wait the teachers teach it, right?) so I made my first program with an actual interface (a base converter) and was really happy with it.


    But, here's the thing: every single project in that school, if it's for desktop, it's either java or C#, if it's for web, php/javascript/mysql, because that's what we learn there. So I wanted to come up with something different, don't misunderstand this with selfishness, I know I'm in a team, but they themselves said that they're good with whatever I decide for the development part.


    So seeing as how I'm more interested with C/C++ and I'm just starting to learn OOP, I was wondering, should I just get in the same boat as everyone else and go with java or C#, or go with C++? because no matter what, I'm a beginner with either of these languages, so is it possible for a beginner like me? will I have more facility with java/C# than C++?

    Thanks!!!

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,661
    A programmer who knows only one language is like a carpenter with only a hammer.

    Pretty soon, every problem looks like a nail.

    You should embrace the opportunity to learn something new which is more relevant to the overall problem domain.
    If you truly understand "OO" concepts, then OO in C++ is little different from OO in Java. Once you've figured out how to declare a class / methods / member variables, the rest is easy.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  3. #3
    Registered User
    Join Date
    Aug 2015
    Posts
    14
    Thanks Salem, it's good to hear it!

    One of the reasons I wanted to risk with C++ is because the teachers really value the fact that the students look for outside references and not limit ourselves to what we learn in there, so if we could come up with this project made in C++ definitively means that we've been looking for outside references, could even be a plus.

    I have this part of the prototype, it's not the whole thing of course but the first attempt to make it and it's the only one I have here with me.

    Attachment 14575

    I understand that these rooms are probably going to be objects (they all carries data like it's status and costumers informations) but I have no idea yet how I'll display (and even align) them to the user like that...and I also realised that our software would be really limited if we had a pre-defined number of rooms, so I talked to the team, it would be better if we allowed an administrator user define it by himself

    I was looking for a framework and I found this Ultimate++ (Ultimate++ is a C++ cross-platform rapid application development framework :: Ultimate++) seemed really interesting to me.

    Specially with the small code example they gave (Ultimate++ Overview :: Ultimate++)

    So yeah, I think I'll be definitively looking forward to it...

  4. #4
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    When I was a student, undergraduate computer science/engineering majors in my university were required to do a group project with five or six students in a team. The project always had roughly the same product to be designed and implemented (a basic static analysis tool for a simplified programming language), but the programming language used for its implementation alternated between C++ and C#. In earlier modules, students would have used Java, so they were not expected to have prior knowledge of C++ or C#.

    Now, the interesting thing is that the statistics across several years showed that when the programming language for the semester was C++ the projects tended to have more bugs uncovered during the testing for grading than when the programming language for the semester was C#. Of course, this does not mean that C++ programs are necessarily more bug prone than C# programs. My interpretation of the statistics is that without a background in the programming language and faced with a project bigger than any they have ever done, students tended to pick up C# faster than C++ such that they were able to avoid bugs better in C# than in C++.

    Frankly, I was not surprised: even among my peers who had some experience in C++, they approached C++ as C with classes, i.e., they tended to be ignorant of the then-modern C++ idioms and techniques, in particular their tendency to do manual memory management and lack of awareness of the possibility of reducing code duplication by writing fairly simple function and class templates. The lecturers promoted libraries like Boost, but many students were weak in their knowledge of even the standard library.

    Therefore, I do not agree with Salem's claim that "once you've figured out how to declare a class / methods / member variables, the rest is easy". If that were true, then drawing on the analogy, C++ would be just another hammer, though one with maybe a differently decorated handle. Rather, as with all other programming languages, there are idioms and libraries to draw upon, and in C++, not making use of them appropriately leaves you more open to disaster than with a language like C#.

    Quote Originally Posted by wtd81
    my team assumes I'm good at programming because of that, so they pretty much gave me the title of developer since they're more interested with analysis than programming.
    In a team of five people, there cannot possibly be four analysts and one developer, unless three of the analysts were redundant to begin with. Resist accepting this "title". All five of you should have practiced your analytical, planning and presentation skills in the first semester, and now all five of you should develop the program.

    So, do none of your fellow team members have any experience with C++, especially modern (post-C++11) C++? If so, then you should be aware that while it is good and interesting for you to attempt this in C++, be prepared for a harder time, and consequently, a possibly lower grade. Grades aren't everything, but sometimes they do matter. If you do have someone in the team who can be the "language expert" to coach the others, then this problem could be mitigated (though it also depends on how effective this mentor is: personally, I felt I did a bad job).
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  5. #5
    misoturbutc Hodor's Avatar
    Join Date
    Nov 2013
    Posts
    1,787
    @laserlight Who is forcing anybody to use "modern C++"? I, personally, don't find anything much to complain about "old-style c++" (the only thing I would complain about is if a purported C++ language class taught that style because it offers nothing, really, but convenient approaches to what you would normally do in C anyway).

  6. #6
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    @Hodor Who is forcing anybody to use "modern C++"?

    Quote Originally Posted by Hodor
    I, personally, don't find anything much to complain about "old-style c++" (the only thing I would complain about is if a purported C++ language class taught that style because it offers nothing, really, but convenient approaches to what you would normally do in C anyway).
    What is "old-style c++" to you?
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  7. #7
    misoturbutc Hodor's Avatar
    Join Date
    Nov 2013
    Posts
    1,787
    Quote Originally Posted by laserlight View Post
    @Hodor Who is forcing anybody to use "modern C++"?


    What is "old-style c++" to you?
    Not "modern c++"

    Essentially C with classes.

  8. #8
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by Hodor
    Essentially C with classes.
    And without exceptions? That might work, but you throw away so much of what is available unless you have a ready-made framework built around that (e.g., in some of those subsets of C++ used in niche areas). Consequently, students who tried that approach, if they even of nothrow new, would have been at a disadvantage vis-a-vis students who made better use of C++, or students who used C#. As such, they would have had less time to find and fix bugs, leading to the same observation from the statistics collected by the faculty.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  9. #9
    Registered User
    Join Date
    Aug 2015
    Posts
    14
    Thanks for bringing this up, laserlight!

    and I do agree that it sounds crazy to have 4 analysts and 1 developer, to be honest it's obvious to me that they're pretty much trying to avoid programming, many people that joined the school was expecting it to be basic computing teaching, you know, how to format a computer, hardware maintanance, etc. We learn it there too but the primary focus is programming. So because of that many people already gave up and honestly I think there will be more following the same way, even in my team, sadly. This whole programming thing was something completely new to most of the students in there (and in my group as well), so no, they really don't have any experiences with C++, I think the closest they got so far is what they've learned in C.

    But I didn't saw it as some kind of injustice or whatever, like Salem said, I'm seeing it more as a big opportunity for me, and of course I think I can't expect none of it to be so easy.

    We still have 2 semesters to bring up the final result, so it's like almost a year. But like I said, for the second semester we must decide what language we will be using and I'm still with this thing in my head, just continue with Java or try with C++...
    Last edited by wtd81; 01-21-2016 at 12:07 PM.

  10. #10
    Registered User
    Join Date
    May 2010
    Posts
    4,632
    Before you even think about selecting a language you need to throughly understand the problem you wish to solve. Have you or any of your co-developers ever worked in the Hotel industry? If not how are you going to determine the system requirements? Have you and your co-developers researched existing Hotel Management Systems to see what is actually being managed? I realize that you probably won't be expected to write a completely functional system, however you will probably need to show a very complete limited system because you have about a year to complete the assignment that meets the specifications you defined in your planning stage. However while planing the system remember you only have about a year to complete the system, so you'll need to insure you spend your time wisely.

    You may want to opt for a language that you are all already familiar with, or a language that offers benefits to the project. For example, if you plan to use a fairly sophisticated GUI you may want to select a language that makes building a GUI easier. You may also want to see what languages your instructors and TA's are familiar with as well, since they should be your first line of help when required and remember that the instructor and TA's will be the ones grading your system, so if you use a language that they don't understand, etc., you'll be in trouble.

    Jim

  11. #11
    Registered User
    Join Date
    Aug 2015
    Posts
    14
    Quote Originally Posted by jimblumberg View Post
    Before you even think about selecting a language you need to throughly understand the problem you wish to solve. Have you or any of your co-developers ever worked in the Hotel industry?
    Jim
    Yes, actually. One of them works in a hotel and he pretty much came up with the whole prototype ideas, so our system will be very similar to the one that he uses in his job.

    We've got everything else related to the software's analysis covered (all the diagrams and documentation, as well as the teacher's approvance), so yeah, right now is the time to choose a language.

    And of course I talked to one of the teachers before this, he said that they really don't care how or what we are going to use to develop it, as long as in the end we can get in front of everyone else with an actual system and not just an idea.

  12. #12
    Registered User
    Join Date
    May 2009
    Posts
    4,183
    I would suggest deciding on the front-end type before deciding on the Language.

    Is it going to be Web Based or normal program based?
    In the real world having the Guest interface being web based is likely common.
    But, the staff interface would likely be a normal program.

    And, I would investigate the database server and how to connect with it before deciding on a Programming Language.

    FYI: You might pick two Programming Languages one for the front-end and one for middle-ware.
    As in C++ for the front-end and C for the middle-ware.

    You will need to pick a Database lead who does most if not all of the work on the Database server.
    This should NOT be the person who does the front-end.

    I would also decide on what version control system your team will be using if you have NOT already done so.
    But, if you have no experience with version control; it might be better to figure how to backup your work on a different computer, instead.

    Tim S.
    "...a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are,in short, a perfect match.." Bill Bryson

  13. #13
    Registered User
    Join Date
    Aug 2015
    Posts
    14
    I've been thinking and searching a lot and I think I'm finally coming to a conclusion.

    Yesterday I downloaded Qt Creator, started with some console applications just to check if everything was working fine and to get used to the IDE as well. My goal for now is to develop that same base converter I did in Java. If I get comfortable and confident with it I'll definitively be looking forward to it.

    Cprogramming have been really helpful to me in the last few days, so when I started thinking about this whole thing I thought it would be good to open this thread, but before it I feared that such a discussion wouldn't be accepted here. I'm glad things turned out pretty good

    So, thanks everyone!!!

  14. #14
    Registered User
    Join Date
    Nov 2012
    Posts
    1,393
    Quote Originally Posted by wtd81 View Post
    I'm in a team of 5 people (myself included) and we must develop a project for school.
    ...
    I was used to C before I got in the school, so I had good results and my team assumes I'm good at programming because of that, so they pretty much gave me the title of developer since they're more interested with analysis than programming.
    By your other team members saying they're more interested in "analysis", it sounds rather like your other team members may be taking advantage of you (either intentionally or not), by expecting you to do all the work. In a team project like this, everyone must write parts of the program. You are the lead developer so you should insist on this. Construct a framework for the program, set up version control and then insist that each member makes regular commits to his/her assigned components. This way is also better for you in the end, because real non-trivial programs can't be created by one person alone.

  15. #15
    C++まいる!Cをこわせ!
    Join Date
    Oct 2007
    Location
    Inside my computer
    Posts
    24,654
    Quote Originally Posted by stahta01 View Post
    FYI: You might pick two Programming Languages one for the front-end and one for middle-ware.
    As in C++ for the front-end and C for the middle-ware.
    Don't use C for this stuff. It will just hurt your productivity IMO. It just wasn't made for today's big, complex software development processes. C's strengths lies in its simplicity (good for language implementers), low level (good for interfacing with hardware), low memory usage (good for memory constrained devices such as embedded systems) and small standard library (good for space constrained devices such as embedded systems). None of these strengths are applicable to high-level abstraction software such as hotel management. I don't figure speed is going to be a huge issue either, furthermore discounting C as a good tool for the job.

    I'd like to say C++ is a good tool, but unfortunately its standard library is severely lacking for modern software development, so you pretty much have to rely on 3rd party libraries for GUI, networking, database, etc. These days, I'd just pick C# as the tool for software developement IMO. It offers a much better standard library than C++, has more language features than Java and is closer to C++ than Java. Of course, it's not without its downsides, but that's life.
    Quote Originally Posted by Adak View Post
    io.h certainly IS included in some modern compilers. It is no longer part of the standard for C, but it is nevertheless, included in the very latest Pelles C versions.
    Quote Originally Posted by Salem View Post
    You mean it's included as a crutch to help ancient programmers limp along without them having to relearn too much.

    Outside of your DOS world, your header file is meaningless.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Need help with my school project!!!
    By Maciek Grodzki in forum C Programming
    Replies: 5
    Last Post: 01-07-2014, 07:53 AM
  2. School Project Help
    By Joshua Hess in forum C++ Programming
    Replies: 9
    Last Post: 02-19-2013, 07:27 PM
  3. School project help
    By blckgoat in forum C Programming
    Replies: 8
    Last Post: 11-14-2011, 06:03 PM
  4. school project help
    By yogai in forum C Programming
    Replies: 8
    Last Post: 09-09-2004, 06:03 PM
  5. Help with School Project
    By jtouron in forum C++ Programming
    Replies: 2
    Last Post: 10-10-2003, 12:27 AM