cs 355 – programming languages dr. xenia mountrouidou assistant professor computing science...

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

Upload: natalie-reed

Post on 16-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

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

CS 355 – PROGRAMMING LANGUAGESDr. Xenia Mountrouidou

Assistant Professor

Computing Science

Jacksonville University

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

CS150 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

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

CS150 3

Who am I?

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

CS 340 4

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.

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

CS 340 5

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 webpage• 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

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

CS 340 6

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

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

CS 340 7

How to get help• Visit me during my office hours!

M/W/F 11:00 -12:30 am Merritt Penticoff, 2nd floor, Room 203

• Check the class website and BB frequently• Use the textbook - “Concepts of Programming

Languages”, 10th edition, Robert W. Sebesta, Pearson• Become members of the CS club - Frequent tutoring

sessions• Experiment with code. It’s Fun!

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

Dr. X’s Schedule

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

CS 340 9

Grading

Labs 20%

Homework 40%

Project 40%

Total 100%

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)

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

CS 340 10

Programming Project• It involves

• Design• Analytical Thinking• Some Coding

• It will be done in pairsYou need to send me an e-mail until the end of the second week of classes with your team members

• Each team member will evaluate his/her team mate

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

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

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

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.

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

CS 340 13

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)

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

CS 340 14

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

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

CS 340 15

Policies• Read the collaboration policy carefully.• Late policy:

2% is reduced by every day the assignment is late

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

CS 340 16

Principles of Pair Programming

Dilbert.com

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

CS 340 17

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.

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

Questions about the course???

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Questions?……