Beseech thy lord
- Chozon1
- Site Admin
- Posts: 22806
- Joined: Sun Dec 10, 2006 12:00 am
- Location: In the shadows. Waiting for an oppurtune moment to create a dramatic entrance.
- Contact:
Being alive and having a vengeful spirit.
Sport jackets?
Sport jackets?

- ArchAngel
- CCGR addict
- Posts: 3539
- Joined: Tue May 31, 2005 12:00 am
- Location: San Jose, CA
- Contact:
I have one and I like it very much. Great for those occasions where you want to look classy, but a suit is too formal and too businessy. Perfect for events that are supposed to be fancier and more formal, but still relaxed. A nice dinner, and business holiday parties. Especially if they are held at a winery and you're supposed to dress wine country casual.
- Deepfreeze32
- Site Admin
- Posts: 7041
- Joined: Sun Oct 01, 2006 12:00 am
- Are you human?: Yes!
- Location: On the run from Johnny Law; ain't no trip to Cleveland
- Contact:
What are your thoughts on Distributed Computing?
- ArchAngel
- CCGR addict
- Posts: 3539
- Joined: Tue May 31, 2005 12:00 am
- Location: San Jose, CA
- Contact:
- Chozon1
- Site Admin
- Posts: 22806
- Joined: Sun Dec 10, 2006 12:00 am
- Location: In the shadows. Waiting for an oppurtune moment to create a dramatic entrance.
- Contact:
Islands?

- Deepfreeze32
- Site Admin
- Posts: 7041
- Joined: Sun Oct 01, 2006 12:00 am
- Are you human?: Yes!
- Location: On the run from Johnny Law; ain't no trip to Cleveland
- Contact:
NP-complete problems?
- ArchAngel
- CCGR addict
- Posts: 3539
- Joined: Tue May 31, 2005 12:00 am
- Location: San Jose, CA
- Contact:
- Chozon1
- Site Admin
- Posts: 22806
- Joined: Sun Dec 10, 2006 12:00 am
- Location: In the shadows. Waiting for an oppurtune moment to create a dramatic entrance.
- Contact:
If I giggled when you said "the theoretical nature of P", what does that mean in relation to maturity?
Also, McGangbangers?
Also, McGangbangers?

- Deepfreeze32
- Site Admin
- Posts: 7041
- Joined: Sun Oct 01, 2006 12:00 am
- Are you human?: Yes!
- Location: On the run from Johnny Law; ain't no trip to Cleveland
- Contact:
Kernel programming?
- Chozon1
- Site Admin
- Posts: 22806
- Joined: Sun Dec 10, 2006 12:00 am
- Location: In the shadows. Waiting for an oppurtune moment to create a dramatic entrance.
- Contact:
Wholey crudstanks...I must eat this. O_OArchAngel wrote:No, but I will throw some mcnuggets into my mcdouble.
McNuggets are underrated?

- Deepfreeze32
- Site Admin
- Posts: 7041
- Joined: Sun Oct 01, 2006 12:00 am
- Are you human?: Yes!
- Location: On the run from Johnny Law; ain't no trip to Cleveland
- Contact:
So I'm going to make the (Probably reasonable) assumption that you experienced a fairly normal CS education in college. Start out with C/C++/Java programming, get good at that for a year or so, then learn things like Assembly, computer architecture, OOP, Algorithms, and so forth.
A friend has proposed an alternative solution which I'm thinking may be a good idea. Instead of learning high-level programming first, start at the Assembly level. He suggests that we use a good hypothetical computer (Like MIX) to teach the basics of zero-abstraction computing. Learn really basic Assembly operations (like arithmetic, jumping, and a general program flow with a stack-based idea) for the first semester. Then learn things like C and C++ which provide abstraction but still allow Assembly operations. His thought is that if you learn the low-level stuff, not only will you appreciate high-level more, but you'll associate the abstracted concepts with what the CPU is actually doing, thus allowing the programmer a better handle on programming as a whole.
What think you?
A friend has proposed an alternative solution which I'm thinking may be a good idea. Instead of learning high-level programming first, start at the Assembly level. He suggests that we use a good hypothetical computer (Like MIX) to teach the basics of zero-abstraction computing. Learn really basic Assembly operations (like arithmetic, jumping, and a general program flow with a stack-based idea) for the first semester. Then learn things like C and C++ which provide abstraction but still allow Assembly operations. His thought is that if you learn the low-level stuff, not only will you appreciate high-level more, but you'll associate the abstracted concepts with what the CPU is actually doing, thus allowing the programmer a better handle on programming as a whole.
What think you?
- ArchAngel
- CCGR addict
- Posts: 3539
- Joined: Tue May 31, 2005 12:00 am
- Location: San Jose, CA
- Contact:
[quote="Chozon1"Wholey crudstanks...I must eat this. O_O
McNuggets are underrated?[/quote]No, they are overrated. I don't hate them, but I don't find them great either. It's cheap chicken when you can pick up 20 for $5, though. Pink slime, baby.
I don't think I prefer that as a program. Yes, learning Assembly helps with granular knowledge, but that's not the fundamental things you need to know about programming. It's logic, the ability to problem solve and architect solutions, that is fundamental to software engineering. I think starting with Java is pretty good; it's beginner friendly, gets your hands in some OOP, and really gets you started programming solutions pretty quickly. If I were to add something earlier in the learning path, maybe a very approachable system to get people thinking about using logic systematically to create structures and solve problems. Maybe some visual programming system where the users stacks blocks and pipes and they get to watch their logic system in play.
Starting with assembly will also give people trying out CS the wrong idea on what programming is. A lot of people try the intro to programming class as their first foray into computer science. It's important to show the fundamental ideas on what programming is, and not the underpinnings of high level languages or what programming used to be.
Now, I very much enjoyed doing assembly and learning about computer architecture, but much of that was out of appreciation for my understanding already of programming.
In another example, if I were to teach someone to drive a car, I'd start by getting them driving in a safe environment (java). Maybe even start out with smaller application, like a go-cart (the visual programming system). Going into the mechanics of a car, or what driving used to be like pre-ABS, pre-power steering, when we had to hand crank it, is just giving the wrong initial idea.
Once they become more familiar, I'd introduce them to the underworkings of the car, and how the throttle works by regulating the fuel/air composition, and how shifting gears is important because the RPM ranges of the engine and how the transmission works around this.
Now, I'll admit I'm a little biased on this. While, just as I said, I enjoyed working with assembly, I'm a high-level programmer and I view high-level programming as the future. You might be able to gain small improvements on efficiencies by programming low-level, but the compilers themselves do a great job, and high level languages allow you to build complex structures needed to meet today's software requirements. It's just a lot of extra error-prone work and just needlessly rigorous.
I'm not arguing that it's not important for a programmer to understand low and assembly level programming, along with the computer structure, but I don't think it's so important that we need to start out with it.
McNuggets are underrated?[/quote]No, they are overrated. I don't hate them, but I don't find them great either. It's cheap chicken when you can pick up 20 for $5, though. Pink slime, baby.
Well, I actually started with BASIC around age 9 or so, so the weeding programming classes were pretty breezy for me.Deepfreeze32 wrote:So I'm going to make the (Probably reasonable) assumption that you experienced a fairly normal CS education in college. Start out with C/C++/Java programming, get good at that for a year or so, then learn things like Assembly, computer architecture, OOP, Algorithms, and so forth.
A friend has proposed an alternative solution which I'm thinking may be a good idea. Instead of learning high-level programming first, start at the Assembly level. He suggests that we use a good hypothetical computer (Like MIX) to teach the basics of zero-abstraction computing. Learn really basic Assembly operations (like arithmetic, jumping, and a general program flow with a stack-based idea) for the first semester. Then learn things like C and C++ which provide abstraction but still allow Assembly operations. His thought is that if you learn the low-level stuff, not only will you appreciate high-level more, but you'll associate the abstracted concepts with what the CPU is actually doing, thus allowing the programmer a better handle on programming as a whole.
What think you?
I don't think I prefer that as a program. Yes, learning Assembly helps with granular knowledge, but that's not the fundamental things you need to know about programming. It's logic, the ability to problem solve and architect solutions, that is fundamental to software engineering. I think starting with Java is pretty good; it's beginner friendly, gets your hands in some OOP, and really gets you started programming solutions pretty quickly. If I were to add something earlier in the learning path, maybe a very approachable system to get people thinking about using logic systematically to create structures and solve problems. Maybe some visual programming system where the users stacks blocks and pipes and they get to watch their logic system in play.
Starting with assembly will also give people trying out CS the wrong idea on what programming is. A lot of people try the intro to programming class as their first foray into computer science. It's important to show the fundamental ideas on what programming is, and not the underpinnings of high level languages or what programming used to be.
Now, I very much enjoyed doing assembly and learning about computer architecture, but much of that was out of appreciation for my understanding already of programming.
In another example, if I were to teach someone to drive a car, I'd start by getting them driving in a safe environment (java). Maybe even start out with smaller application, like a go-cart (the visual programming system). Going into the mechanics of a car, or what driving used to be like pre-ABS, pre-power steering, when we had to hand crank it, is just giving the wrong initial idea.
Once they become more familiar, I'd introduce them to the underworkings of the car, and how the throttle works by regulating the fuel/air composition, and how shifting gears is important because the RPM ranges of the engine and how the transmission works around this.
Now, I'll admit I'm a little biased on this. While, just as I said, I enjoyed working with assembly, I'm a high-level programmer and I view high-level programming as the future. You might be able to gain small improvements on efficiencies by programming low-level, but the compilers themselves do a great job, and high level languages allow you to build complex structures needed to meet today's software requirements. It's just a lot of extra error-prone work and just needlessly rigorous.
I'm not arguing that it's not important for a programmer to understand low and assembly level programming, along with the computer structure, but I don't think it's so important that we need to start out with it.