1 / 14

Concepts of Programming Languages

Concepts of Programming Languages. Hongwei Xi Comp. Sci. Dept. Boston University. Welcome!. Concepts of Programming Languages is a course that introduces students to some fundamental concepts in programming language design and implementation

ulyssesc
Download Presentation

Concepts of 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. Concepts of Programming Languages Hongwei Xi Comp. Sci. Dept. Boston University

  2. Welcome! • Concepts of Programming Languages is a course that introduces students to some fundamental concepts in programming language design and implementation • The primary goal of the course is to allow students who complete this subject to have • a good feel for the elements of style and aesthetics of programming, and • a strong command of the major techniques for controlling complexity in a large system BU CAS CS320

  3. Software Crisis • Faulty and fragile software becomes more and more common • Security breaches happen more and more frequently • Maintenance cost skyrockets • Programming productivity stagnates BU CAS CS320

  4. Important Course Information • Lecture Times: 9:30-11:00 • Classroom: KCB 102 • Course Homepage:http://www.cs.bu.edu/~hwxi/academic/courses/CS320.html • Instructor: Hongwei Xi / TA: Alexandra Stefan • Office Hours: • Instructor: Monday 2-3 and Thursday 11-12 • TA: TBA • Grades Calculation: 40% (homework) + 20% (midterm) + 40% (final) A: 85% or above B: 75% or above C: 65% or above D: 60% or above BU CAS CS320

  5. Course Overview • Building Abstractions with Procedures • This practice is essential to controlling complexity in building large systems • Building Abstractions with Data • This practice is essential to handling complex data structures • Modularity, Objects and State • Structuring programs according to the (physical) structure of the system being modeled BU CAS CS320

  6. Course Overview • Metalinguistic Abstraction • Techniques for building interpreters • Programming with Types • Techniques for implementing a simple type system • Computing with Register Machines • Techniques for building compilers BU CAS CS320

  7. What is this course like? • It requires that you do a significant amount of programming • You need to program in functional programming languages Scheme and SML, which may demand a programming style that seem rather unnatural or counterintuitive to you at the very beginning • You are expected to read the documentation and learn some essential debugging skills • You are to be given about 8-10 homework assignments, all of which involve some amount of programming BU CAS CS320

  8. What is this course like? • It proceeds in a fast pace • You are expected to read the text that we may not have time to cover in class • You are expected to try programming examples that we may not have time to explain in class • You may need to take notes on the materials we cover that are not in the textbook, though I will minimize the need for note-taking by providing you with as many notes as possible BU CAS CS320

  9. What is this course like? • You are to have a rapid exposure to many fundamental concepts in programming languages • You are expected to gain a great deal more understanding of programming, which can be really helpful for you to pursue other subjects in computer science • Above all, I hope that you will find a great deal more fun in programming BU CAS CS320

  10. What is this course not like? • This is not a course about your top 10 favorite programming languages • We are interested in fundamental concepts • We are not so concerned with “fads” • This is not a compiler course, though it can certainly be of great help for you to take a compiler course later BU CAS CS320

  11. Warnings • This is likely a challenging course for you as many new and unfamiliar concepts in programming languages are to be introduced rapidly • You may need to give some time for certain concepts to “sink in” • You may find that some programming assignments are difficult and demanding • Please ask for help if you need it: ask it sooner rather than (too much) later BU CAS CS320

  12. Pleas • I am likely to be a bit overly ambitious, and • I am certain to make (quite a few) mistakes, but • I will do my best to make the course run as smoothly as possible • Please be patient and ask (a lot of) questions! BU CAS CS320

  13. Academic Integrity • Strict adherence to the university guidelines • All work you turn in must be solely your own unless specified otherwise • You are allowed to discuss problems with your classmates but you need to write your own code and solutions • Please always remember that every student deserves a chance to achieve a fair grade BU CAS CS320

  14. The End Questions? BU CAS CS320

More Related