CSE4102 Team Project Prof. Steven A. Demurjian

Slides:



Advertisements
Similar presentations
An Introduction to Programming General Concepts. What is a program? A program is an algorithm expressed in a programming language. programming language.
Advertisements

Component 4: Introduction to Information and Computer Science Unit 5: Overview of Programming Languages, Including Basic Programming Concepts Lecture 1.
Mrs. Kercher 6 th Grade Gifted.  ExploraVision is a competition for K–12 students of all interest, skill, and ability levels. The competition encourages.
OV-1.1 CSE4939 CSE4939 CS & E Design Laboratory Prof. Steven A. Demurjian, Sr. Computer Science & Engineering Department The University of Connecticut.
A Quick Overview of Languages. FORTRAN Designed in 1955 First release of the compiler in 1957 Algebraic in nature Scientific (numeric not string oriented)
Programming Languages Structure
New experiences with teaching Java as a second programming language Ioan Jurca “Politehnica” University of Timisoara/Romania
Computer Architecture Computational Models Ola Flygt V ä xj ö University
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
Timothy Foster CSCE 221H Pioneer Computer Artist ( present)
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
CS 345: Programming Language Paradigms Chris Brooks HR 510 MWF 11:00-12:05.
Chapter 12: Computer Programming 1 Computer Programming Chapter 12.
Programming Languages
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 1 Overview A good programming language is.
Software Design and Development Languages and Environments Computing Science.
Programming Language Theory 2014, 1 Chapter 1 :: Introduction Origin : Michael L. Scott School of Computer & Information Engineering,
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
Scott C. Johnson Lecturer Rochester Institute of Technology Spring 2016.
Programming Paradigms, Software Architectural Patterns, and MVC CS 378 – Mobile Computing for iOS Dr. William C. Bulko.
CSE3002 Team Project Prof. Steven A. Demurjian
Industry Advisory Board
Programming Languages 2nd edition Tucker and Noonan
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
The language focusses on ease of use
CSE3002 Social, Ethical & Prof. Issues in CSE History of Computing
Concepts of Programming Languages
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Concepts of Programming Languages
Why study programming languages?
Basic 1964 PC general purpose Imperative Small Easy to use.
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
CSE3002 Team Project TOPIC TITLE
Representation, Syntax, Paradigms, Types
An Introduction to Programming
课程名 编译原理 Compiling Techniques
CSE4102 Team Project Prof. Steven A. Demurjian
Computer Programming.
Software Programming J. Holvikivi 2014.
Chapter 12: Computer Programming
Programming Languages
CSE 142 vs CSE 143 CSE 142 CSE 143 You learned how to write programs and decompose large problems with: Print statements Methods Control Structures.
Programming Languages
Representation, Syntax, Paradigms, Types
Object oriented analysis and design
Programming Languages 2nd edition Tucker and Noonan
CSE 341 Programming Languages Autumn 2001
CSE 341 Programming Languages Autumn 2003
Analysis models and design models
CSE 341 Programming Languages Autumn 2002
Preplanning Presentation
Representation, Syntax, Paradigms, Types
Chapter 6: Programming Languages
CSE 341 Programming Languages Spring 2003
Von Neumann Architecture
Principles of Programming Languages
CSE 341 Programming Languages Autumn 2003
Representation, Syntax, Paradigms, Types
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Tonga Institute of Higher Education IT 141: Information Systems
Programming Languages
An Introduction to Programming
Tonga Institute of Higher Education IT 141: Information Systems
School of Computer & Information Engineering,
Some Programming Paradigms
Mathematical Analysis of Algorithms
CSE4102 Programming Languages
Programming Languages, Preliminaries, History & Evolution
CSE4102/5102 Team Project TOPIC TITLE
Presentation transcript:

CSE4102 Team Project Prof. Steven A. Demurjian Computer Science & Engineering Department The University of Connecticut 371 Fairfield Way, Box U-255 Storrs, CT 06269-3255 Steven.Demurjian@uconn.edu http://www.engr.uconn.edu/~steve (860) 486–4818 (Office) (860) 486-3719 (CSE Office)

Team semester project Form teams of 2 to 4 students explore in-depth an old, new, or emerging programming language that supports one or more different programming paradigms Recall that a programming paradigm describes the underlying conceptual and computational model of the PL Imperative Procedural object-oriented etc. See also http://cs.lmu.edu/~ray/notes/paradigms/ https://en.m.wikipedia.org/wiki/Programming_paradigm https://en.m.wikipedia.org/wiki/Software_development#Programming_paradigm

http://cs.lmu.edu/~ray/notes/paradigms/ Imperative: Programming with an explicit sequence of commands that update state. Declarative: Programming by specifying the result you want, not how to get it. Structured: Programming with clean, goto-free, nested control structures. Procedural: Imperative programming with procedure calls. Functional (Applicative): Programming with function calls that avoid any global state. Function-Level (Combinator): Programming with no variables at all.

http://cs.lmu.edu/~ray/notes/paradigms/ Object-Oriented: Programming by defining objects that send messages to each other. Objects have their own internal (encapsulated) state and public interfaces. Object orientation can be: Class-based: Objects get state and behavior based on membership in a class. Prototype-based: Objects get behavior from a prototype object. Event-Driven: Programming with emitters and listeners of asynchronous actions. Flow-Driven: Programming processes communicating with each other over predefined channels.

http://cs.lmu.edu/~ray/notes/paradigms/ Logic (Rule-based): Programming by specifying a set of facts and rules. An engine infers the answers to questions. Constraint: Programming by specifying a set of constraints. An engine finds the values that meet the constraints. Aspect-Oriented: Programming cross-cutting concerns applied transparently. Reflective: Programming by manipulating the program elements themselves. Array: Programming with powerful array operators that usually make loops unnecessary. Paradigms are not meant to be mutually exclusive; a single program can feature multiple paradigms!

Four Part Project Identify the Issues/Questions of chosen PL Why did you choose your PL? What types of problems does it solve? What application domais is it relevant for? When how and who were the inventors of the programming language? 12/18/24 page final report your chosen PL for 2/3/4 members One member expands the part A and focuses on paradigm, origin, history, domain, & bios Other member(s) focus on language, compiler, IDE, grammar, etc. Demonstrate your chosen programming language through code using perhaps word count or word frequency program. 50/75/100 slide PPT presentation on your chosen programming language using the CSE4102 template on the course web page. Each member does 25 slides on their portion from B. Also prepare a 5-10 slide speed version to present Class Presentation Integrates Topic, Languages, and Bio PPTs

Team Structure and Responsibilities A final report with 12 pages for 2 person teams, 18 pages for 3 person teams, in 24 pages for 4 person teams One team member focuses on the overall introduction of the programming paradigm by: Expanding the one page discussion in more detail Discussing the underlying programming paradigm (e.g., concurrent, parallel, functional, etc.) Explaining motivation /history of PL, bios of founders Discussing the domain or intended application Each of the other 1, 2, or 3 team members focuses on the programming language in detail including: Perspective of technology, compilers, supported platforms, IDE Grammar in EBNF or yacc/bison format as an appendix For example, for object-oriented paradigm, Java, Eiffel, and C++, for a 4 person team, one team member do4svoverview and the other three team members assigned to a P

Choosing a Programming Language Possible Languages to consider are based on categories or application domains or for specific purposes: Languages for IoT, concurrency/parallelism, machine learning, secure transactions Categories as in https://en.m.wikipedia.org/wiki/List_of_programming_languages_by_type Time period organization as in https://en.m.wikipedia.org/wiki/Timeline_of_programming_languages You cannot choose PLs in class (C, C++, Pascal, Modula-2, Ada, Prolog, Go, Fortran, COBOL), from a CSE class (Python, scheme), or widely in use (Java, JavaScript, C#, Objective-C, Swift, etc.). Make sure you select a language that has an available compiler to utilize for demonstration and testing purpose See: https://medium.freecodecamp.org/how-to-visualize-the-programming-language-influence-graph-7f1b765b44d1

Possible Programming Languages Dart https://www.dartlang.org Google general purpose/IoT PL Rust https://www.rust-lang.org/en-US/ Systems programming Parasail http://parasail-lang.org Parallel Programming Julia https://julialang.org Numerical Computing HiveQL SQL-like for Data Warehouses https://cwiki.apache.org/confluence/display/Hive/Home Others links to Consider Rosetta Code http://rosettacode.org/wiki/Rosetta_Code https://techbeacon.com/5-emerging-programming-languages-bright-future https://techbeacon.com/13-programming-languages-defining-future-coding https://stackify.com/popular-programming-languages-2018/ http://yoppworks.com/8-predictions-of-future-programming-based-on-2017-trends/

Teams and Due Dates 33% per deliverable – individual and team grade Important dates By February 4th at 11:59pm: submit to Steve: a list of team members, your chosen programming language and a one-paragraph description of the language, and which team member is doing which deliverable (B and D) By April 15 at 11:59pm: submit to Steve the two PPT presentations (speed and long) Speed Presentation in Class By May 3 at 11:59pm: submit your final report.

Format/Submission Requirements All slides must be formatted with http://www.engr.uconn.edu/~steve/Cse4102/cse4102template.pptx Slide 2 of http://www.engr.uconn.edu/~steve/Cse4102/cse4102template.pptx has organization of final PPT. For written reports A and B, 1 page is 12pt, 1in margins, single spaced, Times New Roman fonts. You must submit an MS Word Document. For presentations, use PowerPoint. Tables, Figures, etc. are not counted in the page requirements of B.

Organization of Final PPT 50/75/100 slide PPT presentation using this template Biographical PPTs (included in 50/75) for the individuals involved in your PL See next three slides for an example Conclusion Slide

Biography - Donald Knuth In 8th grade, won competition by finding 4,500 words from “Ziegler’s Giant Bar” Graduated from high school in 1956 with the highest GPA ever achieved at that school Graduated in 1960 from Case Institute of Technology with a B.S. in Mathematics, was simultaneously awarded an M.S. for his achievements, an unprecedented move Received a Ph.D. in Mathematics from California Institute of Technology in 1963 Joined Stanford University as a Professor of Computer Science in 1968 In 1993, became Professor Emeritus of The Art of Computer Programming at Stanford, where he is still currently located

Achievements - Donald Knuth Authored The Art of Computer Programming, a multi-volume tome on CS Inventor of TeX and METAFONT LR(k) parsing Knuth-Morris-Pratt algorithm 1974 – Turing Award winner 1979 – National Medal of Science 1995 – John von Neumann Medal

Trivia - Donald Knuth The Art of Computer Programming began as a text about compilers Loves organ music, mostly 4 and 8-hand music which he plays on an organ in his home, he studied piano as a child Pays $2.56 (one hexadecimal dollar) for errors found in his books Quit using email in 1990 Processes all communications in batch-mode