Download presentation
Presentation is loading. Please wait.
1
CS/COE 0447 Jarrett Billingsley
Welcome! CS/COE 0447 Jarrett Billingsley
2
Administrivia CS447
3
jarrett@cs.pitt.edu pitt.edu/~jfb42 hi you can just call me Jarrett
I send announcements through courseweb which come thru announcements/grades are the only things I use courseweb for everything else is on my site. also computers suck and the people who work with computers suck and get out while you can. go grow plants. CS447
4
Textbook (optional) Computer Organization & Design (Patterson & Hennessy) textbooks are a racket pirate everything you can 5th edition is stupid ("PostPC" crap) - I don't really use it at all - has some good stuff, has some overly-detailed stuff, has some bad stuff CS447
5
Grading there is no such thing as attendance labs: 10%
graded on effort/completion projects: 50% two in MIPS assembly language, one in Logisim lowest grade worth 10%; other two worth 20% exams: 40% lowest grade worth 15%, other 25% CS447
6
Expectations religious absences: contact me ASAP
students with disabilities: contact the DRS ASAP jokes/comments about sex, gender, race, ethnicity, religion, etc. are inappropriate for class, s, office hours, chats etc. if someone is making you feel unwelcome/uncomfortable, please contact me or the TAs privately if you are making someone feel unwelcome/uncomfortable the adult response is to accept responsibility and apologize not to say "it was just a joke/meme" or "you're too sensitive" have you considered being nice? humans are rational and emotional. consider others' happiness. if you fail to acknowledge your own emotions, you are doomed to be controlled by them. CS447
7
DON’T STRUGGLE IN SILENCE ON YOUR PROJECTS/LABS!!!!!
Teaching philosophy you are a student. you’re supposed to be confused. I wanna help you understand! No questions are dumb! Never be afraid to ask them! DON’T STRUGGLE IN SILENCE ON YOUR PROJECTS/LABS!!!!! what is a university setting good for today? focus, practice, and access to people who know stuff in other words, me it is my job to teach you, please let me do my job - "teaching" does not mean "standing up at the front of the room and reading off a slide deck" - teachers who do that and nothing more are bad teachers. - I am the most important resource available to you. CS447
8
I can tell when you cheat :^)
first cheat, fail the assignment; second cheat, fail the class. don't post your code on github don't "help" your friends by giving them code - if you "help" a friend, you are only delaying their failure until a later point when it will be too late to fix the problems. - a 0 will hurt way, way more than a 60, and it'll hurt you both. - don't cheat if your enrollment is contingent upon your GPA. or your ROTC training or your student visa or whatever. CS447
9
That being said… I trust you!
I try to be accommodating about extensions and such I don’t think most cheaters are being lazy but you’re an adult, and are responsible for your actions. if you're confused, don't cheat, ask me for help. again, that's what I'm here for?????????? you can work with one partner on projects as long as… you inform me ahead of time, and you do not share code! CS447
10
Introduction and Context
CS447
11
Goals of this course ”447 tries to convince you that computers exist.” – Dr. Misurda 447 and 449 teach some similar topics from different angles: data representation memory organization how programs really run the call stack and calling conventions this course also establishes important fundamental skills: numerical bases and representation logical operations understanding logic diagrams CS447
12
More goals Java has poisoned your mind
ok it's fine for algorithms but it's too high level to explain computer learning assembly is like a car mechanic learning how an engine runs - a normal person doesn't need to know this stuff - but you're not normal, are you? CS447
13
Where does this material fit in with CS and EE?
the “hardware-software interface” where CS and EE overlap each layer affects/is affected by layers above and below ISA: Instruction Set Architecture Programmer's interface to the computer hardware logic design how we make rocks Do Stuff doing Lots of Stuff (aka a CPU) Computational Theory Algorithm Design Applications Operating Systems ISA Logic Design Electrical Design Physics more abstract more concrete CS447
14
Classes of computers: Embedded (Microcontrollers)
very cute 8/16-bit architectures are still common as little as 32 BYTES of memory! almost always run one, built-in program focus on ultra-low power, cost, and size becoming more common every day “Internet of Things” (IoT) now your fridge can crash, your TV can crash, your dishwasher can crash, and your lightbulbs can be a botnet what a stupid future CS447
15
Classes of computers: Consumer-grade (PC/Mobile)
1-8 cores, 32/64-bit architectures, MB-GB of memory, GB-TB of persistent storage multitasking operating systems similar capabilities, different design goals focus is real-time user interaction: productivity, media, browsing, games despite what the book says, I really don’t think we’re in a “Post-PC” era who’s gonna do all their work on a touchscreen using gimped sandboxed apps - NOT MEEEEEEEEEE CS447
16
Classes of computers: Servers and Mainframes
from high end desktops to much more powerful machines or groups of machines dozens of cores, 32GB+ of RAM, massive storage systems, very high-speed networking focus on real-time data delivery - either from storage or after processing redundancy and hot-swappability goal is 100% uptime power and cooling become huge concerns CS447
17
Classes of computers: Supercomputers
cluster of hundreds to thousands of CPUs focus on crunching ENORMOUS datasets non-interactively science, research, design, and simulation and now, stock trading and "cryptocurrencies"… - bitcoin mining consumes more power than some countries - what a fucking waste of resources - cryptocurrencies are a scam btw. get out CS447
18
General computer organization
Control Registers Datapath Processor Memory Persistent Storage Other Peripherals Other Computers Input/Output Devices Network CS447
19
Machine and Assembly Languages
CS447
20
compilers and VMs turn HLLs into machine language.
Lost in translation "high-level" programming languages like Java exist for us int doSomething() { this.x = 10; return blarf(); } ?????? computers can only follow instructions written in machine language. - computers don't have any idea what to do with Java, C, C++, Python etc. - HLL = high-level language compilers and VMs turn HLLs into machine language. CS447
21
What is machine language?
a computer has a fixed set of things it can do. machine language is a numerical encoding of those operations. you could write "programs" by listing the columns/rows of buttons to press in order: (2,2)(4,4)(3,1)(3,4) = but if we used that same "program" on a different calculator… (2,2)(4,4)(3,1)(3,4) - big difference between (non-programmable) calculators and computers: - calculators *can't run the instructions themselves* - you are acting as the "control unit" - a list of instructions for one might be garbage to the other! CE * MS 6 CS447
22
What is assembly? assembly is a human-readable representation of machine code so it gives us direct control over the hardware… …but at the expense of so many useful things the CPU is no more "intelligent" than a hand which can listen to instructions and push buttons on a 4-function calculator. - no types and type-checking - no control structures (ifs, loops, functions) - no automatic memory management - no imports, namespacing, classes, objects… CS447
23
Is assembly language useful today?
“assembly is fast, so we should use it for everything!” no, it's not great for writing large programs it can be dangerous, like with the Therac-25 still useful for debugging (like in 449!) if you write a compiler, you have to generate it since that's what a compiler does good for extremely performance critical low-level code, like: device drivers some parts of operating systems High Performance Computing (simulations etc.) increasingly fewer parts of video games and… CS447
24
Embedded systems you would be amazed how many CPUs are in any given device many of these are programmed largely or entirely in assembly many people use C but they're wrong, - of course as MCUs (microcontrollers) become more complex, they become programmable with HLLs - now we have MCUs that are more powerful than entire home PCs were in the 80s - but like - that just feels wrong, doesn't it? - doesn't knowing that every appliance and machine you interact with has software in it put a pit in your stomach? - no? WELL IT SHOULD CS447
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.