CS 3034: Widely Used Programming Languages

Slides:



Advertisements
Similar presentations
An Overview Of Virtual Machine Architectures Ross Rosemark.
Advertisements

Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Introduction to Computer Programming CSC 1401: Introduction to Programming with Java Lecture 2 Wanda M. Kunkle.
3-1 3 Compilers and interpreters  Compilers and other translators  Interpreters  Tombstone diagrams  Real vs virtual machines  Interpretive compilers.
To run the program: To run the program: You need the OS: You need the OS:
I NTRODUCTION TO P ROGRAMMING ICS 3U 1. W HAT I S A P ROGRAM ? A program is a set of instructions that makes the computer do something. There are two.
CSC 142 A 1 CSC 142 Introduction to Java [Reading: chapter 0]
Parts of a Computer Why Use Binary Numbers? Source Code - Assembly - Machine Code.
CS110/CS119 Introduction to Computing (Java)
CS 3305 Course Overview. Introduction r Instructor: Dr Hanan Lutfiyya r Office: MC 355 r hanan at csd dot uwo ca r Office Hours: m Drop-by m Appointment.
CS2303 C14 Systems Programming Concepts Bob Kinicki.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
1 A Simple but Realistic Assembly Language for a Course in Computer Organization Eric Larson Moon Ok Kim Seattle University October 25, 2008.
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
VirtualBox What you need to know to build a Virtual Machine.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
CS 444 Introduction to Operating Systems
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
I NTRODUCTION TO P ROGRAMMING ICS 3U 1. W HAT I S A P ROGRAM ? A program is a set of instructions that makes the computer do something. There are two.
CS4710 Why Progam?. Why learn to program? Utility of programming skills: understand tools modify tools create your own automate repetitive tasks automate.
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
 Programming - the process of creating computer programs.
Introduction Why are virtual machines interesting?
Introduction TO Network Administration
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
Introduction to Programming 1 1 2Introduction to Java.
UNIX U.Y: 1435/1436 H Operating System Concept. What is an Operating System?  The operating system (OS) is the program which starts up when you turn.
Computer System Structures
CMPT 201 Computer Science II for Engineers
Applications Active Web Documents Active Web Documents.
Introduction to Virtualization
CSC235 Computer Organization & Assembly Language
Java Programming: From the Ground Up
Lecture 1b- Introduction
Computer Organization
Before You Begin Nahla Abuel-ola /WIT.
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
CSCI-235 Micro-Computer Applications
Key Ideas from day 1 slides
Network Operating Systems (NOS)
Lecture 1: Introduction to JAVA
Topic: Difference b/w JDK, JRE, JIT, JVM
Lecture 1: Network Operating Systems (NOS)
Course: Introduction to Computers
Lecture 1 Runtime environments.
Chapter 2. Malware Analysis in VMs
Teaching Computing to GCSE
OS Virtualization.
CS190/295 Programming in Python for Life Sciences: Lecture 1
Welcome to CS 1010! Algorithmic Problem Solving.
COP 5611: Operating Systems
CIS16 Application Development – Programming with Visual Basic
Introduction to Algorithm Design
Different Operating Systems
Introduction CSC 111.
CS2013 Lecture 1 John Hurley Cal State LA.
OPS235: Week 1 Installing Linux ( Lab1: Investigations 1-4)
CMP 131 Introduction to Computer Programming
Chapter 7 –Implementation Issues
Java Programming Introduction
CS2013 Lecture 1 John Hurley Cal State LA.
Introduction to Virtual Machines
Lecture 1 Runtime environments.
Software - Operating Systems
System calls….. C-program->POSIX call
Introduction to Virtual Machines
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
CS2013 LECTURE 1 John Hurley Cal State LA.
Hypervisor A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. A computer.
Presentation transcript:

CS 3034: Widely Used Programming Languages Lecture 1: Introduction to CS 3034 John Hurley Cal State LA 1 1 1

Introduction John Hurley Call me John, especially outside class. If that’s too informal for you, you can call me “Instructor” hurley_j@sbcglobal.net Office hours listed at http://web.calstatela.edu/faculty/jhurley2 2 2 2

CS 3034 CS 3034 introduces students to additional programming languages. It assumes the student is already proficient in OOP with Java This section will cover C++ and Python, with some material about C Course time will be split roughly evenly between lectures and labs. In each unit (C/C++ and Python) I will start out lecturing for a couple of class meetings, then increase the amount of lab time. 3 3 3

Course Information All information about the course is on CSNS Course schedule and Software Download Links Textbook Info Grading policies Assignments 4 4 4

Textbook Goodrich, Tamassia, Mount, Data Structures and Algorithms in C++, Second Edition. International editions are available. They use shoddy bindings and paper, but are inexpensive. Be sure to get the Second Edition. 5 5 5

Don’t Post Solutions Online! Don’t post partial or full solutions to the assignments anywhere on the internet! 6 6 6

Programming Languages As you will learn in CS3120, all important programming languages are equivalent in an important sense. All the languages you are likely to learn are Turing-complete. They can all be used to implement solutions to the same set of problems that could be solved by a theoretical (not actual) machine defined by Alan Turing This does not mean that all Turing-complete languages are equally suitable for any particular task or that any particular algorithm can be implemented equally efficiently in any language 7 7

Programming Languages Turing-complete programming languages vary in syntax and semantics. There are also important tradeoffs in different ways to translate from programming languages to machine code. Some languages are designed to support particular programming paradigms, which can have important effects on both efficiency of execution and programmer productivity (how much a programmer can accomplish in a given amount of time) Some languages are designed for special use cases (JavaScript) and others for narrow, not general, purposes (Matlab) 8 8

Programming Languages Turing-complete programming languages vary in syntax and semantics. There are also important tradeoffs in different ways to translate from programming languages to machine code. Some languages are designed to support particular programming paradigms, which can have important effects on both efficiency of execution and programmer productivity (how much a programmer can accomplish in a given amount of time) Some languages are designed for special use cases (JavaScript) and others for narrow, not general, purposes (Matlab) C, C++ and Python are general-purpose languages, although in practice they are useful for different types of problems. 9 9

C/C++ and Python Units The main objective of this course is to teach you additional programming languages. However, there are some other compatible objectives: C is widely used in systems programming. The brief introduction to C should be helpful if you take CS 4440. Software employers often use technical questions in job interviews. The questions are usually CS 203-level questions about data structures and associated algorithms. The C++ unit in this course will focus on lower-level implementation of some important data structures. As you will see, this is also a very good way to learn the unique characteristics of C++ itself. Python offers easy ways to accomplish many high-level programming tasks. The Python unit will lead up to building a website using Django, a web programming fraework. 10 10

Virtual Machines You are already familiar with the Java Virtual Machine, which takes Java bytecode as its assembly language and interprets it at runtime. Virtual machines in general use resources (CPU time, memory) supplied by a host OS. At higher levels, it appears as though those resources were the lower-level components of a physical machine. VMs are used for many purposes separate software from the host system for security purposes; intrusions or malware can be isolated within the VM abstract away platform specifics so developers don’t have to think about them, as with the JVM, Python, and .NET provide a uniform environment for multiple developers who are actually using different OSs and hardware 11 11

Virtual Machine First widely used in VM/370 with CMS App1 App2 App3 System calls Linux Windows NT FreeBSD I/O instructions VMware VMware VMware Calls to simulate I/O Linux “Real” I/O instructions Bare hardware First widely used in VM/370 with CMS Available today in VMware Allows users to run any x86-based OS on top of Linux or NT “Guest” OS can crash without harming underlying OS Only virtual machine fails—rest of underlying OS is fine “Guest” OS can even use raw hardware Virtual machine keeps things separated Ahmed Amer, Ethan L. Miller and Scott A. Brandt, University of Pittsburgh 12

Digital Ocean VM Since C++ is not fully standardized, you need to use the same OS and compiler I use for grading your work. In the Python unit, we will deploy a website. This course requires you to use a VM on a Digital Ocean (www.digitalocean.com) account. Use the $10/month level. Github offers a student package that may save you money. I have not tried it. When you set up the account, you set up a "droplet" and choose an operating system for it. Choose Fedora 26. If you have another way to run Fedora 26, you can wait until the Python unit (when you will set up a public web server) to get the VM. For example, you could run Fedora 26 in VirtualBox up until about week 12. Otherwise, set up the Digital Ocean account now. 13

SSH and SFTP Clients To work with the Digital Ocean VM from Windows machines, you will need a Secure Shell client and an SFTP client. Linux and Mac OSX systems already have SSH and SFTP clients built in. If you use Windows and like particular SSH and SFTP clients that you have already used, use them. Otherwise, try PUTTY and PSFTP or SSH Secure Shell and SSH Secure FTP. These are available on the lab computers and are easy to install at home or on a USB drive. You can easily find instructions for using these tools online. They are not hard to learn. 14 14