Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Programming Languages Course: CSC326, Lecture notes of Programming Languages

The lecture notes for the first session of the csc326 programming languages course at the university of toronto. It covers the agenda, goals, and paradigms of programming languages, as well as the course methodology and administration. The lecture notes also provide an overview of the history of programming languages and the main concepts of imperative and functional programming paradigms.

What you will learn

  • What is the role of Python in the CSC326 Programming Languages course?
  • What is the focus of the CSC326 Programming Languages course?
  • What programming paradigms are covered in the CSC326 Programming Languages course?

Typology: Lecture notes

2017/2018

Uploaded on 12/22/2018

nousespam
nousespam 🇨🇦

4 documents

1 / 8

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CSC326 Programming Languages (Lec
1) i
CSC326 Programming Languages (Lec 1)
pf3
pf4
pf5
pf8

Partial preview of the text

Download Programming Languages Course: CSC326 and more Lecture notes Programming Languages in PDF only on Docsity!

i

CSC326 Programming Languages (Lec 1)

ii

REVISION HISTORY

NUMBER DATE DESCRIPTION NAME

1.0 2011-09 JZ

1 / 5

1 Agenda

  • Course Objective
  • History of Programming Languages
  • Paradigm of Programming Languages
  • Course Methodology

2 Goal

  • Paradigms
    • Aware
    • Use
    • Appreciate: Why use
    • Criticize: Why not use
  • Batteries
    • Strength of PL decided by its ecosystem
    • Master key libraries
    • Learn how to search, mine and use new libraries
  • Web
    • Software are migrating to web/cloud
    • Success depends on how fast one could code: productivity
    • Drive the learning by web programming
      1. Case studies
      2. Projects

3 What’s PL

A language is intended for use by a person to express a process by which a computer can solve a problem.

a set of conventions for communication an algorithm.

The art of programming is the art of organizing complexity.

4 PL History

  • Machine language
    • register transfers
    • encoded in binary
  • Assembly language
    • one to one mapping to macine language
    • mnemonic for readibility

2 / 5

The main idea is to treat a program as a piece of literature, addressed to human being rather than to a computer.

  • Plethora of languages
    • Way too many, and being invented each day
    • Few survived
    • Few is still many
  • Traits of successful languages
    • Intuitive
    • Expressive
    • Efficient
    • Wide deployment (free helps)

5 PL Paradigms

5.1 Imperiative

  • model of Von Nuemann machine

4 / 5

5.3 And Many More

  • Object-based/oriented
  • Aspect-oriented
  • Event-based
  • Message-passing
  • Concurrent
  • Parallel

6 Course Methodology

  • Use a single, but multiparadigm language
    • Python
    • Very popular
    • Well designed

TIOBE Programming Community Index

. Java . C . C++ . C# . PHP . Objective-C . (Visual) Basic . Python . Perl . JavaScript

  • Content
    • Imperative paradigm
    • OO programming paradigm
    • Meta programming (aspect paradigm)
    • Functional programming paradigm
    • Concurrent programming paradigm
  • Case studies
    • With emphasis on web
    • Batteries for web programming
    • Prepare you for an ambitious project
      1. How google works
      2. How twitter works
      3. And more
  • Project
    • Step 1: Watch "the social network"

5 / 5

  • Step 2: Brainstorming ideas on web service
  • Step 3: Submit proposal to TA
  • Step 4: Architect
  • Step 5: Do it
  • Step 6: Demo
  • Step 7: Next Facebook?
  • Two awards:
  • CSC326 Best Idea Award
  • CSC326 Best Code Award

7 Administration

  • Web: http://www.eecg.toronto.edu/~jzhu/csc
  • Forum:
  • Tutorial: — Biweekley — Problem set and project
  • Grade
    • Final: 40%
    • Project: 20%
    • Midterm: 20%
    • Homework:20% (4)
    • Bonus: 10%