1 / 24

مبانی کامپیوتر و برنامه سازی

مبانی کامپیوتر و برنامه سازی. محمودرضا هاشمی دانشکده برق و کامپيوتر دانشگاه تهران پاییز 84. What are we here for?. To understand Computing systems: What are computing systems able to do and how well can they do it? What are computing systems used for?

frey
Download Presentation

مبانی کامپیوتر و برنامه سازی

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. مبانی کامپیوتر و برنامه سازی محمودرضا هاشمی دانشکده برق و کامپيوتر دانشگاه تهران پاییز 84

  2. What are we here for? • To understand Computing systems: • What are computing systems able to do and how well can they do it? • What are computing systems used for? • How are computing systems implemented? • How can we use them to achieve our own goals مبانی کامپیوتر و برنامه سازی

  3. Computing Machines • Computers are everywhere • General purpose: servers, desktops, laptops, PDAs, etc. • Special purpose: cash registers, ATMs, games, telephone switches, etc. • Embedded: cars, hotel doors, printers, VCRs, industrial machinery, medical equipment, etc. • Distinguishing Characteristics • Speed • Cost • Ease of use, software support & interface • Scalability مبانی کامپیوتر و برنامه سازی

  4. Computing Machines • All computers, given enough time and memory, are capable of computing exactly the same things. = = PDA Workstation Supercomputer مبانی کامپیوتر و برنامه سازی

  5. In Practice • In practice, solving problems involves computing under constraints. • time • Weather forecast, Digital Video, ... • cost • cell phone, automotive engine controller, ... • power • cell phone, handheld video game, ... مبانی کامپیوتر و برنامه سازی

  6. Computer History • Abacus • Babbage- 1833 • Calculator- 1886 • Eniac- 1946 • 30 Tons • 72 m2 • 140 KW مبانی کامپیوتر و برنامه سازی

  7. Programmability مبانی کامپیوتر و برنامه سازی

  8. Operating System مبانی کامپیوتر و برنامه سازی

  9. Computer Organization • a very wide gap between the intended behavior and the raw (unorganized) electronic devices. • The forerunners to modern computers attempted to assemble the raw devices (mechanical, electrical, or electronic) into a special purpose-built machine for each desired behavior. Electronic Devices Desired Behavior مبانی کامپیوتر و برنامه سازی

  10. General Purpose Computer • We will break the gap into multiple levels and build an island in the middle. • A general purpose computer is an island that bridges the gap between the desired behavior (application) and the raw material (electronic devices). Electronic Devices General Purpose Computer Desired Behavior computer organization software مبانی کامپیوتر و برنامه سازی

  11. Computing systems and Programming Electronic Devices General Purpose Computer Desired Behavior computer organization software Hardware Architecture Software Programming مبانی کامپیوتر و برنامه سازی

  12. Natural Language Algorithm Program Machine Architecture Micro-architecture Logic Circuits Devices Layers of Abstraction Software Hardware مبانی کامپیوتر و برنامه سازی

  13. Solving a problem… Problem • Solving a problem is a systematic sequence of transformations between layers of abstraction. Software Design: choose algorithms and data structures Algorithm Programming: use language to express design Program Compiling/Interpreting: convert language to machine instructions Machine Architecture مبانی کامپیوتر و برنامه سازی

  14. Solving a problem (Cont.) Machine Architecture Processor Design: choose structures to implement ISA Microarch Logic/Circuit Design: gates and low-level circuits toimplement components Circuits Process Engineering & Fabrication: develop and manufacturelowest-level components Devices مبانی کامپیوتر و برنامه سازی

  15. Algorithms • The first and most important step in solving a problem with computers is to transform the natural language description into an algorithm. • For every problem there are usually many different algorithms. Some require fewer steps, some are more complex, … مبانی کامپیوتر و برنامه سازی

  16. Algorithm • To qualify as an algorithm a step by step procedure should have the following properties: • Definiteness • Each step is precisely stated (e.g. hot or cold lack definiteness) • Effective computability • Each step can be carried out by a computer (e.g. take the largest prime number lacks it) • Finiteness • The procedure terminates مبانی کامپیوتر و برنامه سازی

  17. This course is about: • How computers work • How they are organized internally • What are the design tradeoffs • What computers consist of • How design affects programming and applications • How to solve our problems with computers • How to program our solutions in C مبانی کامپیوتر و برنامه سازی

  18. This course is NOT about • While covering all the basic components underlying a program we won’t get into too much details about: • Underlying circuits: • Logic Circuits, VLSI • CPU structures and Assembly language • Microprocessors, and Microprocessors II • Computer Architecture • Computer Architecture, Advanced Computer Architecture • Operating Systems • Operating Systems • Problem solving • Algorithm, Data Structure, Numerical Analysis • Programming Languages • Advanced Programming مبانی کامپیوتر و برنامه سازی

  19. Course Outline • Bits and Bytes • How do we represent information using electrical signals? • Digital Logic • How do we build circuits to process information? • Processor and Instruction Set • How do we build a processor out of logic elements? • What operations (instructions) will we implement? مبانی کامپیوتر و برنامه سازی

  20. Course Outline • Algorithm/Solving problems • How to formulate our solutions in manner suitable for computers • C Programming • How do we write programs in C? • How do we implement high-level programming constructs? مبانی کامپیوتر و برنامه سازی

  21. Administrative Issues • Class website: To be determined… • Time • Sunday 11:00-13:00 • Tuesday 11:00-13:00 • Grading • Assignments 5% • Every Sunday, due the next week at 14:00 • Late submission penalties: -20% By Monday at 10, not accepted after that. • Although working in groups is encouraged but cheating is not tolerated. • Quiz 7.5% • -0.5 for each absence • 3 Projects 17.5% • Midterm 25% • Final Exam 45% مبانی کامپیوتر و برنامه سازی

  22. 3 Weekly lectures by TAs • TA team: • Mohsen Vakilian : m.vakilian@ece.ut.ac.ir • Erfan Azarkhish : e_azarkhish@yahoo.com • Mahboobeh Ghorbani : mghorbani160@yahoo.com • Roshanak Zilouchian : roshanakzm@yahoo.com • Reza Shahidinejad : shahidi_r@yahoo.com مبانی کامپیوتر و برنامه سازی

  23. References • Introduction to Computing Systems from bits &gates to C & beyond, Y.N. Patt, S. J. Patel. McGraw-Hill 2001 • The C Programming Language, Brian Kernighan and Dennis Ritchie. Published by Prentice-Hall. 1988. • More to be provided in class or at www.comnete.com/computing/links.htm مبانی کامپیوتر و برنامه سازی

  24. Questions? • Best way to reach me is by email: hashemi@comnete.com مبانی کامپیوتر و برنامه سازی

More Related