CISC 124: Introduction To Moodle vs. Web Site Computing Science II instructor: Margaret Lamb Web site on CISC server: http://cs.queensu.ca/home/cisc124/ index_w14.html course web site: www.cs.queensu.ca/home/cisc124 office : Goodwin 554 Option 1: office hour this week : • Read web site for basic information Monday 12-1 (content/admin) Wednesday 2-3 • Go to Moodle for extras (forums, etc.) Friday 1-2 vote on Moodle for office hours for rest of term Option 2: • Use Moodle as front page (links to everything in web page) CISC 124, winter 2014, set 1: introduction 1 CISC 124, winter 2014, set 1: introduction 2 Reading Assignment For Wednesday Reading Assignment For Friday Read administrative info on web site. Chapters 1-3 of the Java text. Pay special attention to syllabus & bring questions to See web site for sections you may skip. class on Wednesday. Complete Moodle survey about the reading by noon on Look at schedule, tell me about any problems with Friday. quiz dates I expect you to: • Do readings as assigned. • Complete surveys to tell me your reactions. CISC 124, winter 2014, set 1: introduction 3 CISC 124, winter 2014, set 1: introduction 4
Marking Scheme Academic Integrity quizzes (best 3 of 4): 50% • Everything you hand in must be your own work final exam: 34% (assignments, quizzes, final) assignments (best 7 of 8): 10% • Exception: may do assignments in group (2-4 students), participation: 6% all names must be on submission (questionnaires, forums, in-class activities) You must pass quizzes+final exam to pass the course. • Why? • It's only fair! • Queen's reputation, value of degrees CISC 124, winter 2014, set 1: introduction 5 CISC 124, winter 2014, set 1: introduction 6 What's This Course About? A Brief History of Java Predecessors: • Gaining more programming experience • CPL, BCPL (1960s) • Learning about Object-Oriented Programming (OOP) • B (1969) • C (early 1970s) Language used: Java • C++ (1980s, object-oriented) Java: • Sun Microsystems (now part of Oracle) • first public version 1995 • design team led by Jim Gosling (Canadian!) • initial target: embedded systems • goals included: portability & reliability • 1994: World Wide Web! CISC 124, winter 2014, set 1: introduction 7 CISC 124, winter 2014, set 1: introduction 8
Computer Languages & Translation High-Level Languages Computers speak machine language – binary codes for Idea: Languages that are closer to the way we think: very simple operations. logic, data types, mathematical notation Very cumbersome for humans to read and write! No standard: every make/model has its own language. Advantages: • Easier/faster to read & write Assembly Language: • Can be translated into different machine languages • Symbolic form of machine language • Easier for humans to handle Disadvantages: • Simple program ("assembler") translates to machine • Needs a complicated translation program language • Not always completely portable – depends on • Still involves a lot of detail language design and translation programs • Still machine-dependent CISC 124, winter 2014, set 1: introduction 9 CISC 124, winter 2014, set 1: introduction 10 Translation Methods Interpreter • Interpreter (Python, Basic) Reads & executes a program in a high-level language. • Compiler (C, C++) • Read a line or statement • Hybrid Approach (Java) • Figure out what it means • Make it happen • Repeat! Python Python output of Program Interpreter program input to program CISC 124, winter 2014, set 1: introduction 11 CISC 124, winter 2014, set 1: introduction 12
Compiler Pros & Cons Need For Extra Program: Reads a program in a high-level language. • Compiler: Program is compiled once. You don't need the Creates an equivalent program in machine language. compiler to run the program. • Interpreter: You need the interpreter each time you run the Step 1: program. machine C C language Efficiency: Interpreted languages traditionally viewed as less Program Compiler program efficient. Changing with clever new technology ("just in time" compilation). Step 2: Portability: machine • Compilers: You need to write a compiler for every input to output of language "platform" (hardware & OS) program program program • Interpreters: Not always necessary Both: Great care is needed to make a language truly portable (same results on all kinds of computers) CISC 124, winter 2014, set 1: introduction 13 CISC 124, winter 2014, set 1: introduction 14 Java's Hybrid Approach JVM = Java Virtual Machine A hypothetical computer "Bytecode": the machine language of the JVM. Designed to suit the Java language, still pretty low-level. Step 1: (once) Java Program Java bytecode program (.java) Compiler (.class) Step 2: (every time you run the program) bytecode program Java Program Output (.class) Interpreter Program Input CISC 124, winter 2014, set 1: introduction 15
Recommend
More recommend