1 / 12

Principles of Programming Languages

This course covers the basic concepts underlying programming languages, including syntax, semantics, and families. It examines Scheme as an example of a functional programming language, C and Python as modern imperative languages, and an object-oriented language. Students will also explore logic programming and study Perl as an example of good and not-good language design. The course includes frequent homework, exams, discussions, and programming assignments.

Download Presentation

Principles 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. Principles ofProgrammingLanguages CMSC 331-02, Spring 2013

  2. Staff • John Y. Park • park@umbc.edu • ITE 207, office hours: TTh 4:00–5:00pm, W 1:00-2:00p • TA Karan Gill • kargil1@umbc.edu • Office hours: location and time TBD

  3. Goals • Cover basic concepts underlying programming languages (syntax, semantics, families, …) • Study Scheme as an example of a functional programming language • Study a language such as C or Python as an example of a modern imperative language • Study an object-oriented language to see what’s truly different

  4. Goals • Learn about a very different programming paradigm: logic programming • Learn about good and not-good language design, through a study of Perl • Touch on other languages and concepts along the way

  5. Approach • Text has good coverage of the basics • Augmented with readings and videos from Web • Learn by doing: frequent homework (45%) • 6-10 assignments • Exams: midterm (20%), final (30%) • Discussions in class and online (5%) • Programming assignments must work on gl

  6. Expectations • Do the assignments • On your own • Hand them in on time • It’s better to hand it in late than not at all • Ask questions • And/or share thoughts • Don’t be afraid to seek help • Take pride in your work, including your code

  7. Infrastructure • Website for schedule, notes, etc. • http://cs.umbc.edu/courses/331/spring13/ • Blackboard for discussion and grades • All programming assignments must work on gl.umbc.edu • If you use your own computer you’ll eventually want to download & install • Racket (Scheme) • Python

  8. Need Help? • We are here to help you learn • Recommended procedure • Think • Check book, reading, notes • Check the online discussion forum • Ask Google or Bing • Ask the TA (email, office hours) • Ask the instructor (email, office hours)

  9. Academic Integrity All members of the UMBC community are expected to make a commitment to academic honesty in their own actions and with others. Academic misconduct could result in disciplinary action that may include suspension or dismissal. Here are examples of academic misconduct that are not tolerated at UMBC. • Cheating: Knowingly using or attempting to use unauthorized material, information, or study aids in any academic exercise • Fabrication: Intentional and unauthorized falsification or invention of any information or citation in an academic exercise • Facilitating Academic Dishonesty: Intentionally or knowingly helping or attempting to help another commit an act of academic dishonesty • Plagiarism: Knowingly representing the words or ideas of another as one’s own in any academic exercise, including works of art and computer-generated information/images

  10. Questions • These are some questions for us to think about throughout the course • At best they have subjective answers

  11. Questions • How important is programming to CS? • How important is the choice of language to a programming task? • What’s the best PL? How many should I know? • Why are new PLs constantly being invented? Why should I learn any of them?

  12. Questions • How will evolving computing hardware (cloud computing, quantum computers) change PLs? • How long does it take to master a PL? • What PLs should I know to get the best jobs?

More Related