Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
מבוא למדעי המחשב Lecture A Slide 1 of 40. Lesson A - Introduction Unit A1 – About This Course Lecture A Slide 2 of 40. מבוא למדעי המחשב •מרצה :נעם ניסן שעת קבלה :ג’ ( 2:00-3:00בנין רוס ,חדר )218 •מתרגלים :ניר שרוני ,מיכאל אוקון ,מעאוויה עקש •אתר הקורסwww.cs.huji.ac.il/~intro2cs : •ספר הקורס: Java software solutions / Lewis & Loftus Slide 3 of 40. Lecture A תוכן הקורס :תכנות נכון בשפת .Java מטרות הקורס: • אלגוריתמים קורסים :אלגוריתמים ,חישוביות • מבני נתונים קורסים :מבני נתונים ,מסדי נתונים • רמות הפשטה מרובות: ממשק ומימוש • הנדסת תוכנה • שפה ומשמעות קורסים :מתמטיקה ,לוגיקה, חישוביות ,שפות תכנות ,מהדרים Slide 4 of 40. קורסים :מעבדת תכנות ,מבני נתונים • מערכות חישוב ותוכנה קורסים :מיתוג ,מסדי נתונים, מערכות הפעלה Lecture A נושאי הקורס • אלמנטים בסיסיים: מבנה התוכנית וניסוחה משתנים וביטוים פקודות בחירות לולאות מערכים חריגות • תיאוריה: Slide 5 of 40. ניתוח זמן ריצה מה ניתן לחישוב • תכנות מונחה עצמים: שימוש באובייקטים כתיבת אובייקטים ירושה ממשקים • שיטות תכנות: רקורסיה מבני נתונים דינמיים תבניות ממשק משתמש Lecture A דרישות הקורס • תרגיל תכנות כל שבוע (לפעמים כל שבועיים). הרבה עבודה .אין ברירה. מומלץ לדון עם חברים אסור!!!!! להעתיק הבחנה :דיון = דיבורים בעל פה --אין הכנסה או הוצאה של חומר כתוב או מודפס. • מבחן • ציון סופי50/50 : Slide 6 of 40. ציון תרגילים יחושב בהתעלמות מציון תרגיל נמוך ביותר Lecture A תלמידים ללא רקע תכנותי • • • • הקורס מיועד לכם (וגם למי שיש לו רקע) חודש ראשון יהיה קשה מאוד (קצת משעמם למי שיש רקע) עד סוף הקורס צפוי "יישור קו" של כולם מנגנוני עזרה: שעור עזר במהלך חודש ראשון • שלישי 20:00-18:00פלדמן א ייעוץ במעבדות • רשימת תורנות http://www.cs.huji.ac.il/~intro2cs/toranot.html Slide 7 of 40. שעות קבלה קבוצת דיון Lecture A Lesson A - Introduction Unit A2 - Introduction to Hardware Lecture A Slide 8 of 40. Our abstraction of a computer Screen Keyboard Java Program CPU Data Memory Lecture A Slide 9 of 40. Computer Organization Overview Screen Keyboard Disk Modem Bus Software Operating System Compiler Our Program CPU … Data Random Access Memory Lecture A Slide 10 of 40. Binary Representations • Digital Computers only deal with 0 and 1 • We don’t care (mostly) • Anything can be represented by sequences of 0 and 1: Integers: • 13 = “0000 1101”, 14 = “0000 1110” … Characters: • ‘A’ = “0010 0001”, ‘B’ = “0010 0010” ... • The number of bits determines the number of items that can be represented 2 bits give 4 combinations (00, 01, 10, 11) 8 bits (a byte) give 256 combinations 32 bits (a word) give more than 4,000,000,000 combinations Lecture A Slide 11 of 40. An Example PC Specification • 1.1 GHz Pentium IV Processor • 256 MB RAM • 20 GB Hard Disk • 17” Display with 1280 x 1024 resolution • 56 KB Modem Lecture A Slide 12 of 40. More about Hardware • Much more to learn • Not the topic of this course • Other courses deal with computer hardware Digital Systems course Computer Architecture course Digital Communications course Advanced courses • In this course, we stick with our abstraction Lecture A Slide 13 of 40. Lesson A - Introduction Unit A3 – Introduction to Software Lecture A Slide 14 of 40. Problems and Algorithms • We need to solve a computational problem “Simulate an Boeing 767 airplane” “Convert a weight in pounds to Kg” • An algorithm specifies how to solve it, e.g.: 1. Read weight-in-pounds 2. Calculate weight-in-Kg = weight-in-pounds * 0.455 3. Print weight-in-Kg • Computers must be given exact instructions • A computer program is a computer-executable description of an algorithm Lecture A Slide 15 of 40. Machine languages • Each processor has its own machine language • An assembly language is a human-readable form of the machine language load R7, value 0100 0111 1101 0011 ... jgt label3 0101 1011 0110 0111 ... add R7, bonus 0110 0111 1010 1100 ... Lecture A Slide 16 of 40. High Level Languages • Humans prefer programming in a high level language • A compiler can translate to machine language • A Interpreter can execute high-level code load R7, value If (value < 0) value = value + bonus jgt label3 add R7, bonus Compilation Lecture A Slide 17 of 40. Operating Systems • Provides hardware-dependant services in a hardware- independent way • Used by application programs • OS services to users Files Printing Communication Running programs • OS services to application programs All of the above Memory Management User Interface Processes Lecture A Slide 18 of 40. Lesson A - Introduction Unit A4 – First Java Program Lecture A Slide 19 of 40. The Java Programming Language • Invented 1995 by James Gosling at Sun Microsystems. • Based on previous languages: C, C++, Objective-C, … • Intended to be a safe programming language for the Internet • Common choice for first programming language Object oriented Encourages good programming habits Very popular commercially Simpler and more elegant than C++, but similar to it Cool Lecture A Slide 20 of 40. Hello World Program // My First Program!! public class HelloWorld { public static void main(String[] args){ System.out.println(“Hello World!”); } } Lecture A Slide 21 of 40. Java Program Elements • Words Keywords Identifiers • Constants Numbers Strings • Symbols ()[]{},.;+-*/ • Comments Lecture A Slide 22 of 40. Java Elements Comment Identifier Symbols // My First Program!! public class HelloWorld { public static void main(String[] args){ System.out.println(“Hello World!”); } } Keywords String Constant Lecture A Slide 23 of 40. Java Program Structure • A program is composed of a collection of classes • Each class contains a collection of methods • Each method is composed of a sequence of instructions (commands, statements) Lecture A Slide 24 of 40. Java Program Structure Class Method // My First Program!! public class HelloWorld { public static void main(String[] args){ System.out.println(“Hello World!”); } } Instruction Lecture A Slide 25 of 40. Lesson A - Introduction Unit A5 – Running Your Program Lecture A Slide 26 of 40. Running a Java Program • Use an editor to enter (type) the program Save to a file named HelloWorld.java • Use the compiler to translate the program into bytecode javac HelloWorld.java This produces a file named HelloWorld.class • Run the program using the Interpreter java HelloWorld Lecture A Slide 27 of 40. Java Compilation Xxx.java Compiler Xxx.class Interpreter Output Lecture A Slide 28 of 40. Entering a Java Program into an Editor Lecture A Slide 29 of 40. Running a Java Program Lecture A Slide 30 of 40. Integrated Development Environments (IDE) • Include a combination of: Editor Compiler Debugger Project Management • Some Commercial IDEs Lecture A Sun Forte IBM Visual Age Borland Jbuilder … Slide 31 of 40. Forte – Screen Capture Lecture A Slide 32 of 40. Debugging • You will make many errors! • Most of your time will be spent finding them and correcting them -- debugging. • There are several types of errors: Syntax errors • detected at compilation time Run-time errors • the program runs and crashes Logical errors • the program does something other than what you want it to do • It does exactly what you told it to do • The earlier an error is caught, the easier it is to correct Lecture A Slide 33 of 40. Lesson 1 - Introduction Unit A6 – Introduction to Objects Lecture A Slide 34 of 40. Large Programs • Commercial software may require millions of lines of code • Humans can only handle about 7 things together • To construct large programs: break the program into components then break each component, etc. • When you use a component you only use its abstraction. • When you construct a component you forget about the rest of the program. Lecture A Slide 35 of 40. Interfaces • The interface of a software component is an exact definition of what it can do • It does not address how it does what it does • When you use a component you only consider its interface • A good component will have a clear, narrow interface Lecture A Slide 36 of 40. Objects • Objects are the basic components in Java • An object has an interface and an internal state. • The interface encapsulates (hides) the internal operation • The interface specifies the services the object provides Object A that uses Object B Lecture A Object B Slide 37 of 40. A Turtle Object Lecture A Slide 38 of 40. A Turtle Object • A Turtle object represents a turtle that walks on the screen with a pen on its tail • Turtle object interface: moveForward(distance) moveRight(degrees) moveLeft(degrees) tailUp() tailDown() • Turtle object internal state Location on screen Direction facing Tail is up or down Lecture A Slide 39 of 40. Using a Turtle public class TurtleDrawing { public static void main(String[] args){ Turtle leonardo = new Turtle(); leonardo.tailDown(); leonardo.moveForward(100); leonardo.turnRight(60); leonardo.moveForward(100); } } Lecture A Slide 40 of 40.