193
votes
Accepted
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
You should teach both, and you probably want to use the binary unit. When you are talking about the difference, it may be helpful to tell them about how to tell the difference when reading them:
The ...
70
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
You should teach them it's messed up beyond repair, and it's their generation's job to teach the next generation to use the silly-sounding standard prefixes, so that when they finally retire (and the ...
56
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
Actually, you need to teach them both so that they are warned that the usage is not consistent. Then you can choose one as a standard in your course going forward.
Which you choose depends a bit on ...
24
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
The difference between providing your students with a proper discussion of this topic, and simply teaching them one or the other, is the difference between being a real educator and being a reciter of ...
18
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
Yes I agree with other answers, teach both, and also note the similarity.
The difference
$\text{ki} = 1024 = 2^{10}$
$\text{k} = 1000 = 10^3$
$\text{k}, \text{M}, \text{G}, \text{T}, \text{P}$ is ...
12
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
I've worked in IT professionally since the mid-1980s. My current practice is to write whichever of e.g. KB or KiB that I mean at the time, with KB meaning $10^3$ and KiB meaning $2^{10}$. If I'm ...
7
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
The basic confusion is in the notation at the KB (base 2 derived) vs kB (SI unit) unit level, and it is helpful to understand the origin of the use of the base 2 derived unit.
A computer is a binary ...
7
votes
Accepted
How do you wow second-year students into saying "bare-metal programming is cool!"?
First, just a disambiguation: are you teaching Assembly language or C? Cos, they are not same as your question seems to suggest. C is a high-level procedural clean code language with tremendous ...
6
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
I am adding a second answer to clarify some issues with the question and to clear the obvious confusion in the answers.
The question incorrectly states that the linked IEC communication recommends KB ...
5
votes
Study the book "Computer Architecture- A quantitative approach" (3rd Edition) for the first time
I think you first need to decide what your goals are. Are you interested in computer architecture because:
You want to design computer hardware and so need to understand it at a fundamental level?
Or ...
5
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
Teach them that without context, you don't know because there most certainly are people out there who will use k to mean 1000 and others who will use k to mean 1024. Which is right is not relevant ...
5
votes
Accepted
Undergrad level computer architecture course
My go-to answer for this topic is Nand2Tetris.
There are 2 Coursera courses (Part I and Part II) that match the curriculum of the program. The first course does not require any programming background....
4
votes
Benefits of explaining low-level architecture in a programming class
Students should understand the importance of the memory hierarchy, including how caches use temporal and spatial locality to tremendously speed up memory accesses. Otherwise, a student would not know ...
4
votes
How do you wow second-year students into saying "bare-metal programming is cool!"?
You may not win if you just use words. Instead, give them interesting but challenging exercises to do.
One of the most fun exercises I ever did was to produce a Quine in assembly language. But, ...
3
votes
Accepted
Could any one suggest me an easy book to learn AT&T syntax of x86 assembly programming so that I can understand the code of xv6 better?
Learn to Program with Assembly by Jonathan Bartlett (2021) is a great one.
It teaches assembly programming for x86-64 processors using AT&T syntax and the GNU Assembler. It's a follow up to his ...
3
votes
Is there any purpose to having students do fiddly cache homework assignments?
It sounds like you've already answered your question, but I'll throw in my two cents:
It depends.
Does every software engineer need to simulate the differences between direct-mapped, 2-way set ...
3
votes
Accepted
Benefits of explaining low-level architecture in a programming class
TL;DR Understanding the levels of abstraction in a computer
My AP Computer Science Principles course teaches three languages: Scratch, C, and Python. One of the 7 Big Ideas for the course is ...
2
votes
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
Teach them both but focus on 1024 in problems. They'll need to convert bandwidth, etc in networking and other courses.
Converting using 1000 is easy but 1024 is tricky so focus on that, the ...
2
votes
Benefits of explaining low-level architecture in a programming class
Describing the low level architecture at the level of what the machine is able to do can greatly help some students to identify with the task of coding. If you do this, I think you also need to ...
2
votes
Benefits of explaining low-level architecture in a programming class
A touch of some minimal explanation of logic gates, binary numbers, state machines and the processor-memory divide helps make computing seem less like magic, and more like technology (something of ...
2
votes
How do you wow second-year students into saying "bare-metal programming is cool!"?
Forth is very interesting language which can run on bare metal, and also be as high level as you want (I've see a compiler/interpreter of subset of Pascal implemented in 11 pages) and will stretch ...
2
votes
How do you wow second-year students into saying "bare-metal programming is cool!"?
I may be late to game, but you should target four "wow"s:
"wow, how small .exe file is!"
"wow, how fast this program is compared to Python!"
"wow, and THAT is how ...
1
vote
How do you wow second-year students into saying "bare-metal programming is cool!"?
I would argue the best way to do this is have some demonstrations prepared: things they can build with the tools you're teaching that "look" flashy and exciting. Show some cool programs written in C, ...
1
vote
Should I teach that 1 kB = 1024 bytes or 1000 bytes?
The other answers all give solid reasons for teaching that both exist and how badly messed up the current situation is. This is important, but it does not clarify what the students should prefer to ...
1
vote
Benefits of explaining low-level architecture in a programming class
Regarding architecture specifically, I don't see a tremendous benefit in high-school level programming classes. However, at just one level or so of higher abstraction, discussing the principles of ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
architecture × 11resource-request × 7
self-learning × 6
gpu × 2
curriculum-design × 1
student-motivation × 1
best-practice × 1
undergraduate × 1
textbook × 1
operating-systems × 1
assembly × 1
hardware × 1
secondary-education × 1