1 / 22

CSE4102 Programming Languages

Explore the history and evolution of programming languages from the 1940s to the present day, including the founders and major contributors, different programming paradigms, and the impact of PLs on computing. Learn about the main programming languages and their evolution, from origins to mainframes to PCs to mobile to IoT. Understand the shift from assembly to visual programming languages and what the future holds for PLs. This course includes lectures, assignments, exams, and a team project to explore new/emerging programming languages.

kathleenc
Download Presentation

CSE4102 Programming Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSE4102 Programming Languages 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://sdcse.engr.uconn.edu (860) 486–4818 (Office) (860) 486-3719 (CSE Office) TeachingAssistants – ITE140? Office hours to be announced ChaoqunYueChaoqun.yue@uconn.edu YanyuanQinYanyuan.qin@uconn.edu

  2. Course Objectives • Explore the Programming Languages from 1940s to the Present Day • Who were the Founders and Major Contributors? • What are the Different Programming Paradigms? • How have PLs Evolved over Decades? • From Origins to Mainframes to PCs to Mobile to IoT • From Assembly to Procedural to Functional to Logic to Object Oriented to Visual to What’s Next? • From Spaghetti Code to Structured Programming to Strong Type Checking • CSE1010 from Pascal to C++ to Java to Python • What will shape the Future in PLs? • Explore the Evolution of Programming and Paradigms over Time

  3. Main Textbook • Robert W. Sebesta, Concepts of Programming Languages, 10th Ed, Pearson • ISBN 10: 0-13-139531-9 • ISBN 13: 978-0-13-139531-2

  4. Lectures and Topics/May be Changed • Brief History of Computing and Founders • Highlights influence of PLs • Review Evolution of PLs • History and Review of Programming Languages • Chapter 2 of textbook on Steroids • Augmemt with Extensive PL Examples • Chapters 1-12, 16, maybe 15 • Programming language /software engineering ethics • Additional Material on • Lexical Analysis/Regular Expressions • Parsing/Context Free Grammars • Runtime Evironment as related to PLs • Indepth Examination of Pascal, Modula-2, Ada, Prolog, others TBD

  5. Three Main Assignments • One or Two Semester Exams • Individual - Developing Code in Different Programming Languages • Utilize a Common Problem • http://sdcse.engr.uconn.edu/Cse4102/CommonProbBackground.pdf • Utiliz Suite of IDEs • Also use GNU Compiler Family • http://sdcse.engr.uconn.edu/Cse4102/GNUCompilers.docx • Team Semester Project to Explore New/Emerging Programming Languages • Teams of 2, 3 or 4 • PPT Presentation on a PL • Written Report and Development • Actual Speed Presentation • Last 2-3 weeks of Class

  6. Breakdown of Percentages • Exam(s) (25-35%) • Individual - Developing Code in Different (35-40%) Programming Languages • Team Semester Project to Explore a PL (35-40%) • PPT Presentation • Written Report • Other Requirements TBD • Actual Presentation (last 2 or 3 weeks of Class) • Note: All Subject to Change – Use Breakdown that Most Benefits Students

  7. Last time taught this course Formulas PLATTL= Sum of highest five grades -- Ex: 140 EXAMTTL = Your final Exam Score – Ex: 75 SEMPRTTL = ( ( IndivReport/50*0.75) + ( IndivPPT/50*0.25))*100 Ex: ((45/50*0.75) + (35/50*0.25)) *100 = 85 Semester Total = ((PLATTL/150*0.375)+(EXAMTTL/90*0.25)(SEMPRTTL/100*0.375))*100 . Ex:. ((140/150*0.375)+(75/90*0.25)+(85/100*0.375))=87.71 Final Scale (note A+ since Grads can get A+ grades) A+ 94+ A 91+ A- 87+ B+ 83+ B 79+ B- 75+ C+ 70+ C 65+ C- 60+ D+ 55+

  8. Coding in Multiple Programming Languages • Utilize a Common Problem • http://sdcse.engr.uconn.edu/Cse4102/CommonProbBackground.pdf • C, Pascal, Modula 2, Ada, Prolog – 6 Assignments • Word Count Functionality (WCF) • Word Frequency Functionality (WFF) • Permuted Index Functionality (PIF) • WCP.zip, PIFC.zip, PIFCPP.zip • Objectives • Implement WCF, WFF, and/or PIF in different programming languages • Use Language Specific Capabilities • Take highest 5 grades • http://sdcse.engr.uconn.edu/Cse4102/cse4102progassign.docx

  9. Your Role in Programming Assignments • Learning a new language on your own with minimal support from TAs or instructor • Programming assignments are not complex problems • We’re testing for accuracy in results on • Word counting • Word frequency • Permuted index • Basic sorting • Not worried about efficient implementation • Provide you test cases, we have some of our own • Intent is to allow you to explore different languages

  10. All Programming Assignments Posted • PLA1 C Program - Due January 31, 11:59pm • Implement the Frequency Functional (WFF) in C as described in: http://sdcse.engr.uconn.edu/Cse4102/CommonProbBackground.pdf • PLA2 Pascal Program - Due February 14, 11:59pm • Implement the Word Count Functionality (WCF) and Frequency Functional (WFF) in Pascal as described in: http://sdcse.engr.uconn.edu/Cse4102/CommonProbBackground.pdf • PLA3 Modula-2 Program –Due February 28, 11:59pm Evolve WCF from PLA2 to Modula 2 and implement Word Frequency Functional (WFF) in Modula-2 as described in: http://sdcse.engr.uconn.edu/Cse4102/CommonProbBackground.pdf • Version 1 single module • Version 2 Single module with Sorting and three procedures

  11. All Programming Assignments Posted • PLA4 Ada Program - Due March 14, 11:59pm • Modify an existing a Ada program with three versions • V1 change original program to alphabetically sort • V2 + V1 Change the logic so that get WFF • V3 +V1+V2 Add in read from input.txt and written to output.txt • PLA5 Ada Program -- Due April 1, 11:59pm • Extend PLAV3 to realize Permuted Index Functionality (PIF) in Ada as described in: http://sdcse.engr.uconn.edu/Cse4102/CommonProbBackground.pdf • PLA6 Prolog Program -- Due April 15, 11:59pm • Independent project on using Prolog from a database • All assignments 30 points each, take top five of six • Tests : http://sdcse.engr.uconn.edu/Cse4102/test1.txt http://sdcse.engr.uconn.edu/Cse4102/test2.txthttp://sdcse.engr.uconn.edu/Cse4102/test3.txt

  12. Lectures Presentations on PLs • Each presentation on due date of prior language • Pascal January 31 • Modula-2 February 14 • Ada February 28 • Prolog April 1

  13. PLA1 Implement the Word Frequency Functionality (WFF) in C as described in: http://sdcse.engr.uconn.edu/Cse4102/CommonProbBackground.pdf Tests: http://sdcse.engr.uconn.edu/Cse4102/test1.txthttp://sdcse.engr.uconn.edu/Cse4102/test2.txt http://sdcse.engr.uconn.edu/Cse4102/test3.txt Utilize gcc and upload your .c/.h files to HuskyCT. If you use an IDE, make sure your solution compiles and runs on the command line in Linux under gcc. You can implement this solution by either inputting one file using argc, and argv at the command line level or by reading in from an input file. For the purposes of this assignments and all the rest of the assignments, a “word” for the word count (and for the permuted index) must take into consideration the following: Each word must be at least one character and start with a letter. If a word has 2 or more characters, then the second and successive characters can be letters, digits, the underscore, or the hyphen. This means that you must, for the purposes of identifying words or computing the permuted index, recognize and discard other characters such as @, #, $, &, (, ), etc.s lso, note that you must eliminate white space (multiple spaces or tabs) between words.

  14. Programming Languages Overview • Procedural Languages: Pascal, Modula-2, Ada, Algol, Fortran, • Functional and Logic Languages: Lisp/Scheme, Prolog, ML • Object-Oriented Languages: Oberon-2, Modula-3, Go • Miscellaneous Languages: COBOL • Emerging Languages: Microsoft P, Google Dart/Flutter, Others? • Browser-Based Scripting Languages: Perl, Python, Javascript, PHP

  15. GNU Compilers

  16. GNU Compilers (mostly)

  17. Where to Find Sample Code • http://sdcse.engr.uconn.edu/Cse4102/SamplePLProgramLinks.docx

  18. Where to Find Sample Code

  19. Where to Find Sample Code

  20. Team Semester Project: Explore a PL • Teams of two three or four students • One-page Discussion on your Chosen PL • Why did you choose your programming language? • What types of problems does it solve? • What application domain means is it relevant for? • Identify all team members • Deliverables • 12/18/24 page final report on your PL depending upon your team size of 2/3/4 • One PowerPoint presentations of 50 / 75 / 100 slides depending upon your team size of 2/3/4 • One short PowerPoint presentation for 5-10 minute presentation depending upon the number of teams • Demontratee your PL Via code…WCF, WFF, and PIF • Let’s Jump to: • http://sdcse.engr.uconn.edu/Cse4102/cse4102teamproject.pptx

  21. Cheating/Collaboration • Not Tolerated in Any Form!!! • Severe Penalties are Likely!!! • See University of Connecticut Student Conduct Code • All Homeworks/Some Project Represent Individual Effort! • Remaining Projects Represent Team Effort • Cooperative Problem Solving and Sharing Code is NOT Permitted and Will Likely Lead to Fs! • Electronic Information is More Accessible! • Use Protection Capabilities on your Account to Protect your Files!

  22. Lateness Policies/Exams • Late Assignments (Projects) will Not be Accepted Except with Prior Permission or Emergencies • Prior Permission: Contact the Instructor Three Days Before the Due Date • Emergencies: Illness, Death in the Family, etc. • Contact • S. Demurjian at ITE265, x6-4818, by Steven. Demurjian@uconn.edu, or via the CSE Office, ITE250, x6-3719 • A Late Assignment is Recorded as a Zero Grade • Makeup on Absent Exam at Instructor’s Discretion

More Related