Computer Science Fundamentals - PowerPoint PPT Presentation

About This Presentation
Title:

Computer Science Fundamentals

Description:

To get a String which a user has entered into a TextField named input we ... 3.X onto your own computer, you have java, the java compiler as part of the kit. ... – PowerPoint PPT presentation

Number of Views:41
Avg rating:3.0/5.0
Slides: 32
Provided by: higg2
Category:

less

Transcript and Presenter's Notes

Title: Computer Science Fundamentals


1
Computer Science Fundamentals
  • A topics course in Computer Science

2
Topics we hope to cover
  • Data representation (especially binary and hex),
    arithmetic, base change algorithms
  • Operating systems (including an introduction to
    Threads of execution)
  • Boolean algebra and switching functions
  • Combinational and flip-flop circuitry (an
    introduction to architecture)
  • Computer communication (an introduction to
    sockets and/or datagrams)
  • Theory of computation (an introduction to
    automata and computability)
  • Assembly language programming
  • Program translation
  • Well also learn some java programming!

3
Data representation
  • Information in the computer is represented in
    base 2 (binary), although, for convenience, base
    16 is also sometimes used.
  • In radix positional notation, a digit d, located
    in position p, in a number base b, represents
    dbp. So, the decimal value 8352 represents
    8(1000)3(100)5(10)21. Similarly, the
    binary value 1011101 represents the value
    16403211618140211.
  • Note that the powers base 2 are 1,2,4,8,16,32,
    201, 212, etc. Make sure you are familiar with
    the two-powers.

4
You will need to memorize the values 0..15 in
binary and hex
5
Kinds of data
  • There are many types of data stored in computer
    memory. Some memory cells hold instructions,
    some hold integers, some hold float values, some
    hold char data, other store composite data types.

6
Char data is stored internally using the ASCII
(or UNICODE) collating sequence
  • You can find a complete ASCII table in most
    computer texts.
  • Exercise In C or Java, print your own ASCII
    table print the int value x 32255 in the left
    column of a table and print (char)(x) in the
    right column.
  • You will need to know the collating sequence
    values for some characters like 0, 1, also
    a,b, and A, B,
  • Exercise write these values in binary.

7
Int data
  • Integers may be stored internally in one of
    several formats
  • BCD (binary coded decimal) often used in
    spreadsheet programs
  • Unsigned int a positive binary value
  • Signed int positive or negative value

8
BCD
  • BCD allocates 4 bits (a nibble) of binary storage
    for each decimal digit to be represented.
  • Example 598 in decimal will require
    3digits4bits each 12 bits. In BCD it looks
    like this 010110011000
  • Practice converting a few decimals to BCD

9
Unsigned ints
  • In unsigned (positive) representations, all bits
    are used to indicate the value.
  • In 4 bits of binary, you can represent decimal
    values 0,,15. (see table a few slides back.)
    What values could be represented in 5 bits? In 8
    bits? In 16 bits?
  • What is the general rule?
  • Represent values 0, 48, 65, 97, and 127 in 8
    bits. Example 48 decimal is 00110000 in 8 binary
    bits.
  • 8 bits is called a byte.

10
Quick conversion between bases From base b to
decimal
  • To convert from any base to decimal, use Horners
    algorithm for polynomial evaluation. A number in
    base b can be regarded as a polynomial p in the
    variable b. Let P(b) anbn a n-1 b
    n-1a1b1a0b0
  • This would be written as the series of
    (coefficient) digits. For example, the base 6
    value 32501 represents 3(64)2(63)5(62)0(61)
    1(60)
  • Using nested multiplication we can rewrite this
    without needing to compute exponentials of the
    base ((((36)2)65)60)61

11
Base b to decimal via Horner
  • If a value in a base b is entered as a String in
    a TextField named input, and the base is entered
    in a TextField called basefield, we could use the
    following Java code to do the conversion
  • String value
  • int b, answer
  • answer0
  • bInteger.parseInt(basefield.getText())
  • valueinput.getText()
  • for(int j0jltvalue.length()j)
  • answer answerbase (int) (value.charAt(j)-48)

12
Remarks on this code exercises
  • Note that the length of a String in Java can be
    obtained using the class method length(). The
    String method charAt(p) returns the char in
    position of a String. The TextField method
    getText() returns the String entered into a
    TextField.
  • For which bases would the java code fragment not
    provide the correct answer? Why?
  • Fix this problem.
  • Complete the JApplet. Write a JApplet which
    provides labels and textfields for a base, a
    value and an answer and performs the conversion
    from base b to base 10.

13
Converting from decimal to other bases
  • In determining what a decimal value would look
    like if represented in another base (b), we need
    to figure out what digit in base b goes in each
    position of the representation.
  • Suppose n295 and b2, ie., we are trying to
    convert to binary. The 1s place will have a 1 in
    it since 295 is odd.
  • 295 (10) ???..??1(2)
  • But how many other bits are there, and what are
    each of their values? Since positions in the
    binary representation indicate powers of two,
    having figured out the ones place means we have
    only half of n (295/2 147) left to represent.

14
Example convert 295 decimal to binary
  • 295 is oddleast significant bit is a 1 295(10)
    ???..?1(2)
  • 295/2 147. Since 147 is odd, 2s bit is also a
    1 295(10) ???..?11(2)
  • 147/2 73. Since this is odd, next bit is also a
    1 295(10) ???..111(2)
  • 73/236. Even, so next bit is a zero 295(10)
    ???..0111(2)
  • 36/218, which is even. 295(10) ???00111(2)
  • 18/29, odd. 295(10) ???100111(2)
  • 9/24 even. ??0100111(2)
  • 4/22 even. ?00100111(2)
  • 2/21 0dd. 100100111(2)
  • ½0 stop.

15
Decimal to any other base
  • Convert from decimal to any base using the
    remainder/division algorithm described
    previously. Each remainder operation generates
    one digit of the answer. Then divide the number
    by the base and continue.
  • String answer
  • int base Integer.parseInt(basefield.getText())
  • int value Integer.parseInt(input.getText())
  • while (value!0)
  • answer valuebaseanswer
  • value/base

16
Remarks Exercises
  • Note, we use the static Integer method parseInt()
    to convert a String to an int value. 
  • For what input values would this Java code not
    work properly? Why?
  • Can you fix this problem to convert decimal
    values into values in any other base?
  • Write the JApplet which would provide labels,
    textfields and buttons enabling the user to enter
    a decimal int and a new base value and convert
    the decimal int to the new base.
  • Practice doing these conversions by hand.

17
Base conversions base b to base bn
  • If you are converting between bases where one
    base is a power of the other, like binary to hex,
    or binary to octal, or base 3 to base 9 then the
    conversion may be done very easily. n digits of
    base b will be needed for each 1 digit of base bn
    .
  • Consider converting A6E9 in base 16 to binary.
    Each hex digit will generate 4 binary bits. If
    you have not memorized your hex digits yet, this
    is a good time to start. In decimal A is 10, B
    is 11, C is 12, F is 15. So A 1010(2), etc.
  • A6E9 (16) 1010011011101001 (2)
  • Convert this number (right hand side above) to
    base 8 and base 4.
  • Convert the base 9 value 783361 to base 3.

18
An introduction to Java
  • Java syntax is the same as C. In other words,
    an assignment statement, an if, a while, or a for
    statement in Java looks the same as in C.
  • Java class methods are called, like in C, using
    the dot . operator
  • ClassInstance.methodName(parameters)
  • To get a String which a user has entered into a
    TextField named input we might use the code
  • String value input.getText()//getText is a
    TextField method
  • Java methods (functions) have return types,
    parameters, and their definitions are enclosed in
    a block , like in C programming. Prototypes
    are not used in Java.

19
An introduction to Java
  • Java provides components (classes) buttons,
    textfields, and labels, among many others. These
    three are called JTextField, JLabel, and JButton
    in Java 1.2 and higher. These classes must be
    instantiated with new. Example
  • JButton bnew JButton(press me)
  • In a small program, declarations are typically
    global (not inside a method) and data allocation
    occurs in the JApplet method init(). The init
    method is executed when a browser loads an
    applet.
  • All java applets and applications must consist of
    an outer class
  • //sample Java JApplet 
  • import javax.swing. //contains Java2 classes 
  • public class OuterClass extends JApplet
  • //open block  
  • //methods, declarations go in here
  • //close outer block

20
JApplet with JLabel, JTextField and JButton
  • import javax.swing.  
  • public class OuterClass extends JApplet
  • //global applet declarations typically go here
  • public JLabel label
  • public JTextField text
  • public JButton button
  • public void init()//first method browser will
    execute
  • Container cgetContentPane()//get the panel for
    this applet
  • c.setLayout(new FlowLayout())//one sort of
    layout
  • buttonnew JButton(press me)
  • label new JLabel (enter value)
  • textnew JTextField(20)
  • c.add(label)//components appear in the order
    they were added to the panel
  • c.add(text)
  • c.add(button)
  • //end init
  • //end applet

21
JApplet structure
  • Note that imports appear the top of a java
    Applet. These are like includes in C.
  • Applets may have many user defined methods.
  • They may also override the Applet methods init(),
    paint(), start(), stop(), and many others.
  • A Java applet or an application must consist of
    an outer class (with a block) and any data
    fields, and methods (with their blocks) defined
    inside the outer block.

22
Applet deployment
  • We must perform a number of steps in order to
    deploy an applet to our webspace so a visitor
    there could run it.
  • Type the code into an editor or IDE
  • Compile the .java file. This process will check
    syntax. If it is successful, a .class file will
    be created which has the same name as the
    original java source file. Ie. Prog.java when
    compiled with generate a file called prog.class.
    Create an appropriate html file to point a
    browser to your class file.
  • Check things out on your desktop by running the
    applet in appletviewer.
  • Use FTP to send appropriate html and class files
    to your webspace

23
Using an editor
  • Type the java source code into an editor or IDE
    (integrated development environment like
    JBuilder) and save it as a .java file.
  • The filename must be the same as the outerclass
    name.
  • We will use TextPad, a shareware program, as our
    editing environment, although you can also use
    the Borland C editor or Word. (If you use MS
    Word, make sure the file is saved as ASCII text
    format and has the extension .java)
  • TextPad can be downloaded on your own computer.
    It is produced by Helios.com
  • TextPad has some features of an IDE you can
    compile and run java applets and applications
    from TextPad.
  • TextPad is available in the campus labs.

24
Compile the .java file.
  • This process will check syntax. If it is
    successful, a .class file will be created which
    has the same name as the original java source
    file. Ie. Prog.java when compiled with generate
    a file called Prog.class.Java is case sensitive.
  • Compile in TextPad by selecting compile from the
    tools menu.
  • Alternative. If youve downloaded JDK1.3.X onto
    your own computer, you have java, the java
    compiler as part of the kit. Open a DOS window
    (run command.com)and navigate to your jdk bin
    directory where you should have saved your .java
    file. At the prompt, type java Prog.java
  • This will create a file called Prog.class.
  • A class file is not an executable, it contains
    portable byte-code. It requires a java
    interpreter (named java) to be executed.

25
Create an appropriate html file to point a
browser to your class file
  • Sample html
  • lthtmlgt
  • ltapplet code Prog.class height300 width500gt
  • lt/appletgt
  • lt/htmlgt
  • This must be typed into a file and saved with the
    .html extension. You could call this file
    Prog.html to make it easier to remember which
    applet it pointed to.

26
A possible problem with the html and current
browser versions (IE Netscape)
  • Depending on what browser you use, and its
    version, it may require a plugin to run java2.
    The html file will then need to be modified to
    tell the browser to go load the plug in. Campus
    labs have the plugin already downloaded.
  • There should also be a java program called
    HTMLConverter you can use to convert the html
    file we created into a more complicated one that
    tells the browser it needs to load a plugin to
    run the applet.
  • My class page has examples of this converted html
    file format you can cut and paste from the
    examples there to create a new html.
  • See class notes about this topic.

27
Check things out on your desktop by running the
applet in appletviewer
  • If you can get into DOS (on your own computer)
    and have downloaded the jdk you can use the
    simple html file format I presented earlier to
    check whether your applet works now.
  • Assuming you have an applet called Prog.java, a
    class file named Prog.class and an html file
    named Prog.html, navigate to the bin directory
    and type appletviewer Prog.html
  • appletviewer is a program in the jdk which will
    run your applet as a browser would, so you can
    check if it works ok.
  • Textpad is also configured to run appletviewer in
    the labs. If youve created an html file for
    your applet, select appletviewer from the textpad
    tool menu. You may need to have saved these
    files in particular directories, like the
    java/bin directory, for this to work properly in
    the labs. See class notes on this.

28
Use FTP to send appropriate html and class files
to your webspace
  • I have a screen shot of how to configure your
    WinFTP session to ship files to your webspace on
    our class pages.
  • Make sure to send .class files as type binary.
    Later, youll use binary type for jpg and wav
    files also.
  • HTML can be sent as ascii.
  • Type your applet url into the browser to go visit
    your applet. It will be something like
  • http//www.webserver2/students/smitxy87/Prog.html

29
An applet with a listener
  • Applets are event-driven programs. This means
    things happen when the user click buttons, moves
    the mouse, or enters values into fields.
  • It is up to the programmer to insure the applet
    listens for button clicks (or whatever) and does
    what needs to be done if a button is clicked.
  • This is done by means of listeners in Java.
    There are many (!) listeners. One of the
    simplest is the one which checks if values have
    been entered into textfields or if a button is
    clicked. It is called ActionListener.
  • Listeners are types of interfaces. A java applet
    or application program may use many interfaces.

30
Implementing the ActionListener
  • import javax.swing.  
  • public class OuterClass extends Japplet
    implements ActionListener
  • //global applet declarations typically go here
  • public JLabel label
  • public JTextField text1, text2
  • public JButton button
  • public void init()//first method browser will
    execute
  • Container cgetContentPane()//get the panel for
    this applet
  • c.setLayout(new FlowLayout())//one sort of
    layout
  • buttonnew JButton(press me)
  • label new JLabel (enter value)
  • text1new JTextField(20)
  • Text2new JTextField(20)
  • c.add(label)//components appear in the order
    they were added to the panel
  • c.add(text1) c.add(text2)
  • button.addActionListener(this)//button is
    listening now for user to press it
  • c.add(button)
  • //end init
  • //see next slide!

31
ActionListener interface requires the programmer
to define the method actionPerformed()
  • The above applet is not complete. It is missing
    the outer close block, but even so, will not
    compile without the definition of the method
    actionPerformed which tells the aplet what to do
    if the button is pressed.
  • public void actionPerformed(ActionEvent x)
  • int z Integer.parseInt(text1.getText())//get
    int entered by user
  • int p 2z// do elaborate computations
  • text2.setText(p)
  • //when button is clicked, 2input value is
    calculated and displayed
  • //end actionPerformed
  • //end outer class
Write a Comment
User Comments (0)
About PowerShow.com