0% found this document useful (0 votes)
32 views3 pages

CSE 425 Course Outline - Spring 2019

This document outlines the course details for CSE 425: Concepts of Programming Language to be taught in the spring 2019 semester at North South University. The course will be taught by Dr. Md. Mahfuzur Rahman and will cover fundamental programming language concepts including programming paradigms, language design and evolution, syntax, semantics, and specific languages like functional, logic, and object-oriented programming. The course will be 3 credits and have assignments, quizzes, a midterm and final exam for assessment.

Uploaded by

Prince Deb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views3 pages

CSE 425 Course Outline - Spring 2019

This document outlines the course details for CSE 425: Concepts of Programming Language to be taught in the spring 2019 semester at North South University. The course will be taught by Dr. Md. Mahfuzur Rahman and will cover fundamental programming language concepts including programming paradigms, language design and evolution, syntax, semantics, and specific languages like functional, logic, and object-oriented programming. The course will be 3 credits and have assignments, quizzes, a midterm and final exam for assessment.

Uploaded by

Prince Deb
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Department of Electrical and Computer Engineering

North South University (NSU)

Course Outline – Spring 2019


CSE 425: Concepts of Programming Language

Instructor: Dr. Md. Mahfuzur Rahman, Assistant Professor, ECE Department, NSU
Office Location: SAC 1044A
Office Hours: S : 11:45 - 12:45, M : 10:15 - 11:15 & 3:00 - 7:00,
T : 11:45 - 12:45, W : 10:15 - 11:15
Email Address: mahfuzur.rahman05@[Link]
Course Summary:
This course covers the fundamental concepts of different programming languages by
discussing the design issues of the various language constructs, examining the design
choices for this construction in some of the most common languages, and critically
comparing language design alternatives. Specifically, the course covers – Programming
Paradigm and Language Categories, Language Design & Evolutions, Syntax &
Semantics, Lexical & Syntax analyzers, Names, Scopes & Bindings, Datatypes & Type
checking, abstract data types, Statements & Expressions, Subprograms, Object-Oriented
Programming, Concurrency, Exception Handling, Functional and Logic programming
languages [Link]. Concept of object orientation as a data abstraction technique will
be introduced.
Course Objectives: The objectives of this course are to
a. illustrate the programming paradigms, principles, fundamental concepts and
techniques involved in design and implementation of major programming languages
b. elaborate key programming concepts of major imperative, declarative, and object-
oriented programming languages, their merits and limitations
c. familiarize , concurrency control, and exception handling
d. demonstrate key concepts of functional and logic programming languages, their
purpose and applications

Course Credit: 3 credits

Pre-Requisites: CSE 225: Data Structures and Algorithms

Textbook: Programming Languages: Principles and Practices by Kenneth C. Louden and


Kenneth A. Lambert, Course Technology, Cengage Learning, 2012 (3rd Edition).

Reference Text & Materials:


• Concepts of Programming Languages by Robert W Sebesta, Pearson (10th edition)
• Comparative Programming Languages by Leslie Wilson, Robert, Addison-Wisley
• Additional reading materials will be provided and uploaded in the course website
Class Schedule
There will be three classes per week following NSU Academic Calendar. Three classes in
each week will be completed with two meetings. Each class meeting will be for 90
minutes.
Contents Overview:
The course material is divided into seven units where each unit consists of a series of
learning activities including attending classes, reading from class notes and textbook,
programming practices, and completion of works for evaluation.
Unit Topic(s) Week(s) Related Works
1 Language Design Criteria 2
Quiz 1, 2
2 Functional Programming 2
Assignment 1, 2
3 Logic Programming 2
Mid Exam
4 Syntax and Basic Semantics 2
5 Object Oriented Programming 2 Quiz 3, 4
6 Modern Programming Languages 1 Assignment 3
7 Parallel Programming 1
Final Exam

Assessment Scheme:
Assessment Tools Weightage (%)
Class Performance 10%
Quizzes (best 3) 15%
Assignments 15%
Midterm 30%
Final Exam 30%
Total 100%

Class performance: Asking questions, taking part in discussions, and so on.

Exams and Quizzes: Exams and quizzes will be closed book and closed notes. No electronic
devices except non-programmable calculators will be allowed during exams. Calculators cannot
be shared with friends. There will be no makeup quizzes or exams. If you miss a quiz or exam,
you will get zero for that. Final exam will be comprehensive.

Assignments: There will be several home works/ assignments throughout the semester No late
submission will be accepted. To be successful in the exam, you should solve assignment
problems independently, although you may discuss with your friends to understand a more
comprehensive picture of the problems.

Grading Scheme

Scores (in %) Letter Grade Grade Points


93 & above A Excellent 4.0
90 to <93 A- 3.7
87 to <90 B+ 3.3
83 to <87 B Good 3.0
80 to <83 B- 2.7
77 to <80 C+ 2.3
73 to <77 C Average 2.0
70 to <73 C- 1.7
67 to <70 D+ 1.3
60 to <67 D Poor 1.0
00 to <60 F* 0.0
I** Incomplete 0.0
W** Withdrawal 0.0
R** Retaken 0.0

Class etiquette: Distracting others in class is violating others rights to be attentive. So, laptop,
tablets, cell phones or any other devices cannot be turned on during class time. You have to
share any talk with the whole class. Attendance will be counted at the beginning of the class and
if you are late then no late attendance will be counted.

Grade dispute: If you dispute your grade on any homework, quiz or exam, you have one-week
time (from the date that the graded paper was returned to you) to request a change in the grade.
After this time, no further change in grade will be considered.

Academic dishonesty: Any means of unauthorized assistance in preparing materials, which a


student submits as own work, is deemed to be cheating and constitutes grounds for disciplinary
action. Instructors are expected to use reasonably practical means of preventing and detecting
cheating. Any student judged to have engaged in cheating might receive a reduced grade for the
work in question, a failing grade in the course, or such other lesser penalty, as the instructor
deems appropriate. Serious instances may be referred to the Disciplinary Committee of NSU.

Common questions

Powered by AI

The course structure enhances problem-solving skills and programming proficiency by systematically covering diverse programming paradigms and language concepts including imperative, declarative, object-oriented, functional, and logic programming . These paradigms provide students with multiple frameworks to approach coding challenges, promoting critical thinking and adaptability. Course components like Syntax & Semantics, Concurrency, and Exception Handling focus on understanding the mechanics behind programming languages, which is crucial for solving complex programming problems efficiently. The combination of theoretical understanding and practical programming assignments ensures students apply learned concepts in realistic settings, thereby refining their programming proficiency .

The course enforces ethical academic conduct through several measures. Unauthorized assistance in preparing submitted materials constitutes cheating, and students involved might face disciplinary actions ranging from reduced grades to failing the course depending on the instructor's discretion, or referral to the Disciplinary Committee for severe cases . Additionally, instructors employ practical means to prevent and detect cheating, while students are also required to independently solve assignment problems without unauthorized aid, though they can discuss to gain a better understanding . This framework aims to instill responsibility and integrity in students while protecting the fairness of academic assessments.

A comprehensive final exam in the "Concepts of Programming Language" course serves several important functions. It synthesizes the cumulative knowledge and skills acquired throughout the course duration, challenging students to integrate varied concepts and applications seamlessly . This format tests overall understanding of major course themes like programming paradigms and language constructs, ensuring students have achieved learning objectives comprehensively. Additionally, a comprehensive exam reinforces long-term retention of knowledge by encouraging students to review all content rather than focusing narrowly on recent topics, thereby solidifying their command over the subject matter .

To excel in assignments and exams, students are encouraged to independently solve assignment problems while availing discussions with peers to develop a comprehensive understanding of concepts . This encourages peer learning and a deeper grasp of complex material. Active participation in class, timely understanding of course readings, frequent practice, and review of past quizzes and assignments are strategies for success. Since exams are closed book and closed notes, critical understanding and long-term retention of course content are vital . Practice with programmable calculators ahead of assessments is also recommended to avoid last-minute difficulties .

The course uses textbooks such as "Programming Languages: Principles and Practices" and "Concepts of Programming Languages" as primary resources to support learning objectives. These texts provide comprehensive coverage of fundamental concepts, design issues, and language paradigms . The textbook by Kenneth C. Louden and Kenneth A. Lambert is particularly aligned with course topics by offering theoretical and practical insights across various programming languages . Complementing materials like "Comparative Programming Languages" by Leslie Wilson provide additional context and comparative analysis which underpin students' understanding of programming languages' evolution and functioning, thereby reinforcing their learning outcomes .

Key distinctions between programming paradigms discussed in the course include imperative, declarative, object-oriented, functional, and logic programming. Imperative programming focuses on how tasks are performed by the computer through explicit statements, while declarative programming focuses on the outcomes rather than the steps to achieve them. Object-oriented programming (OOP) emphasizes data abstraction and encapsulation using objects and classes. Functional programming treats computation as the evaluation of mathematical functions, avoiding states and mutable data, and logic programming focuses on rules and facts to derive conclusions. These distinctions are crucial as they provide different approaches to problem-solving, catering to various types of problems efficiently and influencing how programmers conceptualize and structure software .

The "Concepts of Programming Language" course offered at North South University comprises several key components including Programming Paradigms, Language Design & Evolutions, Syntax & Semantics, Lexical & Syntax analyzers, Names, Scopes & Bindings, Datatypes & Type checking, abstract data types, Statements & Expressions, Subprograms, Object-Oriented Programming (OOP), Concurrency, Exception Handling, and Functional and Logic programming languages . These components are designed to achieve learning outcomes like illustrating programming paradigms and principles, elaborating on key programming concepts, familiarizing students with concurrency control and exception handling, and demonstrating key concepts of functional and logic programming tied with their practical applications . Each component enriches students' understanding of how different programming languages function in various contexts, promoting a comprehensive view of programming paradigms beyond mere syntax.

The prerequisite for enrolling in the "Concepts of Programming Language" course at NSU is successful completion of CSE 225: Data Structures and Algorithms . This course is critical as it provides foundational knowledge and skills in managing data structures and algorithms, which are essential for understanding complex concepts in programming languages, such as different paradigms, scope rules, and datatype handling. This background equips students with necessary analytical and problem-solving skills imperative for the advanced topics addressed in CSE 425 .

Class etiquette in the "Concepts of Programming Language" course is maintained by prohibiting the use of distracting electronic devices like laptops, tablets, and cell phones during class time—ensuring that students focus on course content and discussions . Any conversation must be shared with the whole class to prevent distractions. Attendance is recorded at the start of the class, and late arrivals are not marked as present. These rules minimize disruptions, create an environment conducive to learning, and uphold respect for others' right to focus and participate in the class actively .

The assessment scheme of the "Concepts of Programming Language" course ensures a balanced evaluation by integrating multiple evaluation components: Class Performance (10%), Quizzes (15% for the best three), Assignments (15%), a Midterm Exam (30%), and a Final Exam (30%). This structure encourages diversified methods of assessment, allowing students to demonstrate understanding through different formats. Class performance accounts for active participation, quizzes focus on comprehension of recent topics, assignments target practical application of concepts, while exams evaluate overall knowledge and understanding through comprehensive testing . This multi-faceted approach supports varied learning styles and reduces overreliance on any single assessment type.

You might also like