CISC 124: Introduction To Computing Science II

Similar documents
CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz

CSE 336. Introduction to Programming. for Electronic Commerce. Why You Need CSE336

CS120 Computer Science I. Instructor: Jia Song

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

CS 113: Introduction to

CSCI 201L Syllabus Principles of Software Development Spring 2018

Index. Course Outline. Grading Policy. Lab Time Distribution. Important Instructions

San José State University Computer Science CS 122 Advanced Python Programming Spring 2018

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

Database Programming - Section 16. Instructor Guide

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

CIS 101 Orientation Document Fall 2017

CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN

CSC116: Introduction to Computing - Java

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

CSC116: Introduction to Computing - Java

COSC 115A: Introduction to Web Authoring Fall 2014

CS240: Programming in C

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

EECS 282 Information Systems Design and Programming. Atul Prakash Professor, Computer Science and Engineering University of Michigan

University of Maryland at College Park Department of Geographical Sciences GEOG 477/ GEOG777: Mobile GIS Development

CISC 220 fall 2011, set 1: Linux basics

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

CSc 2310 Principles of Programming (Java) Jyoti Islam

Network Security

Objects and Classes Lecture 1

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

CMSC 132: Object-Oriented Programming II. Administrivia

CSCI455: Introduction to Programming System Design

Introduction to Programming

An Introduction to Python (TEJ3M & TEJ4M)

Proctored Exam Support for TROY Online Faculty

WELCOME TO PROGRAMMING

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

Course and Contact Information. Course Description. Course Objectives

Student Guide to Using Moodle. Louisiana Tech University

COSC 115: Introduction to Web Authoring Fall 2013

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Fundamentals of Programming. Lecture 1: Introduction to C Programming

CS 241 Data Organization using C

CS/IT 114 Introduction to Java, Part 1 FALL 2016 CLASS 2: SEP. 8TH INSTRUCTOR: JIAYIN WANG

CSCI 6312 Advanced Internet Programming

CSC116: Introduction to Computing - Java

This handbook contains directions on using tools and resources in WebAccess at CSM.

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

CIS*1500 Introduction to Programming

Course and Contact Information. Course Description. Course Objectives

CIS 3308 Web Application Programming Syllabus

Lecture: Chapter 1, Introduction to Computer Data

Cleveland State University

Faculty Guide to Blackboard

CISN 340 Data Communication and Networking Fundamentals Fall 2012 (Hybrid)

CPSC 213. Introduction to Computer Systems. About the Course. Course Policies. Reading. Introduction. Unit 0

COMP250: Introduction to Computer Science. Jérôme Waldispühl & Carlos Oliver Gonzalez School of Computer Science McGill University

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

Overview of the Course

Enterprise Network Design ITP 499 (3 Units)

An Introduction to Software Engineering. David Greenstein Monta Vista High School

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

Computer Organization & Assembly Language Programming (CSE 2312)

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

ENGR 105: Introduction to Scientific Computing. Dr. Graham. E. Wabiszewski

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

History Introduction to Java Characteristics of Java Data types

Advisory: Students should have already taken MICROCOMPUTER APPLICATIONS II - 431

What is Java Platform?

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Welcome to! 4DN4! Advanced Internet Communications"

San Jose State University College of Science Department of Computer Science CS185C, NoSQL Database Systems, Section 1, Spring 2018

GET 433 Course Syllabus Spring 2017

Java Programming. Zheng-Liang Lu. Java 308 Spring Department of Computer Science & Information Engineering National Taiwan University

Course Syllabus. Course Information

Programming Languages FILS Andrei Vasilateanu

CSC 4710 / CSC 6710 Database Systems. Rao Casturi

Chapter 11 Program Development and Programming Languages

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

ISM 324: Information Systems Security Spring 2014

Spring CISM 3330 Section 01D (crn: # 10300) Monday & Wednesday Classroom Miller 2329 Syllabus revision: #

Introduction to Computers and Programming Languages. CS 180 Sunil Prabhakar Department of Computer Science Purdue University

CMPS 182: Introduction to Database Management Systems. Instructor: David Martin TA: Avi Kaushik. Syllabus

Introduction to Data Structures

Contents. The Anatomy of a Moodle Classroom. Course Description:

Data Structures. Subodh Kumar. Dept of Computer Sc. & Engg. IIT Delhi. Bharti 422)

San Jose State University - Department of Computer Science

Introduction to Programming System Design CSCI 455x (4 Units)

MSIS-DL 317 Syllabus. Faisal Akkawi, Ph.D. Introduction to Databases Fall 09

CS 3230 Object Oriented UI Development With Java Syllabus

CONCORDIA UNIVERSITY DEPARTMENT OF CHEMISTRY AND BIOCHEMISTRY CHEM 293 SPECTROSCOPY AND STRUCTURE OF ORGANIC COMPOUNDS. SYLLABUS Winter 2018

CPSC 213. Introduction to Computer Systems. Introduction. Unit 0

CSC258: Computer Organization. Memory Systems

Syllabus CS 301: Data Structures Spring 2015

Moodle Student User Guide

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes.

CSC 443: Web Programming

JAVA An overview for C++ programmers

Transcription:

CISC 124: Introduction To Computing Science II instructor: Margaret Lamb instructor's home page: www.cs.queensu.ca/home/malamb office: Goodwin 527 current office hours are always on my home page 1

Moodle & Web Site Both under construction at the moment. Hopefully available tomorrow. When initial versions are ready I will post on news forum with link to web site URL. 2

Textbook Official Textbook: "Absolute Java", 6 th edition available in book store Also acceptable: 5 th edition of "Absolute Java" "Introduction to Java Programming" (Lang) except 10 th edition is missing a topic we need other Java text if you already own one Warning: If you have an "unofficial" textbook you may have to search for topics. 3

Reading You are required to do the assigned readings AND come to class! It's not either/or...

Academic Integrity Everything you hand in must be your own work (assignments, quizzes, final) Exception: may do assignments in group (2-4 students), all names must be on submission Why? It's only fair! Queen's reputation, value of degrees 5

Accommodations If you require special accommodations for CISC 124, please give me a copy of your Accessibility letter as soon as possible. If you require special arrangements for your quizzes, I need your letter at least 10 days before the first quiz or I may not be able to arrange things for you. If your accommodations for quizzes include writing on a computer, you MUST apply to the exams office at least 10 days before the first quiz. If you miss the deadline I will not provide a computer for you. 6

Labs We will not be having labs every week! Some weeks we will have one-hour labs as help sessions before quizzes or assignment due dates We will also have some evening TA help sessions All labs & help sessions will be announced with the Moodle news forum

Learning about Object-Oriented Programming (OOP) Gaining more general programming experience Language used: Java What's This Course About? 8

A Brief History of Java Predecessors: CPL, BCPL (1960s) B (Bell labs, 1969) C (Bell labs, early 1970s) 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 9

Computer Languages & Translation Computers speak machine language binary codes for very simple operations. Very cumbersome for humans to read and write! No standard: every make/model has its own language. Assembly Language: Symbolic form of machine language Easier for humans to handle Simple program ("assembler") translates to machine language Still involves a lot of detail Still machine-dependent 10

High-Level Languages Idea: Languages that are closer to the way we think: logic, data types, mathematical notation Advantages: Easier/faster to read & write Can be translated into different machine languages Disadvantages: Needs a complicated translation program Not always completely portable depends on language design and translation programs Some efficiency penalties, depending on language and translation program. 11

Interpreter (Python, Basic) Compiler (C, C++) Hybrid Approach (Java) Translation Methods 12

Interpreter Reads & executes a program in a high-level language. Read a line or statement Figure out what it means Make it happen Repeat! Python Program input to program Python Interpreter output of program 13

Compiler Reads a program in a high-level language. Creates an equivalent program in machine language. Step 1: C Program C Compiler machine language program Step 2: input to program machine language program output of program 14

Pros & Cons Need For Extra Program: Compiler: Program is compiled once. You don't need the compiler to run the program. Interpreter: You need the interpreter each time you run the program. Efficiency: Interpreted languages traditionally viewed as less efficient. Changing with clever new technology ("just in time" compilation). Portability: Compilers: You need to write a compiler for every "platform" (hardware & OS) Interpreters: Not always necessary Both: Great care is needed to make a language truly portable (same results on all kinds of computers) 15

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) Java Compiler bytecode program (.class) Step 2: (every time you run the program) bytecode program (.class) Program Input Java Interpreter Program Output 16