• Welcome to Computer Association of SIUE - Forums.
 

QT Designer C++

Started by Tony, 2010-11-15T13:39:55-06:00 (Monday)

Previous topic - Next topic

Tony

First, I just want to ask.  Is this board still active?  I see a post I made back in May of 09 and it is 6th from the top lol. 

Anyways, I haven't been on here in a long time.  I have been pretty busy.  Just wanted to share QT Designer for C++ with you guys.  I know when I was at SIUE we learned with mostly C++.  I heard some of that is changing to Java, which is good, but C++ is still used. 

I have been working for Lockheed Martin for 3 years now.  I am currently working in Colorado at the Deer Creek Facility (pretty awesome google it.  Pics don't do it justice!) and on a program who's code is written mostly in C++.  There are over 12 million lines of code (at least).  Anyways, for our GUI work we use QT Designer.  I have only been on this program for about a 2 weeks, but this is pretty interesting.  QT is free and works on both Linux and Windows boxes (I think.  I only use it on a Linux box). 

Since I have been out of college I have had very few job offers with C++ and the ones that did use C++ were all on Linux boxes.  Yeah, I had some classes with a few teachers that required we use Unix, which was a huge help, but not enough imo.  I learned how to make simple Makefiles etc, but it is nothing like a large program like I am on now.  Most companies do not want to pay for stuff like Visual Studio and Windows when they can get a very Cheap version of Linux like Redhat and use free tools like QT Designer.  Windows license are much more expensive for commercial use btw.  It would be amazing if SIUE started teaching their students this way.  Yeah we could start new students with Visual Studio (like CS 140 and 150) but in 240 move to Linux boxes and use tools like this.
I would rather be hated for doing what I believe in, than loved for doing what I don't.

Brent Beer

I'll have to agree with you that linux being taught is important, in fact it was part of a large discussion on these boards a few weeks back about possibly having that be something required here (i think?)
>8{(

thatguy

The board is active, but not as much since it was moved off the main page. 

I've never used any C++ outside of school and I spend 75% of my time working in a *nix environment.  I don't even code when I'm in Windows, it's all report writing and other bureaucratic stuff.
#Something witty

William Grim

I'd say I get a pretty even flow between C++ and Java positions being offered to me, with some occasional C# thrown in.  Almost all of them are primarily Linux-based except for the C# positions.

I think Linux is a good thing to teach students, because it's out there today.  It may not be on the desktop yet, but it's all over in the embedded space, server racks, and computing farms, and it's only getting bigger.

I also think it's just as important to learn C++.  Due to political reasons surrounding Java, I'm not as sure about learning that one in an academic environment anymore, especially when combined with the fact that I think C++ gives you a broader depth of knowledge, because C++ can just do more in the language.

Also, yes, the boards are active, but like thatguy said, they've dried up a lot since being taken off the CAOS main page.
William Grim
IT Associate, Morgan Stanley

William Grim

Oh, I meant to say that I am currently getting involved with QT Designer.  I want to make a tool to handle squid+ettercap on an N900 to support the packages I've already submitted to Maemo's extras-devel repo.
William Grim
IT Associate, Morgan Stanley

Gary Mayer

#5
I'll mention *nix usage in the next Undergraduate Curriculum Committee meeting. The committee is striving to make some needed changes to the curriculum and making progress. Some of those changes lend themselves to multiple OS platforms.
-- Malekith

The higher, the fewer, Doctor. The higher it goes, the fewer.

William Grim

Quote from: Gary Mayer on 2010-11-16T12:23:08-06:00 (Tuesday)
I'll mention *nix usage in the next Undergraduate Curriculum Committee meeting. The committee is striving to make some needed changes to the curriculum and making progress. Some of those changes lend themselves to multiple OS platforms.

Sounds good.  I took the Linux Kernel Programming course at SIUE.  While I don't use that knowledge directly everyday, it comes in really handy a lot more than you'd think, especially when you're trying to figure out why an app crashed while using some of the core syscalls.
William Grim
IT Associate, Morgan Stanley

Tony

#7
Just being familiar with Unix is a good thing imo.

I have talked to people from other colleges and it seems that most colleges always pick some language and/or OS and stick with it through the whole degree.  However, that isn't how real life is, so why teach students that way?

Here is how I see it, in case anyone cares lol.  I think C++, on a windows box, using Visual Studio is a great way to start.  It cuts out all the overhead and lets students focus on learning syntax and the finer points of programming.  So, maybe use that in 140 and 150.  Then in 240 I say you switch to a Linux box.  In 240 you start getting into data structures and some algorithms.  No need for visual studio anymore and it would be a great time to teach students how to make Makefiles and make them stop counting on intelliSense.

I can't remember what all the prerequisites are, but around this time students start getting into CS245.  When I took that class it was all VB, which is fine, but we could do much more.  Most of my VB projects just grew in complexity, I am not sure I learned a ton more, with the exception of the one we did that connected to a database.  So, you could do a semi simple VB program that will teach them how to build GUIs with VB.  Then do a more complicated one that connects to a database.  After this there is no reason they shouldn't be able to switch to something like QT Designer, Java Swing (Netbeans makes this pretty easy) or even make GUIs using the .NET framework using Visual Studio.  Just so they experience GUI development with different languages and environments.  IDK, maybe that is too much to ask of a 245 student, but they would learn a lot.

Finally, I think by 340 they should be writing everything in Unix.  This is all algorithms and data structures, you don't need VS for any of this.

So, by the time they get to classes like Programming Languages they should be able to start digging into the finer points of some popular languages.  You could make the first assignment a HTML webpage.  Web design is still big.  Make this a simple 1 week project that will be used later in the course.  The next project can be JavaScript.  Have them manipulate the HTML page and do some fun stuff there.  Maybe even show them JavaScript libraries like jQuery or Dojo.  The next project could then be a Java Servlet.  The professor could have a small mySQL database created and have the students write a servlet they can call from JavaScript that will pull data from the Database, build a JSON out of it and return it to their webpage to be displayed etc.  Finally, they could program a Java WebService that can be called from the servlet that hits the database instead.  Of course the professor would have to have a completed webpage for anyone that couldn't do the HTML assignment (hope that isn't the case).  After all this they could write some C# stuff.  Maybe explore abstract classes and interfaces.  Maybe even do some Perl or Python scripting.

All the 400 lvl courses I think should just be up to the teacher.  Teach students that things won't always be the same from job to job or even program to program.  Anyways, that is my 2 cents.  Sorry it is so long.
I would rather be hated for doing what I believe in, than loved for doing what I don't.

Brent Beer

Quote from: William Grim on 2010-11-16T15:31:38-06:00 (Tuesday)
Sounds good.  I took the Linux Kernel Programming course at SIUE.  While I don't use that knowledge directly everyday, it comes in really handy a lot more than you'd think, especially when you're trying to figure out why an app crashed while using some of the core syscalls.

wow wish the current "unix/linux for kernel development" could make me say the same thing. as far as people in there who've never done any *nix things, they probably hate *nix and think everything is revolving around solaris (i kid you not the guy is teaching us about solaris specific things)
>8{(

Phillip Ray II

I noticed in my latest install of linux on my laptop I had Qt Designer installed by default.  I have been meaning to play with it, but haven't got around to it yet.  Only being in CS 150 and not doing much in GUI programming on my own, GUI frameworks still confuse me.  I only know basic Tk and GTK with Python/C++.

Robert Kennedy

QT was actually introduced to me by Socratis way back when (maybe 240?).  Personally, I find it to be extremely easy to use.  Aside from GUI features, it also has plenty of other libraries that make things easy.  It implements iterators, has some socket libraries, its own String library, and so on.  Granted my experience with GUI frameworks is limited since most projects I've worked on have been backend functionality, but I think it would be pretty simple to have a few assignments with basic GUI's in QT with C++ during the 200 level courses rather than have students learn Visual Basic just well enough to write some really ugly code. 

I've also read that there is a possible KDE/QT merger that may happen in the next few years, so knowledge of QT might become slightly more marketable as well.