Skip to main content
nounstudy
CIT332

Survey of Programming Languages

  • Sciences
  • 300 level
  • 4 credit units
  • 146 pages
  • 15 units

This course provides a survey of programming languages, exploring their evolution, concepts, and application domains. It covers fundamental syntactic and semantic concepts underlying modern programming languages such as C/C++, C#, Java, Python, LISP, PERL, ALGOL, and PROLOG. Students will learn about language description, evolution of programming language levels, and language comparison, enhancing their ability to choose appropriate languages for different tasks.

About this course

Difficulty
Intermediate
Study hours
156 hours
Maths
Basic
Content
Theoretical, case study
Practical work
No
Before you start
  • Basic programming knowledge
  • Data structures and algorithms
How it is assessed
  • Assignments
  • Tutor Marked Assignments
  • Final Examination

One paragraph, so you can see how it reads

CIT332 · UNIT 1: HISTORY OF PROGRAMMING LANGUAGES

Now, let's go back and try to understand a computer program, which is a sequence of instructions written in a Computer Language to perform a specified task by the computer. Following is a simple program written in Python Programming Language − print "Hello, World!"

What you should be able to do

  1. Demonstrate understanding of programming language paradigms
  2. Explain the principles of syntax and semantics
  3. Compare and contrast different programming languages
  4. Evaluate the design and implementation of programming languages
  5. Apply programming language concepts to solve problems

What it prepares you for

Careers
  • Software Developer
  • Systems Analyst
  • Compiler Designer
  • Programming Language Researcher
  • Software Engineer
Where it is applied
  • Software Development
  • Artificial Intelligence
  • Web Development
  • Systems Programming
  • Compiler Design
Tools
  • C/C++
  • C#
  • Java
  • Python
  • LISP
  • PERL
  • ALGOL
  • PROLOG

Where it gets hard

The units students slow down on, and what makes each one heavy.

  • Module 3: Language Description

    Unit 3: Formal Language and Grammars

    Understanding the nuances of formal grammars and their application in parsing requires a strong foundation in discrete mathematics and formal language theory.

  • Module 4: Evolution of Programming Language Levels

    Unit 2: Evolution of Different Languages

    LISP's unique syntax and functional programming paradigm can be challenging for students accustomed to imperative languages.

A suggested way through it

Suggested

13 weeks, about 96 hours in total. Yours will differ.

  1. Week 1Module 1: Concept of Programming Languages
    • Unit 1: History of Programming Languages · 4 hours

      Understand the history of programming languages. Differentiate between different generations of programming languages. Describe the characteristics of each generation.

    • Unit 2: Reasons for Studying Concepts of Programming Language · 4 hours

      Identify reasons for studying programming language concepts. Discuss the importance of expressing ideas and algorithms effectively. Explain how studying language concepts improves language selection.

  2. Week 2Module 1: Concept of Programming Languages
    • Unit 3: Application Domains · 4 hours

      Explore different application domains of programming languages. Identify languages suitable for scientific applications. Discuss languages used in data processing and AI.

    • Unit 4: Criteria for Language Evaluation · 4 hours

      Analyze criteria for language evaluation. Discuss expressivity, well-definedness, and readability. Evaluate the tradeoffs in language design.

  3. Week 3Module 2: Influence of Language Design
    • Unit 1: Computer Architecture · 4 hours

      Understand the influence of computer architecture on language design. Explain the Von Neumann architecture. Describe the Fetch-Decode-Execute cycle.

    • Unit 2: Language Paradigms · 4 hours

      Discuss different language paradigms. Compare imperative, functional, and object-oriented paradigms. Explain the characteristics of each paradigm.

  4. Week 4Module 2: Influence of Language Design
    • Unit 3: Language Design Trade-offs · 4 hours

      Analyze language design trade-offs. Discuss reliability, expandability, and programmability. Evaluate the trade-offs in language design.

    • Unit 4: Implementation Method · 4 hours

      Explore different implementation methods. Compare compilation, interpretation, and hybrid approaches. Discuss the advantages and disadvantages of each method.

  5. Week 5Module 3: Language Description
    • Unit 1: Fundamental Syntactic Analysis Concept on Underlying Modern Programming Language · 8 hours

      Understand fundamental syntactic analysis concepts. Explain language recognizers and generators. Discuss parsing and parse trees.

  6. Week 6Module 3: Language Description
    • Unit 2: Fundamental Semantic Analysis Concept on Underlying Modern Programming Language · 8 hours

      Understand fundamental semantic analysis concepts. Explain operational, denotational, and axiomatic semantics. Discuss static and dynamic semantics.

  7. Week 7Module 3: Language Description
    • Unit 3: Formal Language and Grammars · 8 hours

      Understand formal languages and grammars. Explain the syntax of grammars. Discuss Noam Chomsky and John Backus.

  8. Week 8Module 3: Language Description
    • Unit 4: The Basic Elements of Programming Language · 8 hours

      Explore the basic elements of programming languages. Discuss primitive data types and expressions. Explain control structures and subroutines.

  9. Week 9Module 4: Evolution of Programming Language Levels
    • Unit 1: Brief History on Level of Programming Languages · 8 hours

      Understand the brief history of programming language levels. Explain low-level, middle-level, and high-level languages. Discuss the differences between low-level and high-level languages.

  10. Week 10Module 4: Evolution of Programming Language Levels
    • Unit 2: Evolution of Different Languages · 4 hours

      Explore C/C++ languages. Discuss C/C++ program structure and features. Understand the evolution of C/C++.

  11. Week 11Module 4: Evolution of Programming Language Levels
    • Unit 2: Evolution of Different Languages · 4 hours

      Explore C#, Java, Python, LISP, PERL, ALGOL, and PROLOG. Discuss program structure and features of each language. Understand the evolution of these languages.

  12. Week 12Module 4: Evolution of Programming Language Levels
    • Unit 3: Language Evaluation and Comparison · 8 hours

      Understand language evaluation and comparison. Discuss criteria for a good programming language. Compare and contrast different programming languages.

  13. Week 13Module 4: Evolution of Programming Language Levels
    • Unit 3: Language Evaluation and Comparison · 8 hours

      Review all course materials. Work on assignments. Prepare for final examination.

Preparing for the exam

What to do
  • Review all tutor-marked assignments (TMAs)
  • Focus on understanding the core concepts of each programming paradigm
  • Practice writing code in different languages
  • Create concept maps linking syntax, semantics, and implementation
  • Study language evaluation criteria and compare different languages

Questions students ask about this course

What is CIT332 about?

This course provides a survey of programming languages, exploring their evolution, concepts, and application domains. It covers fundamental syntactic and semantic concepts underlying modern programming languages such as C/C++, C#, Java, Python, LISP, PERL, ALGOL, and PROLOG. Students will learn about language description, evolution of programming language levels, and language comparison, enhancing their ability to choose appropriate languages for different tasks.

How many units does CIT332 have?

CIT332, Survey of Programming Languages, has 15 units across 4 modules, over 146 pages of course material. You can read it one unit at a time.

How many credit units is CIT332?

CIT332 carries 4 credit units, at 300 level in Sciences.

Is CIT332 hard?

CIT332 is rated intermediate level, with basic mathematical content. It is mostly theoretical and case study work.

How long does CIT332 take to study?

About 156 hours of study, spread across its 15 units.

How is CIT332 assessed?

CIT332 is assessed by Assignments, Tutor Marked Assignments and Final Examination.

What do I need before starting CIT332?

Basic programming knowledge Data structures and algorithms

What can I do with CIT332?

Software Developer, Systems Analyst, Compiler Designer, Programming Language Researcher and Software Engineer.

More courses in Sciences

ESM322

Water And Waste Water Management

2 credit units

Open ESM322
DAM382

Information Systems Management

3 credit units

Open DAM382
BIO309

Plant Breeding

1 credit unit

Open BIO309