Programming Languages- MSIT 5216
There is tremendous diversity when it comes to computer languages. New languages are created to solve new computing problems. This course covers the basic concepts and design tradeoffs of programming languages. We will examine the different types of languages, their properties, and their uses. We will also look at the history of programming and how computer languages operate to interact with computers and manipulate data.
Learning Objectives and Outcomes:
By the end of this course students will be able to:
- Compare and contrast all paradigms of programming languages based on current research.
- Connect best practices to construct a programming language prototype that can be utilized and conform to industry standards.
- Defend the use of certain languages over other languages of similar paradigm(s) based on organizational needs.
- Evaluate the basic requirements for effective programming language design.
- Analyze the limitations of programming languages from an ethical and historical perspective.
Course Schedule and Topics
This course will cover the following topics in eight learning sessions, with one Unit per week.
Week 1: Unit 1 – Programming Language Introduction
Week 2: Unit 2 – Building the Programming Foundation
Week 3: Unit 3 – Functions
Week 4: Unit 4 – Variable, Objects, and Mutation
Week 5: Unit 5 – Memory, Errors, and Design
Week 6: Unit 6 – Control Structures and Type Systems
Week 7: Unit 7 – Evaluation and Lazy Evaluation
Week 8: Unit 8 – Preparation for the Final Project
Learning Guide
The following is an outline of how this course will be conducted, with suggested best practices for students.
Unit 1: Programming Language Introduction
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Programming Assignment 1
- Complete and submit the Programming Assignment
- Complete the Reflective Portfolio Assignment
Unit 2: Building the Programming Foundation
- Peer assess Unit 1 Written Assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Programming Assignment
- Complete the Reflective Portfolio Assignment
Unit 3: Functions
- Peer assess Unit 2 Written Assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Programming Assignment
- Complete the Reflective Portfolio Assignment
Unit 4: Variable, Objects, and Mutation
- Peer assess Unit 3 Written Assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Begin Individual Project Assignment (due in Unit 7)
- Complete and submit the Written Assignment
- Complete the Reflective Portfolio Assignment
Unit 5: Memory, Errors, and Design
- Peer assess Unit 4 Written Assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Written Assignment
- Continue working on the Individual Project Assignment
- Complete the Reflective Portfolio Assignment
Unit 6: Control Structures and Type Systems
- Peer assess Unit 5 Written Assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Written Assignment
- Continue working on the Individual Project Assignment
- Complete the Reflective Portfolio Assignment
Unit 7: Evaluation and Lazy Evaluation
- Peer assess Unit 6 Written Assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete and submit the Written Assignment
- Complete and submit the Individual Project Assignment
- Complete the Reflective Portfolio Assignment
Unit 8: Preparation for the Final Project
- Peer assess Unit 7 Written Assignment
- Read the Learning Guide and Reading Assignments
- Participate in the Discussion Assignment (post, comment, and rate in the Discussion Forum)
- Complete the Reflective Portfolio Assignment
- Complete and submit the anonymous Course Evaluation