1 / 18

LING 408/508: Programming for Linguists

LING 408/508: Programming for Linguists. Lecture 1 August 26 th. Administrivia. Syllabus Introduction Quickie Homework 1 due Wednesday night by midnight in my e-mailbox I will assume everyone has a laptop…. Syllabus. Details Instructor: Sandiway Fong

lida
Download Presentation

LING 408/508: Programming for Linguists

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. LING 408/508: Programming for Linguists Lecture 1 August 26th

  2. Administrivia • Syllabus • Introduction • Quickie Homework 1 • due Wednesday night by midnight in my e-mailbox • I will assume everyone has a laptop…

  3. Syllabus • Details • Instructor: Sandiway Fong Depts. Linguistics and Computer Science • Email: sandiway@email.arizona.edu (homeworks) • Office: Douglass 311 • Hours: by appt. or walk-in, or after class (best) • Meet: AME S314, Tuesdays/Thursdays 5:00-6:15pm • No class on: • November 11th (Veterans Day) • November 27th (Thanksgiving) • My academic webpage: dingo.sbs.arizona.edu/~sandiway/ or Google me

  4. Syllabus • dingo.sbs.arizona.edu/~sandiway/ • Lecture slides will be available online (.pptx and pdf formats) just before class (look for updates/corrections afterwards) • Lectures will be recorded using the panopto system (video, laptop screen, synchronized slides, keyword search)

  5. Syllabus • Course Objectives: • Introduction to programming • data types, different programming styles, thinking algorithmically … • and fundamental computer concepts • computer organization: underlying hardware, and operating systems (processes, shell, filesystem etc.) • Operating System: • Ubuntu (Linux) • Programming Languages: • selected from: Bash shell, Python, Javascript, Perl, Tcl/Tk, HTML/CSS, MySQL, cgi-bin etc.

  6. Syllabus • Expected learning outcomes: • familiarity with the underlying technology, terminology and programming concepts • acquire the ability to think algorithmically • acquire the ability to write short programs • build a graphical user interface • build a web application (with a relational database) • be equipped to take classes in the Human Language Technology (HLT) program and related classes

  7. Syllabus • Grading • 408: homeworks (80%), term project (20%) • 508: homeworks (65%), bigger term project (35%) • Note: requirement -- submit all homeworks • Homework submissions: • email only to me • See homework 1 for the required format … • homeworks will be introduced in class • due date: • almost one week (typically) • example: homework presented in class on Tuesday, due following Monday night by midnight in my mailbox • all homeworks will be reviewed in class • one week later (typically)

  8. Syllabus • Homeworks • you may discuss questions with other students • however, you must program/write it up yourself (in your own words/code) • cite (web) references and your classmates (in the case of discussion) • Student Code of Academic Integrity: plagiarism etc. • http://deanofstudents.arizona.edu/codeofacademicintegrity • Revisions to the syllabus • “the information contained in the course syllabus, other than the grade and absence policies, may be subject to change with reasonable advance notice, as deemed appropriate by the instructor.”

  9. Syllabus • Absences • tell me ahead of time so we can make special arrangements, e.g. homeworks • I expect you to attend lectures (though attendance will not be taken)

  10. Introduction • Computers • Memory • Programs and data • CPU • Interprets machine instructions • I/O • keyboard, mouse, touchpad, screen, touch sensitive screen, printer, usb port, etc. • bluetooth, ethernet, wifi, cellular …

  11. Introduction • Memory • CPU registers • L1/L2 cache • RAM • SSD/hard drive • blu ray/dvd/cd drive fast invisible to programmers slow open file read/write

  12. Introduction array a[23] • Memory Representation • binary: zeros and ones (1 bit) • organized into bytes (8 bits) • memory is byte-addressable • word (32 bits) • e.g. integer • (64 bits: floating point number) • big-endian/little-endian • most significant byte first or least significant byte • communication … addressable Memory (RAM) 0 your Intel and ARM CPUs FFFFFFFF

  13. Introduction • A typical notebook computer • Example: a 2013 Macbook Air • CPU: Core i5-4250U • 1.3 billion transistors • built-in GPU • TDP: 15W (1.3 GHz) • Dual core (Turbo: 2.6 GHz) • Hyper-Threaded (4 logical CPUs, 2 physical) • 64 bit • 64 KB (32 KB Instruction + 32 KB Data) L1 cache • 256 KB L2 cache per core • 12MB L3 cache shared • 16GB max RAM Increased address space and 64-bit registers

  14. Introduction anandtech.com A 4 core machine: 8 virtual

  15. Introduction • Machine Language • A CPU understands only one language: machine language • allotherlanguages must be translated into machine language • Primitive instructions include: • MOV • PUSH • POP • ADD / SUB • INC / DEC • IMUL / IDIV • AND / OR / XOR / NOT • NEG • SHL / SHR • JMP • CMP • JE / JNE / JZ / JG / JGE / JL / JLE • CALL / RET Assembly Language:(this notation) by definition, nothing built on it is more powerful http://www.cs.virginia.edu/~evans/cs216/guides/x86.html

  16. Introduction • Not all the machine instructions are conceptually necessary • many provided for speed/efficiency • Theoretical Computer Science • All mechanical computation can be carried out using a TURING MACHINE • Finite state table + (infinite) tape • Tape instructions: • at the tape head: Erase, Write, Move (Left/Right/NoMove) • Finite state table: • Current state x Tape symbol --> new state x New Tape symbol x Move

  17. Introduction • Storage: • based on digital logic • binary (base 2) – everything is a power of 2 • Byte: 8 bits • 01011011 • = 26+24+23+21+20 • = 64 + 16 + 8 + 2 + 1 • = 91 • Hexadecimal (base 16) • 0-9,A,B,C,D,E,F (need 4 bits) • 5B (= 1 byte) • = 5*24 + 11 • = 80 + 11 • = 91

  18. Introduction: data types • Integers • In one byte, what’s the largest and smallest number, we can represent? • Answer: -128 .. 0 .. 127 • Why? -28-1.. 0 .. 28-1 – 1 • 00000000 = 0 • 01111111 = 127 • 10000000 = -128 • 11111111 = -1 2’s complement representation super-convenient for arithmetic operations “to convert a positive integer X to its negative counterpart, flip all the bits, and add 1” Example: 00001010 = 23 + 21 = 10 11110101 + 1 = 11110110 = -10 11110110 flip + 1 = 00001001 + 1 = 00001010 11111110 = -2 11111101 = -3 11111100 = -4 11111011 = -5 11111010 = -6 11111001 = -7 11111000 = -8 11110111 = -9 11111010 = -10 Addition: -10 + 10 = 11110110 + 00001010 = 0 (ignore overflow)

More Related