Programming in engineering first year

The PIC IS a microprocessor, and more. i.e. it is a microcontroller. As you mentioned, ERS and EMK are engineering subjects. As such, they are geared more toward providing students with exposure to the kinds of technologies that will be required later (i.e. everything in the degree basically leads up to your final year project).

My problem is that PIC is a bit small time. In SA Pic is popular, but overseas it is more focused to hobbyists. Which is why I feel it should focus more on microprocessors like those created for embedded devices (eg. FPGAs).

EDIT: ok well FPGAs won't really be used in embedded but I mean they don't use PIC either, usually Siemens CPUs, etc.

I know PIC is a microcontroller (which is really it's primary focus, no?) but really it is a poor microprocessor. Compared to actual micro processors like those used by devices like cellular telephones, decoders, etc.

This year, for example, they have started to increase the focus on FPGAs, a move that I think is incredibly beneficial to engineers. The past showed that many students who take final year projects requiring the use of FPGAs and DSPs struggle because a lot of time is spent becoming aquainted with the devices. Now, however, new students are issued an FPGA, and modules will begin to incorporate them into practicals.
Wish I was there for that, must be really awesome.

Regarding the use of the PIC + PIC assembler, I think it's great. PICs are used extensively in industry, and while assembler is less common in many applications, with PIC Basic and C often being preferred, the focus on assembler (IMHO) promotes a different way of thinking about embedded programming.
I agree you need to understand the principles (eg. different way of thinking), but perhaps make some of it asm. so you get the hang of it, then move to C. Naturally coming from CS the embedded programming was ridiculously easy but tedious.. I don't like writing so many instructions for something that can be accomplished in C with a single statement.

Also PIC might be big in SA but overseas it isn't really, at least not from what I've seen...
 
Last edited:
My problem is that PIC is a bit small time. In SA Pic is popular, but overseas it is more focused to hobbyists. Which is why I feel it should focus more on microprocessors like those created for embedded devices (eg. FPGAs).

EDIT: ok well FPGAs won't really be used in embedded but I mean they don't use PIC either, usually Siemens CPUs, etc.

I know PIC is a microcontroller (which is really it's primary focus, no?) but really it is a poor microprocessor. Compared to actual micro processors like those used by devices like cellular telephones, decoders, etc.


Wish I was there for that, must be really awesome.


I agree you need to understand the principles (eg. different way of thinking), but perhaps make some of it asm. so you get the hang of it, then move to C. Naturally coming from CS the embedded programming was ridiculously easy but tedious.. I don't like writing so many instructions for something that can be accomplished in C with a single statement.

Also PIC might be big in SA but overseas it isn't really, at least not from what I've seen...

Microchip is a huge company internationally; not only in SA. And while much of what you read on the Internet is written by hobbyists, PICs have been (and still are) applied to many industry applications. Not necessarily just the PIC16 and PIC18 families either.

However I agree that something like the ARM has a lot of applications for engineers.

I wasn't a student for the introduction of FPGAs, but I think it's definitely a step in the right direction. Particularly since a number of final-year projects and postgraduate modules that are offered require the use of FPGAs.

Perhaps making part of the course assembler oriented is worth a shot. But I think then they would have to significantly increase the number of practicals, as most of the engineers still struggle with assembler, even after passing the module.
 
Just finished my first year Computer Engineering at TUKS.

The programming you'll encounter is:
COS131 - C with a bit of C++
COS110 - More in depth C++ techniques, actual coding projects ect.
ERA284 - Though regarded as a second year module students have it in their first. Here you'll need basic assembly coding skills. Using stacks and just understanding how the basic registers work. We had to program a simple adder and a program that printed out the fubbinaci sequence. Hardest part for beginners is understanding how to print out multi-character decimals when you have to use ASCII.
COS121 is no longer part of Computer Engineering. Was replaced by COS110. IT students still have both.
 
The programming you'll encounter is:
COS131 - C with a bit of C++
COS110 - More in depth C++ techniques, actual coding projects ect.
ERA284 - Though regarded as a second year module students have it in their first. Here you'll need basic assembly coding skills. Using stacks and just understanding how the basic registers work. We had to program a simple adder and a program that printed out the fubbinaci sequence. Hardest part for beginners is understanding how to print out multi-character decimals when you have to use ASCII.
COS121 is no longer part of Computer Engineering. Was replaced by COS110. IT students still have both.
So how was it? Easy/hard/boring/enjoyable?

COS110 isn't anything like COS121 (previously COS214) but I think COS110 is a better fit for Eng. students anyway. And yes CS students have it, they have to do all COS modules :p (except Graphics and AI which are optional)

I also did ERA284 but used to be called EOS284. Don't really understand it's purpose because it felt like a down scaled version of ERS220 and assembly we already did in COS222. It's focus is more hardware than assembly tho, well was back when I did it. Also only CS students used to have to take that module, weird that Eng. students take it now...
 
I enjoyed my first year, having had ad-maths at high school the calculus was boring, up until last quarter of the year - WTW 168 a lot more complex than WTW 158. The programming was easy, first practicals bit of a shell shock as IT at school isn't real problem solving programming. The practicals commonly have a mathematical background. First practical was a program that printed out the prime factors of any integer. The hardest part of programming at TUKS is that your practicals are marked by a program (FITCHFORK). Only the output is marked, thus if one character is a capital where it should be lower case you get zero. If a program doesn't compile you get negative one xD

COS110 definitively a better fit than COS121. COS110 is focuses on solving the problem at hand and not using a bunch of predefined methods.

The hardest part of my first year was learning to understand the lectures. Some speak a language that resembles English, Ohm's Law becomes Omch Slaw ect.

A very annoying but enriching part of BEng Computer at TUKS is EIW121. It is two weeks after November Exams where you do CCNA 1 and CCNA 2. The University enrolls you in the CISCO CCNA Exploration course which you'll complete by your third year. We physically worked in labs, setting up CISCO routers. (Alot of fun as there are more routers than students xD)
 
Last edited:
I enjoyed my first year, having had ad-maths at high school the calculus was boring, up until last quarter of the year - WTW 168 a lot more complex than WTW 158. The programming was easy, first practicals bit of a shell shock as IT at school isn't real problem solving programming. The practicals commonly have a mathematical background. First practical was a program that printed out the prime factors of any integer. The hardest part of programming at TUKS is that your practicals are marked by a program (FITCHFORK). Only the output is marked, thus if one character is a capital where it should be lower case you get zero. If a program doesn't compile you get negative one xD

COS110 definitively a better fit than COS121. COS110 is focuses on solving the problem at hand and not using a bunch of predefined methods.

The hardest part of my first year was learning to understand the lectures. Some speak a language that resembles English, Ohm's Law becomes Omch Slaw ect.

A very annoying but enriching part of BEng Computer at TUKS is EIW121. It is two weeks after November Exams where you do CCNA 1 and CCNA 2. The University enrolls you in the CISCO CCNA Exploration course which you'll complete by your third year. We physically worked in labs, setting up CISCO routers. (Alot of fun as there are more routers than students xD)

When'd you finish? I was final year, last year. EIW was way too easy, most of us saw it as a waste of a holiday :p We still do :D
 
Electronic engineering students need to do assembler in a basic platform, PIC, 8bit AVRs, 8051's. Something simple to understand that a processor is not just some black box and they have some serious limitations, and totally different architectures. Then only move into the more complex processors, 32bit micro's (Cortex-M3's especially - hugely popular), FPGA's, DSP's, 'hybrid' chips. You need to walk before you start running.

If I was you OP, I'd look up stuff to do with PIC/AVR8 assembler code, and find out as much stuff about low end (8-bit RISC) microcontrollers as possible. Keep it simple at first so its not such a shock when you see the stuff in lectures. Find out about ports, registers, different memories there are, crystals and clocks, ADC's, DAC's, PWM etc.

Also then, do some tutorials in basic C code. Writing 'Hello world' applications etc.

That'll be a good foundation before starting. (Man, I wish I did that. I hadn't done any programming at all before I started first year. My only supp was the first programming course. Dammit!)
 
Top
Sign up to the MyBroadband newsletter
X