Image credits:
|
|
- Brianne Wiggins
- 8 years ago
- Views:
Transcription
1 Image credits:
2 CS 354: Programming Languages Alark Joshi Copyright 2009 Addison-Wesley. All rights reserved.
3 Contact Information Course Website: o Office: MEC 302A Office Hours: o Monday, Friday : 10-11am o Tuesday, Thursday: 3-4pm o Doodle poll
4 TA Information Teaching Assistant Nathan Riskey o nathanriskey@u.boisestate.edu o Graduate Student o Work experience Office hours: To be announced soon
5 Administrivia Roll call sheet going around Please sign and note your team assignment Piazza instead of a mailing list o i354 o Better at managing responses, replies, helping each other through assignments, homework, projects etc.
6 Textbook & Resources Concepts of Programming Languages by Richard Sebesta, Addison Wesley publishing, 9th Edition, Course Wiki: o cs354.pbworks.com o Collaborative resource o Feel free to edit and improve
7 Why study languages/programming languages? Look to the person sitting next to you Introduce yourself Make the longest list of reasons you can think of in 2 minutes Longest list in class wins! Go!!! I will call on you to share from your list
8 Reasons from Sebesta 1. Increased capacity to express ideas 2. Improved background for choosing appropriate languages 3. Increased ability to learn new languages 4. Better understanding of the significance of implementation 5. Better use of languages that are already known 6. Overall advancement of computing
9 Grade Breakdown Quizzes 21% Interpreter assignment 15% Programming assignments 15% Homework 14% Final project - 35% o Create a website for a programming language o Work on a project using that programming language
10 Final Project P1 - Website for learning a new language: weebly, pbworks or any other P2 - Create a detailed manual or YouTube video with details regarding installation, IDE setup and other relevant issues P3 - include 10/15 examples of increasing difficulty to teach a novice about that programming language
11 Final Project P4 - Update website with a comprehensive list of relevant resources, books, tutorials, videos, etc. P5 - Propose 3 projects to me (and anonymous reviewers) - We pick one for you to implement by the end of the semester P6-5-min presentation in the class about your project and what you propose to do
12 Final Project P7 - Incorporate feedback from anonymous reviewers to improve your website P8 In-class presentation (25-mins) Final grade of the project based on o Quality of the website o Ability to follow along for reviewers o Quality of final project o Relevant documentation
13 Anonymous reviewers Each student and some external software partners will serve as anonymous reviewers Code review for programs and final project Monthly reports on the quality of the website and the status of the project as described on the website
14 Programming Assignments Interpreter assignments o V1 and V2 worth 15% Three language related assignments o C# - 5% Assignment available Due 10 th Sept o Python - 5% o Scheme/ML/Haskell - 5%
15 Team-Based Learning Long Lectures have been shown to produce significant reduction in understanding as the lecture progresses Team-based learning o Apply o Question o Reflect upon and o Discuss content in a group
16 TBL Quizzes Each quiz will be taken first as an individual Same quiz will be taken as a team o Instant feedback for the team TBL quizzes individual vs team performance Quizzes 21% of the final grade o Quiz 1 - Chapter 1 of Sebesta on 5 th Sept
17 Team Assignments Teams assignments are going around Please meet your team now! o Buzz Lightyear o Dory o Merida o Nemo o Remy o Sulley o Wall-E
18 Languages 1. Python 2. Javascript 3. CUDA 4. Lua 5. Haskell 6. C++ 7. Ruby 8. Actionscript 9. Objective-C 10. Perl 11. Processing 12. Lisp 13. Matlab 14. R Image credits:
19 Language Evaluation Criteria Course objective #6: o Evaluate a language on the basis of the various features which it supports. How would you evaluate a language? Think-pair-share (2-2-2) o 2 mins to think of metrics you would use o 2 mins to share it with your partner/team o 2 mins to share with the class
20 Language Evaluation Criteria Readability Writability Reliability Cost
21 Readability The ease with which programs can be read and understood
22 Evaluation Criteria: Readability Overall simplicity o A manageable set of features and constructs o Minimal feature multiplicity o Minimal operator overloading Orthogonality o A relatively small set of primitive constructs can be combined in a relatively small number of ways o Every possible combination is legal
23 Evaluation Criteria: Readability Data types o Adequate predefined data types Syntax considerations o Identifier forms: flexible composition o Special words and methods of forming compound statements o Form and meaning: self-descriptive constructs, meaningful keywords
24 Writability The ease with which a language can be used to create programs
25 Evaluation Criteria: Writability Simplicity and orthogonality o Few constructs, a small number of primitives, a small set of rules for combining them Support for abstraction o The ability to define and use complex structures or operations in ways that allow details to be ignored Expressivity o A set of relatively convenient ways of specifying operations o Strength and number of operators and predefined functions
26 Reliability Conformance to specifications (i.e., performs to its specifications)
27 Evaluation Criteria: Reliability Type checking o Testing for type errors Exception handling o Intercept run-time errors and take corrective measures
28 Evaluation Criteria: Reliability Aliasing o Presence of two or more distinct referencing methods for the same memory location Readability and writability o A language that does not support natural ways of expressing an algorithm will require the use of unnatural approaches, and hence reduced reliability
29 Evaluation Criteria: Cost Training programmers to use the language Writing programs (closeness to particular applications) Compiling programs Executing programs Language implementation system: availability of free compilers Reliability: poor reliability leads to high costs Maintaining programs Image credits -
30 Evaluation Criteria: Others Portability o The ease with which programs can be moved from one implementation to another Generality o The applicability to a wide range of applications Well-definedness o The completeness and precision of the language s official definition
31 Influences on Language Design Computer Architecture o Languages are developed around the prevalent computer architecture, known as the von Neumann architecture Program Design Methodologies o New software development methodologies (e.g., object-oriented software development) led to new programming paradigms and by extension, new programming languages
32 The von Neumann Architecture
33 The von Neumann Architecture Fetch-execute-cycle (on a von Neumann architecture computer) initialize the program counter repeat forever fetch the instruction pointed by the counter increment the counter decode the instruction execute the instruction end repeat
34 Computer Architecture Influence Well-known computer architecture: Von Neumann Imperative languages, most dominant, because of von Neumann computers o Data and programs stored in memory o Memory is separate from CPU o Instructions and data are piped from memory to CPU o Basis for imperative languages Variables model memory cells Assignment statements model piping Iteration is efficient
35 Programming Methodologies Influences 1950s and early 1960s: Simple applications; worry about machine efficiency Late 1960s: People efficiency became important; readability, better control structures o structured programming o top-down design and step-wise refinement Late 1970s: Process-oriented to data-oriented o data abstraction Middle 1980s: Object-oriented programming o Data abstraction + inheritance + polymorphism
36 Language Categories Imperative o Central features are variables, assignment statements, and iteration o Include languages that support object-oriented programming o Include scripting languages o Include the visual languages o Examples: C, Java, Perl, JavaScript, Visual BASIC.NET, C++ Functional o Main means of making computations is by applying functions to given parameters o Examples: LISP, Scheme, ML, F#
37 Language Categories Logic o Rule-based (rules are specified in no particular order) o Example: Prolog Markup/programming hybrid o Markup languages extended to support some programming o Examples: JSTL, XSLT, LaTeX
38 2-2-2 Language Design Trade-Offs Reliability vs. cost of execution o Example: Java demands all references to array elements be checked for proper indexing, which leads to increased execution costs Readability vs. writability o Example: APL provides many powerful operators (and a large number of new symbols), allowing complex computations to be written in a compact program but at the cost of poor readability Writability (flexibility) vs. reliability o Example: C++ pointers are powerful and very flexible but are unreliable
39 Implementation Methods Compilation o Programs are translated into machine language; includes JIT systems o Use: Large commercial applications Pure Interpretation o Programs are interpreted by another program known as an interpreter o Use: Small programs or when efficiency is not an issue Hybrid Implementation Systems o A compromise between compilers and pure interpreters o Use: Small and medium systems when efficiency is not the first concern
40 Layered View of Computer The operating system and language implementation are layered over machine interface of a computer
41 Compilation vs. Interpretation Compilation vs. interpretation o not opposites o not a clear-cut distinction Pure Compilation o The compiler translates the high-level source program into an equivalent target program (typically in machine language), and then goes away:
42 Compilation vs. Interpretation Pure Interpretation o Interpreter stays around for the execution of the program o Interpreter is the locus of control during execution
43 Compilation vs. Interpretation Interpretation: o Greater flexibility o Better diagnostics (error messages) Compilation o Better performance
44 Compilation vs. Interpretation Common case is compilation or simple pre-processing, followed by interpretation Most language implementations - mixture of both compilation and interpretation
45 Compilation Compilation does NOT have to produce machine language for some sort of hardware Compilation is translation from one language into another, with full analysis of the meaning of the input
46 Compilation Compilation entails semantic understanding of what is being processed; pre-processing does not A pre-processor is a program that processes its input data to produce output that is used as input to another program (usually compiler) A pre-processor will often let errors through. A compiler hides further steps; a preprocessor does not
47 Compilation vs. Interpretation Implementation strategies: o Preprocessor Removes comments and white space Groups characters into tokens (keywords, identifiers, numbers, symbols) Expands abbreviations in the style of a macro assembler Identifies higher-level syntactic structures (loops, subroutines)
48 Compilation vs. Interpretation Implementation strategies: o Library of Routines and Linking Compiler uses a linker program to merge the appropriate library of subroutines (e.g., math functions such as sin, cos, log, etc.) into the final program:
49 Compilation vs. Interpretation Implementation strategies: o Post-compilation Assembly Facilitates debugging (assembly language easier for people to read) Isolates the compiler from changes in the format of machine language files (only assembler must be changed, is shared by many compilers)
50 Compilation vs. Interpretation Implementation strategies: o The C Preprocessor (conditional compilation) Preprocessor deletes portions of code, which allows several versions of a program to be built from the same source
51 Compilation vs. Interpretation Implementation strategies: o Source-to-Source Translation (C++) C++ implementations based on the early AT&T compiler generated an intermediate program in C, instead of an assembly language:
52 Compilation vs. Interpretation Implementation strategies: o Compilation of Interpreted Languages The compiler generates code that makes assumptions about decisions that won t be finalized until runtime. If these assumptions are valid, the code runs very fast. If not, a dynamic check will revert to the interpreter.
53 Compilation vs. Interpretation Implementation strategies: o Dynamic and Just-in-Time Compilation In some cases a programming system may deliberately delay compilation until the last possible moment. o Lisp and Prolog invoke the compiler on the fly, to translate newly created source into machine language
54 Compilation vs. Interpretation o Dynamic and Just-in-Time Compilation The Java language definition defines a machine-independent intermediate form known as byte code. Byte code is the standard format for distribution of Java programs. The main C# compiler produces.net Common Intermediate Language (CIL), which is then translated into machine code immediately prior to execution.
55 Compilation vs. Interpretation Compilers exist for some interpreted languages, but they aren't pure: o selective compilation of compilable pieces and extra-sophisticated pre-processing of remaining source. o Interpretation of parts of code, at least, is still necessary for reasons above. Unconventional compilers o text formatters o silicon compilers o query language processors
56 von Neumann Bottleneck Connection speed between a computer s memory and its processor determines the speed of a computer Program instructions often can be executed much faster than the speed of the connection; the connection speed thus results in a bottleneck Known as the von Neumann bottleneck; it is the primary limiting factor in the speed of computers
57 Robot Programming In groups of 2/3 select a robot and a robot master The Dictionary contains a list of commands that a robot understands Invent new commands
58 Robot Programming The goal is for the robot to go through a maze, move an object and reach the end Your sub-group will write a program that will be followed by the robot Every time you write a program, you hand it over to the robot who will follow the instructions Use a blank sheet of paper for every program 10 mins
59 Robot Game Analysis You invented a programming language to program a fictional robot o The commands you used/invented are the commands for your new programming language o The commands were executed by your robot o At times you didn t get the expected result which you found out by running the robot o Debugging and Re-execute
Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages
ICOM 4036 Programming Languages Preliminaries Dr. Amirhossein Chinaei Dept. of Electrical & Computer Engineering UPRM Spring 2010 Language Evaluation Criteria Readability: the ease with which programs
More informationChapter 1. Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705. CS-4337 Organization of Programming Languages
Chapter 1 CS-4337 Organization of Programming Languages Dr. Chris Irwin Davis Email: cid021000@utdallas.edu Phone: (972) 883-3574 Office: ECSS 4.705 Chapter 1 Topics Reasons for Studying Concepts of Programming
More information1/20/2016 INTRODUCTION
INTRODUCTION 1 Programming languages have common concepts that are seen in all languages This course will discuss and illustrate these common concepts: Syntax Names Types Semantics Memory Management We
More informationCOS 301 Programming Languages
Preliminaries COS 301 Programming Languages Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories
More informationWhat is a programming language?
Overview Introduction Motivation Why study programming languages? Some key concepts What is a programming language? Artificial language" Computers" Programs" Syntax" Semantics" What is a programming language?...there
More informationn Introduction n Art of programming language design n Programming language spectrum n Why study programming languages? n Overview of compilation
Lecture Outline Programming Languages CSCI-4430 & CSCI-6430, Spring 2016 www.cs.rpi.edu/~milanova/csci4430/ Ana Milanova Lally Hall 314, 518 276-6887 milanova@cs.rpi.edu Office hours: Wednesdays Noon-2pm
More informationCSE 130 Programming Language Principles & Paradigms
CSE 130 Programming Language Principles & Paradigms Thomas A. Powell tpowell@pint.com Housekeeping Syllabus review Direct class page link http://www.pint.com/classes/cse130 Updated syllabus, notes, homework
More informationCSCI 3136 Principles of Programming Languages
CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University Winter 2013 CSCI 3136 Principles of Programming Languages Faculty of Computer Science Dalhousie University
More informationProgramming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
More informationCSE 307: Principles of Programming Languages
Course Organization Introduction CSE 307: Principles of Programming Languages Spring 2015 R. Sekar Course Organization Introduction 1 / 34 Topics 1. Course Organization Info and Support Course Description
More informationCSC 272 - Software II: Principles of Programming Languages
CSC 272 - Software II: Principles of Programming Languages Lecture 1 - An Introduction What is a Programming Language? A programming language is a notational system for describing computation in machine-readable
More informationFall 2012 Q530. Programming for Cognitive Science
Fall 2012 Q530 Programming for Cognitive Science Aimed at little or no programming experience. Improve your confidence and skills at: Writing code. Reading code. Understand the abilities and limitations
More informationLevels of Programming Languages. Gerald Penn CSC 324
Levels of Programming Languages Gerald Penn CSC 324 Levels of Programming Language Microcode Machine code Assembly Language Low-level Programming Language High-level Programming Language Levels of Programming
More informationLecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
More informationCS 51 Intro to CS. Art Lee. September 2, 2014
CS 51 Intro to CS Art Lee September 2, 2014 Announcements Course web page at: http://www.cmc.edu/pages/faculty/alee/cs51/ Homework/Lab assignment submission on Sakai: https://sakai.claremont.edu/portal/site/cx_mtg_79055
More informationProgramming Languages
CS 345 Programming Languages Vitaly Shmatikov http://www.cs.utexas.edu/~shmat/courses/cs345/ slide 1 Course Personnel Instructor: Vitaly Shmatikov Office: CSA 1.114 Office hours: Tuesday, 3:30-4:30pm (after
More informationCS 40 Computing for the Web
CS 40 Computing for the Web Art Lee January 20, 2015 Announcements Course web on Sakai Homework assignments submit them on Sakai Email me the survey: See the Announcements page on the course web for instructions
More informationCS 253: Intro to Systems Programming
CS 253: Intro to Systems Programming Spring 2014 Amit Jain, Shane Panter, Marissa Schmidt Department of Computer Science College of Engineering Boise State University Logistics Instructor: Amit Jain http://cs.boisestate.edu/~amit
More informationProgramming Languages
Programming Languages Programming languages bridge the gap between people and machines; for that matter, they also bridge the gap among people who would like to share algorithms in a way that immediately
More informationEvolution of the Major Programming Languages
142 Evolution of the Major Programming Languages Object Oriented Programming: Smalltalk Object-Oriented: It s fundamental characteristics are: Data abstraction, Inheritance and Dynamic Binding. The essence
More informationChapter 13: Program Development and Programming Languages
Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented
More informationChapter 13: Program Development and Programming Languages
15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning
More informationSystem Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
More informationMcGraw-Hill The McGraw-Hill Companies, Inc., 20 1. 01 0
1.1 McGraw-Hill The McGraw-Hill Companies, Inc., 2000 Objectives: To describe the evolution of programming languages from machine language to high-level languages. To understand how a program in a high-level
More informationJonathan Worthington Scarborough Linux User Group
Jonathan Worthington Scarborough Linux User Group Introduction What does a Virtual Machine do? Hides away the details of the hardware platform and operating system. Defines a common set of instructions.
More informationThe programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
More informationChapter 13 Computer Programs and Programming Languages. Discovering Computers 2012. Your Interactive Guide to the Digital World
Chapter 13 Computer Programs and Programming Languages Discovering Computers 2012 Your Interactive Guide to the Digital World Objectives Overview Differentiate between machine and assembly languages Identify
More informationEl Dorado Union High School District Educational Services
El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming I (#494) Rationale: A continuum of courses, including advanced classes in technology is needed.
More informationChapter 5 Names, Bindings, Type Checking, and Scopes
Chapter 5 Names, Bindings, Type Checking, and Scopes Chapter 5 Topics Introduction Names Variables The Concept of Binding Type Checking Strong Typing Scope Scope and Lifetime Referencing Environments Named
More informationBCS Higher Education Qualifications. Professional Graduate Diploma in IT. Programming Paradigms Syllabus
BCS Higher Education Qualifications Professional Graduate Diploma in IT Programming Paradigms Syllabus Version: 180516 Contents 1. Change History 3 2. Rationale 3 3. Aims 3 4. Objectives 3 5. Prior Knowledge
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationChapter 12 Programming Concepts and Languages
Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution
More informationRARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science
I. Basic Course Information RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE CISY 105 Foundations of Computer Science A. Course Number and Title: CISY-105, Foundations of Computer Science B. New
More informationComputer Science. Computer Science 207. Degrees and Certificates Awarded. A.S. Computer Science Degree Requirements. Program Student Outcomes
Computer Science 207 Computer Science (See Computer Information Systems section for additional computer courses.) We are in the Computer Age. Virtually every occupation in the world today has an interface
More informationCSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
More informationSome programming experience in a high-level structured programming language is recommended.
Python Programming Course Description This course is an introduction to the Python programming language. Programming techniques covered by this course include modularity, abstraction, top-down design,
More informationSemester Review. CSC 301, Fall 2015
Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!
More informationAdvanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16
Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz Michel.Schinz@epfl.ch Assistant: Iulian Dragos INR 321, 368 64
More informationEmbedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C
Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection
More informationComputer Programming. Course Details An Introduction to Computational Tools. Prof. Mauro Gaspari: mauro.gaspari@unibo.it
Computer Programming Course Details An Introduction to Computational Tools Prof. Mauro Gaspari: mauro.gaspari@unibo.it Road map for today The skills that we would like you to acquire: to think like a computer
More information02-201: Programming for Scientists
1. Course Information 1.1 Course description 02-201: Programming for Scientists Carl Kingsford Fall 2015 Provides a practical introduction to programming for students with little or no prior programming
More informationCompilers. Introduction to Compilers. Lecture 1. Spring term. Mick O Donnell: michael.odonnell@uam.es Alfonso Ortega: alfonso.ortega@uam.
Compilers Spring term Mick O Donnell: michael.odonnell@uam.es Alfonso Ortega: alfonso.ortega@uam.es Lecture 1 to Compilers 1 Topic 1: What is a Compiler? 3 What is a Compiler? A compiler is a computer
More informationCSE 373: Data Structure & Algorithms Lecture 25: Programming Languages. Nicki Dell Spring 2014
CSE 373: Data Structure & Algorithms Lecture 25: Programming Languages Nicki Dell Spring 2014 What is a Programming Language? A set of symbols and associated tools that translate (if necessary) collections
More informationA Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming
A Python Tour: Just a Brief Introduction CS 303e: Elements of Computers and Programming "The only way to learn a new programming language is by writing programs in it." -- B. Kernighan and D. Ritchie "Computers
More informationIntroduction. What is an Operating System?
Introduction What is an Operating System? 1 What is an Operating System? 2 Why is an Operating System Needed? 3 How Did They Develop? Historical Approach Affect of Architecture 4 Efficient Utilization
More informationCurriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
More informationDM810 Computer Game Programming II: AI. Lecture 11. Decision Making. Marco Chiarandini
DM810 Computer Game Programming II: AI Lecture 11 Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Resume Decision trees State Machines Behavior trees Fuzzy
More informationPython Programming: An Introduction to Computer Science
Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs 1 Objectives To understand the respective roles of hardware and software in a computing system. To learn what computer
More informationComputer Science. Computer Science 213. Faculty and Offices. Degrees and Certificates Awarded. AS Computer Science Degree Requirements
Computer Science 213 Computer Science (See Computer Information Systems section for additional computer courses.) Degrees and Certificates Awarded Associate in Science Degree, Computer Science Certificate
More informationHow To Understand Programming Languages And Programming Languages
Objectives Differentiate between machine and and assembly languages Describe Describe various various ways ways to to develop develop Web Web pages pages including including HTML, HTML, scripting scripting
More informationChapter 3: Operating-System Structures. Common System Components
Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1
More informationEfficiency Considerations of PERL and Python in Distributed Processing
Efficiency Considerations of PERL and Python in Distributed Processing Roger Eggen (presenter) Computer and Information Sciences University of North Florida Jacksonville, FL 32224 ree@unf.edu 904.620.1326
More informationGeneral Introduction
Managed Runtime Technology: General Introduction Xiao-Feng Li (xiaofeng.li@gmail.com) 2012-10-10 Agenda Virtual machines Managed runtime systems EE and MM (JIT and GC) Summary 10/10/2012 Managed Runtime
More informationChapter 3.2 C++, Java, and Scripting Languages. The major programming languages used in game development.
Chapter 3.2 C++, Java, and Scripting Languages The major programming languages used in game development. C++ C used to be the most popular language for games Today, C++ is the language of choice for game
More informationAnnouncements FORTRAN ALGOL COBOL. Simula & Smalltalk. Programming Languages
Announcements Programming Languages! Monday evening GBA section has been shut down " If you were assigned to this section, please find a different section " If you cannot attend a different section, please
More informationMoving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you
More informationCharacteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
More informationStructure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1
The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions
More informationCS A250 (CRN 20690-25399) C++ Programming Language 2. Syllabus Fall 2015
CS A250 (CRN 20690-25399) C++ Programming Language 2 Syllabus Fall 2015 Instructor: Gabriela Ernsberger E-mail: gernsberger@occ.cccd.edu Course Web site: www.thisclass.info Office: MB Computing Center
More information#820 Computer Programming 1A
Computer Programming I Levels: 10-12 Units of Credit: 1.0 CIP Code: 11.0201 Core Code: 35-02-00-00-030 Prerequisites: Secondary Math I, Keyboarding Proficiency, Computer Literacy requirement Semester 1
More informationTexas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design
Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N130.0993. Video Game Design STANDARD CORRELATING PAGES Standard (1) The student demonstrates knowledge and appropriate
More information1.1 WHAT IS A PROGRAMMING LANGUAGE?
1 INTRODUCTION 1.1 What is a Programming Language? 1.2 Abstractions in Programming Languages 1.3 Computational Paradigms 1.4 Language Definition 1.5 Language Translation 1.6 Language Design How we communicate
More informationSyllabus for CS 134 Java Programming
- Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.
More informationComputer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices
232 Computer Science Computer Science (See Computer Information Systems section for additional computer courses.) We are in the Computer Age. Virtually every occupation in the world today has an interface
More informationThe C Programming Language course syllabus associate level
TECHNOLOGIES The C Programming Language course syllabus associate level Course description The course fully covers the basics of programming in the C programming language and demonstrates fundamental programming
More informationCSC 2405: Computer Systems II
CSC 2405: Computer Systems II Spring 2013 (TR 8:30-9:45 in G86) Mirela Damian http://www.csc.villanova.edu/~mdamian/csc2405/ Introductions Mirela Damian Room 167A in the Mendel Science Building mirela.damian@villanova.edu
More informationInterpreters and virtual machines. Interpreters. Interpreters. Why interpreters? Tree-based interpreters. Text-based interpreters
Interpreters and virtual machines Michel Schinz 2007 03 23 Interpreters Interpreters Why interpreters? An interpreter is a program that executes another program, represented as some kind of data-structure.
More informationSample Syllabus (C++) CSCI 1301 Introduction to Programming Principles
Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles Knowledge Areas that contain topics and learning outcomes covered in the course Knowledge Areas Total Hours of Coverage Software Development
More information1. Overview of the Java Language
1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax
More informationProgramming and Software Development CTAG Alignments
Programming and Software Development CTAG Alignments This document contains information about four Career-Technical Articulation Numbers (CTANs) for Programming and Software Development Career-Technical
More informationHPC Wales Skills Academy Course Catalogue 2015
HPC Wales Skills Academy Course Catalogue 2015 Overview The HPC Wales Skills Academy provides a variety of courses and workshops aimed at building skills in High Performance Computing (HPC). Our courses
More informationCMSC 10600 Fundamentals of Computer Programming II (C++)
CMSC 10600 Fundamentals of Computer Programming II (C++) Department of Computer Science University of Chicago Winter 2011 Quarter Dates: January 3 through March 19, 2011 Lectures: TuTh 12:00-13:20 in Ryerson
More informationFundamentals of Programming Languages
A puzzle and a dilemma Suppose I want to capture/catch/slay crashing programs before they have a chance to run (=static type safety). Do I let this one go? let c = ref (fun x -> x) in c := (fun x -> x
More informationGood FORTRAN Programs
Good FORTRAN Programs Nick West Postgraduate Computing Lectures Good Fortran 1 What is a Good FORTRAN Program? It Works May be ~ impossible to prove e.g. Operating system. Robust Can handle bad data e.g.
More informationMICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES FIELD 050: COMPUTER SCIENCE
MICHIGAN TEST FOR TEACHER CERTIFICATION (MTTC) TEST OBJECTIVES Subarea Educational Computing and Technology Literacy Computer Systems, Data, and Algorithms Program Design and Verification Programming Language
More informationManage Software Development in LabVIEW with Professional Tools
Manage Software Development in LabVIEW with Professional Tools Introduction For many years, National Instruments LabVIEW software has been known as an easy-to-use development tool for building data acquisition
More informationDOVER-SHERBORN HIGH SCHOOL PROGRAM OF STUDIES
DOVER-SHERBORN HIGH SCHOOL PROGRAM OF STUDIES 2014-2015 Educational Technologies Intro to Computer Applications Computer Graphics Astronomy Web Design & Development Intro to Programming (Visual Basic)
More informationIntroduction to the course, Eclipse and Python
As you arrive: 1. Start up your computer and plug it in. 2. Log into Angel and go to CSSE 120. Do the Attendance Widget the PIN is on the board. 3. Go to the Course Schedule web page. Open the Slides for
More informationComputer Programming I
Computer Programming I COP 2210 Syllabus Spring Semester 2012 Instructor: Greg Shaw Office: ECS 313 (Engineering and Computer Science Bldg) Office Hours: Tuesday: 2:50 4:50, 7:45 8:30 Thursday: 2:50 4:50,
More informationDomains and Competencies
Domains and Competencies DOMAIN I TECHNOLOGY APPLICATIONS CORE Standards Assessed: Computer Science 8 12 I VII Competency 001: The computer science teacher knows technology terminology and concepts; the
More informationInternational Engineering Journal For Research & Development
Evolution Of Operating System And Open Source Android Application Nilesh T.Gole 1, Amit Manikrao 2, Niraj Kanot 3,Mohan Pande 4 1,M.tech(CSE)JNTU, 2 M.tech(CSE)SGBAU, 3 M.tech(CSE),JNTU, Hyderabad 1 sheyanilu@gmail.com,
More informationLanguage Processing Systems
Language Processing Systems Evaluation Active sheets 10 % Exercise reports 30 % Midterm Exam 20 % Final Exam 40 % Contact Send e-mail to hamada@u-aizu.ac.jp Course materials at www.u-aizu.ac.jp/~hamada/education.html
More informationThomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
More informationPython Programming: An Introduction to Computer Science
Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs 1 The Universal Machine n A computer -- a machine that stores and manipulates information under the control of a
More informationHigh-Level Programming Languages. Nell Dale & John Lewis (adaptation by Michael Goldwasser)
High-Level Programming Languages Nell Dale & John Lewis (adaptation by Michael Goldwasser) Low-Level Languages What are disadvantages of low-level languages? (e.g., machine code or assembly code) Programming
More informationProgramming Languages
Programming Languages In the beginning To use a computer, you needed to know how to program it. Today People no longer need to know how to program in order to use the computer. To see how this was accomplished,
More informationADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science
ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and
More informationCS 378: Computer Game Technology
CS 378: Computer Game Technology http://www.cs.utexas.edu/~fussell/courses/cs378/ Spring 2013 University of Texas at Austin CS 378 Game Technology Don Fussell Instructor and TAs! Instructor: Don Fussell!
More informationATSBA: Advanced Technologies Supporting Business Areas. Programming with Java. 1 Overview and Introduction
ATSBA: Advanced Technologies Supporting Business Areas Programming with Java 1 Overview and Introduction 1 1 Overview and Introduction 1 Overview and Introduction 1.1 Programming and Programming Languages
More informationLast Class: OS and Computer Architecture. Last Class: OS and Computer Architecture
Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 3, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts
More informationABET General Outcomes. Student Learning Outcomes for BS in Computing
ABET General a. An ability to apply knowledge of computing and mathematics appropriate to the program s student outcomes and to the discipline b. An ability to analyze a problem, and identify and define
More informationLesson 06: Basics of Software Development (W02D2
Lesson 06: Basics of Software Development (W02D2) Balboa High School Michael Ferraro Lesson 06: Basics of Software Development (W02D2 Do Now 1. What is the main reason why flash
More information1 Introduction. 2 An Interpreter. 2.1 Handling Source Code
1 Introduction The purpose of this assignment is to write an interpreter for a small subset of the Lisp programming language. The interpreter should be able to perform simple arithmetic and comparisons
More informationCOURSE CSE1010: COMPUTER SCIENCE 1. Prerequisite:
COURSE CSE1010: COMPUTER SCIENCE 1 Level: Prerequisite: Description: Parameters: Introductory None Students explore hardware, software and processes. This includes an introduction to the algorithm as a
More informationTHE ROLE OF PROGRAMMING PARADIGMS IN THE FIRST PROGRAMMING COURSES. 1. Introduction
THE TEACHING OF MATHEMATICS 2008, Vol. XI, 2, pp. 63 83 THE ROLE OF PROGRAMMING PARADIGMS IN THE FIRST PROGRAMMING COURSES Milena Vujošević-Janičić and Dušan Tošić Abstract. The choice of the first programming
More informationSoftware: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.
C H A P T E R 4 Software: Systems and Application Software Software and Hardware Software can represent 75% or more of the total cost of an IS. Less costly hdwr. More complex sftwr. Expensive developers
More informationUsing Web-based Tools to Enhance Student Learning and Practice in Data Structures Course
Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course 1. Introduction Chao Chen January 2014 The purpose of this project is to enhance student learning and practice in
More information