Presentation is loading. Please wait.

Presentation is loading. Please wait.

Slide 1 of 40. Lecture A מבוא למדעי המחשב. Slide 2 of 40. Lecture A Lesson A - Introduction Unit A1 – About This Course.

Similar presentations


Presentation on theme: "Slide 1 of 40. Lecture A מבוא למדעי המחשב. Slide 2 of 40. Lecture A Lesson A - Introduction Unit A1 – About This Course."— Presentation transcript:

1 Slide 1 of 40. Lecture A מבוא למדעי המחשב

2 Slide 2 of 40. Lecture A Lesson A - Introduction Unit A1 – About This Course

3 Slide 3 of 40. Lecture A מרצה: נעם ניסן  שעת קבלה: ג’ 2:00-3:00 (בנין רוס, חדר 218) מתרגלים: ניר שרוני, מיכאל אוקון, מעאוויה עקש אתר הקורס: www.cs.huji.ac.il/~intro2cs ספר הקורס: Java software solutions / Lewis & Loftus מבוא למדעי המחשב

4 Slide 4 of 40. Lecture A תוכן הקורס: תכנות נכון בשפת Java. מטרות הקורס: רמות הפשטה מרובות: ממשק ומימוש הנדסת תוכנה  קורסים: מעבדת תכנות, מבני נתונים מערכות חישוב ותוכנה  קורסים: מיתוג, מסדי נתונים, מערכות הפעלה אלגוריתמים  קורסים: אלגוריתמים, חישוביות מבני נתונים  קורסים: מבני נתונים, מסדי נתונים שפה ומשמעות  קורסים: מתמטיקה, לוגיקה, חישוביות, שפות תכנות, מהדרים

5 Slide 5 of 40. Lecture A נושאי הקורס תכנות מונחה עצמים:  שימוש באובייקטים  כתיבת אובייקטים  ירושה  ממשקים שיטות תכנות:  רקורסיה  מבני נתונים דינמיים  תבניות  ממשק משתמש אלמנטים בסיסיים:  מבנה התוכנית וניסוחה  משתנים וביטוים  פקודות  בחירות  לולאות  מערכים  חריגות תיאוריה:  ניתוח זמן ריצה  מה ניתן לחישוב

6 Slide 6 of 40. Lecture A דרישות הקורס תרגיל תכנות כל שבוע (לפעמים כל שבועיים).  הרבה עבודה. אין ברירה.  מומלץ לדון עם חברים  אסור!!!!! להעתיק  הבחנה: דיון = דיבורים בעל פה -- אין הכנסה או הוצאה של חומר כתוב או מודפס. מבחן ציון סופי: 50/50  ציון תרגילים יחושב בהתעלמות מציון תרגיל נמוך ביותר

7 Slide 7 of 40. Lecture A תלמידים ללא רקע תכנותי הקורס מיועד לכם (וגם למי שיש לו רקע) חודש ראשון יהיה קשה מאוד (קצת משעמם למי שיש רקע) עד סוף הקורס צפוי "יישור קו" של כולם מנגנוני עזרה:  שעור עזר במהלך חודש ראשון שלישי 20:00-18:00 פלדמן א  ייעוץ במעבדות רשימת תורנות http://www.cs.huji.ac.il/~intro2cs/toranot.htmlhttp://www.cs.huji.ac.il/~intro2cs/toranot.html  שעות קבלה  קבוצת דיון

8 Slide 8 of 40. Lecture A Lesson A - Introduction Unit A2 - Introduction to Hardware

9 Slide 9 of 40. Lecture A Our abstraction of a computer Screen Keyboard CPU Java Program Memory Data

10 Slide 10 of 40. Lecture A Computer Organization Overview Keyboard Screen Disk Modem Bus Operating System Compiler Our Program … Data Software Random Access Memory CPU

11 Slide 11 of 40. Lecture A 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

12 Slide 12 of 40. Lecture A 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

13 Slide 13 of 40. Lecture A 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

14 Slide 14 of 40. Lecture A Lesson A - Introduction Unit A3 – Introduction to Software

15 Slide 15 of 40. Lecture A 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

16 Slide 16 of 40. Lecture A Machine languages Each processor has its own machine language An assembly language is a human-readable form of the machine language load R7, value jgt label3 add R7, bonus 0100 0111 1101 0011... 0101 1011 0110 0111... 0110 0111 1010 1100...

17 Slide 17 of 40. Lecture A Humans prefer programming in a high level language A compiler can translate to machine language A Interpreter can execute high-level code High Level Languages load R7, value jgt label3 add R7, bonus If (value < 0) value = value + bonus value = value + bonus Compilation

18 Slide 18 of 40. Lecture A 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

19 Slide 19 of 40. Lecture A Lesson A - Introduction Unit A4 – First Java Program

20 Slide 20 of 40. Lecture A 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

21 Slide 21 of 40. Lecture A Hello World Program // My First Program!! public class HelloWorld { public static void main(String[] args){ System.out.println(“Hello World!”); }

22 Slide 22 of 40. Lecture A Java Program Elements Words  Keywords  Identifiers Constants  Numbers  Strings Symbols  ( ) [ ] { },. ; + - * / Comments

23 Slide 23 of 40. Lecture A Java Elements // My First Program!! public class HelloWorld { public static void main(String[] args){ System.out.println(“Hello World!”); } Comment Identifier Symbols Keywords String Constant

24 Slide 24 of 40. Lecture A 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)

25 Slide 25 of 40. Lecture A Java Program Structure // My First Program!! public class HelloWorld { public static void main(String[] args){ System.out.println(“Hello World!”); } Class Method Instruction

26 Slide 26 of 40. Lecture A Lesson A - Introduction Unit A5 – Running Your Program

27 Slide 27 of 40. Lecture A 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

28 Slide 28 of 40. Lecture A Java Compilation Compiler Xxx.java Xxx.class Interpreter Output

29 Slide 29 of 40. Lecture A Entering a Java Program into an Editor

30 Slide 30 of 40. Lecture A Running a Java Program

31 Slide 31 of 40. Lecture A Integrated Development Environments (IDE) Include a combination of:  Editor  Compiler  Debugger  Project Management Some Commercial IDEs  Sun Forte  IBM Visual Age  Borland Jbuilder  …

32 Slide 32 of 40. Lecture A Forte – Screen Capture

33 Slide 33 of 40. Lecture A 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

34 Slide 34 of 40. Lecture A Lesson 1 - Introduction Unit A6 – Introduction to Objects

35 Slide 35 of 40. Lecture A 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.

36 Slide 36 of 40. Lecture A 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

37 Slide 37 of 40. Lecture A 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 Object B

38 Slide 38 of 40. Lecture A A Turtle Object

39 Slide 39 of 40. Lecture A 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

40 Slide 40 of 40. Lecture A 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); }


Download ppt "Slide 1 of 40. Lecture A מבוא למדעי המחשב. Slide 2 of 40. Lecture A Lesson A - Introduction Unit A1 – About This Course."

Similar presentations


Ads by Google