CS 355 – PROGRAMMING LANGUAGES Dr. Xenia Mountrouidou Assistant Professor Computing Science Jacksonville University.

Slides:



Advertisements
Similar presentations
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Chapter One Preliminaries, including –Why study PL concepts? –Programming domains –PL evaluation criteria.
Advertisements

Chapter 1: Preliminaries
CS 354 Overview. Addison-Wesley –2 Course Topics What is a programming language? What features do programming languages have? How are these features.
Reasons to study concepts of PL
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
ISBN Chapter 1 Preliminaries. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
CS 354 Overview. Copyright © 2007 Addison-Wesley. All rights reserved. 1–2 Course Topics What is a programming language? What features do programming.
Programming Languages Structure
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Copyright © 1998 by Addison Wesley Longman, Inc. 1 Concepts of Programming Languages Chapter 1.
ISBN Chapter 1 Preliminaries. Copyright © 2007 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
ICE1341 Programming Languages Spring 2005 Lecture #3 Lecture #3 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries. Copyright © 2012 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of Programming Languages.
CS 150 PERSONAL PRODUCTIVITY USING TECHNOLOGY Instructor: Dr. Xenia Mountrouidou.
CS 450 MODELING AND SIMULATION Instructor: Dr. Xenia Mountrouidou (Dr. X)
CS 363 Comparative Programming Languages
CS 330 Programming Languages 09 / 04 / 2008 Instructor: Michael Eckmann.
Chapter 1 Preliminaries CS Concepts of Programming Languages.
Programming Languages Summer
February 25, ICE 1341 – Programming Languages (Lecture #1) In-Young Ko Programming Languages (ICE 1341) Lecture #1 Programming Languages (ICE 1341)
COSC 235: Programming and Problem Solving Instructor: Dr. Xenia Mountrouidou 1.
COSC 150: Science Using Computation Instructor: Dr. Xenia Mountrouidou 1.
Copyright © 2006 Addison-Wesley. All rights reserved.1-1 ICS 410: Programming Languages.
ICS 313 Fundamentals of Programming Languages Instructor: Abdul Wahid Wali Lecturer, CSSE, UoH
ISBN Chapter 1 Preliminaries. Corrected and improved by Assoc. Prof. Zeki Bayram, EMU, North Cyprus. Original Copyright © 2007 Addison-Wesley.
ISBN CS 354 Preliminaries. Copyright © 2006 Addison-Wesley. All rights reserved.1-2 Course Topics What is a programming language? What features.
ISBN Chapter 1 Preliminaries. Copyright © 2015 Pearson. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of Programming.
ISBN Chapter 1 Preliminaries. Copyright © 2009 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
ISBN Chapter 1 Preliminaries. 1-2 Chapter 1 Preliminaries 1.1 Reasons for Studying Concepts of Programming Languages 1.2 Programming Domains.
Programming Domains 1.Scientific Applications Typically, scientific applications have simple data structures but require large numbers of floating-point.
Chapter 1: Preliminaries Lecture # 2. Chapter 1: Preliminaries Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation.
ISBN Chapter 1 Preliminaries. Copyright © 2006 Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Reasons for Studying Concepts of.
Chapter 1 Preliminaries.
Concepts of Programming Languages
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
PROGRAMMING LANGUAGES
Chapter 1 Reasons to study concepts of PLs Programming Domains
1.1 Reasons to study concepts of PLs
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Introduction.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Programming Languages, Preliminaries, History & Evolution
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
Presentation transcript:

CS 355 – PROGRAMMING LANGUAGES Dr. Xenia Mountrouidou Assistant Professor Computing Science Jacksonville University

2 Who am I? Dr. X – Computer Scientist PhD at North Carolina State University – Optical networks performance Worked at IBM – Software Performance Engineer Post doc at College of William and Mary – research on performance and power savings for hard disk drives Scuba diver, manga comics collector, science fiction reader CS150

3 Who am I? CS150

Course Objectives Students develop the ability to implement algorithms using 5 different languages (C, Java/C#, LISP, Python, one language of your choice). Students gain the confidence to learn a new programming language well enough to implement simple algorithms. Students learn the history of programming languages and how they were developed. Students develop knowledge of various concepts and issues pertaining to programming languages. Student gain knowledge of the implementation of programming languages. Students gain knowledge of the strengths and weaknesses of programming languages as well as the domains for which they are intended. CS 340 4

Lectures We meet at 10:00-10:50, every M/W/F, at Merritt Penticoff Science Bld, Room 122 Check the schedule on the class webpagewebpage Reading and examples will be posted online on Blackboard or the class website Lectures will be interactive. This means: You will need to study the new material before every lecture (slides and book or online material) We will have labs every week so that you can work on analytical and programming skills during the lecture CS 340 5

Lectures Interactive! Ask Questions Answer my questions During lectures I may demonstrate coding examples I encourage you to type the coding examples on your computer Choices: Cell phones – MUST be silenced Using your cellphone, FB, Ebay, Twitter, Pintrest etc. … your choice CS 340 6

How to get help Visit me during my office hours! M/W/F 11:00 -12:30 am Merritt Penticoff, 2 nd floor, Room 203 Check the class website and BB frequently Use the textbook - “Concepts of Programming Languages”, 10 th edition, Robert W. Sebesta, Pearson Become members of the CS club - Frequent tutoring sessions Experiment with code. It’s Fun! CS 340 7

Dr. X’s Schedule

Grading Labs20% Homework40% Project40% Total100% CS  Homework and Programming projects will be posted online on BlackBoard and on the class website  You will upload your completed assignments on BlackBoard (do not send me your solution on e- mail)

Programming Project It involves Design Analytical Thinking Some Coding It will be done in pairs You need to send me an until the end of the second week of classes with your team members Each team member will evaluate his/her team mate CS

Project topics A programming language of your interest that we did not cover: Hardware Programming Language -Verilog or VHDL Command Line Interface Languages - bash or csh or tcsh Data Oriented Languages – Perl, AWK Array Language – Fortran Numerical Analysis Languages – Matlab or R Logic - Prolog Markup - JSTL, XSLT

Project Deliverables Design and Plan (10%) Choose the PL you will work on Make a plan: how will you demonstrate the basic features of the PL? Presentation: 15 – 20 mins (10%) This is your moment to shine! We will be interested in learning about the PL you have chosen so the presentation should be like a mini lecture Final project submission (20%) Code Report README Team review Competition! You will be immortalized in the course website and receive a prize. The competition result will not affect your grade… but it can be a nice bullet in your resume.

Homework Four homework assignments (10% of your grade for each assignment) They will involve: Analytical thinking Programming Homework will be completed individually (please read the collaboration policies) CS

Policies Cheating means “submitting, without proper attribution, any computer code that is directly traceable to the computer code written by another person.” Or even better: “Any form of cheating, including concealed notes during exams, copying or allowing others to copy from an exam, students substituting for one another in exams, submission of another person’s work for evaluation, preparing work for another person’s submission, unauthorized collaboration on an assignment, submission of the same or substantially similar work for two courses without the permission of the professors. Plagiarism is a form of Academic Misconduct that involves taking either direct quotes or slightly altered, paraphrased material from a source without proper citations and thereby failing to credit the original author. Cutting and pasting from any source including the Internet, as well as purchasing papers, are forms of plagiarism.” I give students F grade in the specific homework A second cheating attempt will be escalated to the chair of the division of Science and Math CS

Policies Read the collaboration policy carefully. Late policy: 2% is reduced by every day the assignment is late CS

Principles of Pair Programming CS Dilbert.com

Principles of Pair Programming All I Really Need to Know about pair programming I Learned in Kindergarten Share everything. Play fair. Don’t hit people. Put things back where you found them. Clean up your own mess. Don’t take things that aren’t yours. Say you’re sorry when you hurt somebody. CS

Questions about the course???

Why learn about PLs? Increase your ability to express ideas Improve your background for choosing appropriate languages Increase your ability to learn new languages Better understanding of significance of implementation Better use of languages that you already know

Programming Domains Scientific applications Large numbers of floating point computations; use of arrays Fortran Business applications Produce reports, use decimal numbers and characters COBOL Artificial intelligence Symbols rather than numbers manipulated; use of linked lists LISP Systems programming Need efficiency because of continuous use C Web Software Eclectic collection of languages: markup (e.g., HTML), scripting (e.g., PHP), general-purpose (e.g., Java)

Language Evaluation Criteria Readability: the ease with which programs can be read and understood Writability: the ease with which a language can be used to create programs Reliability: conformance to specifications (i.e., performs to its specifications) Cost: the ultimate total cost

Evaluation Criteria: Readability Overall simplicity A manageable set of features and constructs Minimal feature multiplicity Minimal operator overloading Orthogonality A relatively small set of primitive constructs can be combined in a relatively small number of ways Every possible combination is legal Data types Adequate predefined data types Syntax considerations Identifier forms: flexible composition Special words and methods of forming compound statements Form and meaning: self-descriptive constructs, meaningful keywords

Evaluation Criteria: Writability Simplicity and orthogonality Few constructs, a small number of primitives, a small set of rules for combining them Support for abstraction The ability to define and use complex structures or operations in ways that allow details to be ignored Expressivity A set of relatively convenient ways of specifying operations Strength and number of operators and predefined functions

Evaluation Criteria: Reliability Type checking Testing for type errors Exception handling Intercept run-time errors and take corrective measures Aliasing Presence of two or more distinct referencing methods for the same memory location Readability and writability A language that does not support “natural” ways of expressing an algorithm will require the use of “unnatural” approaches, and hence reduced reliability

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

Evaluation Criteria: Others Portability The ease with which programs can be moved from one implementation to another Generality The applicability to a wide range of applications Well-definedness The completeness and precision of the language’s official definition

Summary The study of programming languages is valuable for a number of reasons: Increase our capacity to use different constructs Enable us to choose languages more intelligently Makes learning new languages easier Most important criteria for evaluating programming languages include: Readability, writability, reliability, cost This will be a fun class! Please read syllabus, policies, and ask me if you have any questions or concerns

Questions?……