Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CS 355 – PROGRAMMING LANGUAGES Dr. Xenia Mountrouidou Assistant Professor Computing Science Jacksonville University."— Presentation transcript:

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

2 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 3 Who am I? CS150

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. CS 340 4

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

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 CS 340 6

7 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

8 Dr. X’s Schedule

9 Grading Labs20% Homework40% Project40% Total100% CS 340 9  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)

10 Programming Project It involves Design Analytical Thinking Some Coding It will be done in pairs You 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 CS 340 10

11 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

12 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.

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) CS 340 13

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 CS 340 14

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

16 Principles of Pair Programming CS 340 16 Dilbert.com

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. CS 340 17

18 Questions about the course???

19 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

20 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)

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 Questions?……


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

Similar presentations


Ads by Google