You are on page 1of 20

Welcome all of you to the ICS-410 Course

I will do my best to let you understand and be


knowledgeable in the “Programming Languages”.
Dr. Tarek Helmy, KFUPM-ICS
ICS 410 “Programming Languages”

Week 1.1

Course Introduction

Dr. Tarek Helmy El-Basuny

Dr. Tarek Helmy, KFUPM-ICS


Outline of Today’s Class

• We will discuss the course outline & some coordination issues.


– My Contact Data,
– Setting the Office Hours,
– Course Information,
– Text-Book & References of the Course,
– Notes for Class Attendance,
– Grading Polices, and Expected-Date of the Midterm Exam,
– Course Contents and Schedule per Weeks # of the semester,
– Collaborative Environment and Active Learning Strategy,
– Course Goals, Objectives and Learning Outcomes,
– Advices: To be A* Student
– Inquiry Based Learning (IBL) method to be used in the course,
– Outline of the Course Topics,
– Knowing more about you and your interest in the course.
Dr. Tarek Helmy, KFUPM-ICS 3
Contact Data and Office Hours

• My email address is: helmy@kfupm.edu.sa,


• My office Location is: Building # 22, Room # 137-3.
• My office Tel. is: 1967.

• Classes will be conducted on: Sunday, Tuesday, and Thursday.


• From 8:00 to 8:50 am, in building # 24, room # 250.

• We will conduct the classes virtually through MS-Teams on the


scheduled class times until physical classes are allowed by the
university, then assigned classrooms will be used.

• Office Hours:
• Sunday, Tuesday, Thursday, from 12:00 am to 1:00 pm, or
• On demand, you may arrange with me for a meeting by email.

Dr. Tarek Helmy, KFUPM-ICS 4


Course Information

• Course Name is: Programming Languages, ICS 410, it is 3


credits (3-0-3).
• It is a single section course.
– Midterm and final Exams will be conducted at Campus.
– There are theoretical assignments with a weight of 10% of the
course grade.
– In the assignments, you will practice selective exercises and
practical assignments of the programming languages from
the text book.
• Pre-requisite Course:
– ICS 202 (Data Structures) or equivalent
• Pre-requisites by Topics:
– Fundamentals of C programming,
– Algorithms and Problem-Solving,

Dr. Tarek Helmy, KFUPM-ICS 5


References of the Course

 Main Text Book: Concepts of Programming Languages, 10th or 11th or


12th Edition, Robert W. Sebesta, 2012, or 2017 or 2019.

 Topics presented in the classes should be your main reference.


 We may elaborate more on some topics than what is there in the text
book.
 Text book exercises are very important for quizzes and exams.
 Reading more information from other books and Websites is
recommended.

Dr. Tarek Helmy, KFUPM-ICS 6


Important Notes for Class Attendance

• Attendance will be taken at the end of the class. That will start after
finishing the period of add/drop classes.
• You will have about four absences FREE of charge.

• Each subsequent absence, up to the ninth absence, is worth -0.5


percentage point of your overall score.

• After ten absences without any excuses, you will automatically


assigned DN grade (According to the University Regulation).
• An unexcused absence will become an excused one ONLY by an
official letter from the Deanship of Students Affair.

Dr. Tarek Helmy, KFUPM-ICS 7


Course Contents & Schedule Per Weeks

Week/s Chapter/s Topic


Course Introduction and Preliminaries of the Programming
1-2 1
Concepts (5 hours).
Imperative Programming Languages & Introduction to C (3
2-3 Slides
hours).
4-5 3 Describing Syntax and Semantics (3 hours)
5-6 4 Lexical and Syntax Analysis (3 hours)
6-7 5 Names, Bindings, Type Checking and Scopes (6 hours)
7-8 6 Data Types (4 hour)
8-9 7 Expressions and the Assignment Statements (4 hours)
9-10 8 Statement-Level Control Structure (4 hours)
10-11 9 Subprograms (3 hours).
11-12 10 Implementing Subprograms (3 hours).
Functional Programming Languages-Introduction to
12-13 15
Scheme/Haskell (4 hours)
14-15 16 Logic Programming - Introduction to Prolog (3 hours).
Dr. Tarek Helmy, KFUPM-ICS 8
Collaborative Environment

• We would like the course to run smoothly and to be enjoyable for you.
– Help each other to understand the fundamentals of programming
languages.
– Be supportive and collaborative with me and with your colleagues.
– Feel free to ask about any ambiguous concepts during the class.

• Feedback, by email or in person, always welcome.


– Feel free to let me know what you find just good or bad about the
course.

• I am really in your side and doing my best to help you.


– Do not miss-interpret the democratic way of interaction.
– I can handle criticism or difference of opinions friendly.
– Your honest course-related feedbacks will be highly appreciated
and implemented.

Dr. Tarek Helmy, KFUPM-ICS 9


Active Learning Strategies
• Passive Learning/Instructor-Centered: The students are passive and just receiving
information and ideas from the instructor. This approach is now obsolete.
• Active/Cooperative Learning/Student-Centered: The students should be involved in
doing, observing, self learning, presenting and giving feedback through:
– Reading the materials before coming to the class.
– Engage in the class and discuss about the presented topics.
• You/Team will be assigned a book chapter to read, and present in the class.
• You will be asked to summarize what we said at the end/beginning of the class.
• You may be asked to answer some questions during the classes.
• As a motivation, a part of the course assessment will be assigned for such activity.
• Moreover, you will be rewarded pounce marks by actively participating and engaging in
the classes through asking or answering questions, this is a chance to make up the
quizzes and exams.
• Your feedback about some issues will be highly appreciated: i.e.
• What kind of questions and topics should be covered in the exams in a way
that we keep the standard quality of learning outcomes.
• Time of the exams and quizzes.

Dr. Tarek Helmy, KFUPM-ICS 10


Grading Polices with Details

 Theoretical Exercises and Assignments (most of them will be 10 %


from the text book exercises) will be posted through the BB account.
 You need to monitor the posting and due dates of each assignment.
 Notifications/emails will be sent after posting each assignment.
 Handwriting of your solution will be favored.
 No late submission will be accepted.
• Active Learning by presenting certain Chapter/Topics. 15 %

 Quizzes; Three and we may have 4 quizzes and select the best 15 %
three (Attendance & active class discussion can make up your
performance in quizzes).
 Physical Midterm-Exam: around Week # 8 or 9. 30 %
• Location, Time and Material TBA in the BB and in the classes.
 Physical Final-Exam: TBA (80% material after Midterm-Exam and 30 %
20% comprehensive)

Dr. Tarek Helmy, KFUPM-ICS 11


The Main Goals of Studying Programming Languages

• To introduce the fundamental constructs of modern


Programming Languages (PL).

• To provide the students with the tools necessary for the critical
evaluation of existing and future PL.

• To prepare the students for the study of compiler design, by


providing an in-depth discussion of PL structures, formal
methods of describing syntax, and introducing approaches to
lexical and syntactic analysis.

Dr. Tarek Helmy, KFUPM-ICS 12


Course Objectives & Learning Outcomes

• Course Objectives: The objective of this course is to introduce:


– The basic issues in the design & implementation of programming
languages (PLs).
– The syntax and semantics specifications of PLs.
– Programming Languages design trade-offs.
– The major programming paradigms: Object-Oriented, Procedural,
Functional, and Logical.

• Learning Outcomes: by the end of this course you will be able to:
– Identify various design issues and how they are handled in different
PL paradigms.
– Use formal tools like Backus-Naur Form (BNF), Extended BNF
(EBNF), attribute grammars, operational semantics, etc. to model
syntax and semantics of PLs.
– Write programs in functional, logic, and imperative PLs.
– Apply various PL concepts, such as parameter passing and variable
scope.
Dr. Tarek Helmy, KFUPM-ICS 13
Advices: To be A* Student

• Try to skim the slides/book chapter of the class before


attending it.

• Attend the classes with concentration, engagement, and


ask about any unclear concepts.

• Try to understand everything, not to memorize it.

• Try to practice and solve exercises/assignments by


yourself.

• Prepare yourself well for quizzes and exams.

• Adhere to the instructions we say during the classes.

Dr. Tarek Helmy, KFUPM-ICS 14


Inquiry Based Learning (IBL)

• As you know that KFUPM would like to move towards promoting


the use of Inquiry Based Learning (IBL) instructional methods as
"novel teaching methods”.
• As an initiative, I am going to apply new learning methods through
the ICS 410 classes as followings.
– Getting students to practice self-reading and studying the
textbook’s chapters on their own.
– Helping students to use their textbooks more effectively as
many students are poor readers and don’t know how to extract
key information from the textbook.
– Improve the self-learning through developing the reading skills.
– This results in students having a deeper understanding of key
concepts and makes it easier for them to integrate those
concepts into real-world problems.
– Improve the communication skills through presenting the topics
to the classmates.
Dr. Tarek Helmy, KFUPM-ICS 15
Inquiry Based Learning (IBL)

• As a part of the course assessment, students will be


involved in designing the course material so that students
can’t do well without reading the book chapters as
following.
– A group of 2~3 will be assigned a book chapter to
present. It requires students to do more than just
passively read to book chapter.
– The assignments must be structured so that students
will be in charge of reading the book chapter about a
certain topic, prepare the PPT slides, present it to the
classmates, engage and respond to the questions
while presenting the topics.

Dr. Tarek Helmy, KFUPM-ICS 16


Outline of the Course Topics

• Chapter 1 begins with a rationale for studying Programming


Languages (PL).
• It discusses the criteria used for evaluating PL and language
constructs.
• It examines the primary influences on language design,
common design tradeoffs, and the basic approaches to
implementation.
• Chapter 2: self-study and will not be covered in the assessment.
• It outlines the evolution of the PL.
• It provides the background necessary to understanding the
practical and theoretical basis for PL design.
• Since Chapter 2 will not be covered, instead we will introduce
the basics of imperative programming using the C PL.
• Chapter 3 describes the primary formal method for describing the
syntax of PL (Backus-Naur Form (BNF)).
• Chapter 4 introduces lexical and syntax analysis of PL.
Dr. Tarek Helmy, KFUPM-ICS 17
Outline of the Course Topics

 Chapter 5 covers many characteristics of variables in PLs.


 Chapter 6 covers different data types in PLs.
 Chapter 7 explains expressions and assignment statements in PLs.
 Chapter 8 describes control statements in PLs.
 Chapters 9 & 10 discuss subprograms implementation in PLs.
 Chapter 11 examines data abstraction facilities in PLs.
 Chapter 12 provides an in-depth discussion of PLs features that support
OOP (inheritance and dynamic method binding).
 Chapter 13 discusses concurrent program units in PLs.
 Chapter 14 is about exception and event handling in PLs.
 Chapters 11~14 will not be introduced in the undergrad level but will
be introduced in the advanced PLs course at the graduate level)
 Chapter 15 introduces the Scheme, including descriptions of some of its
primitive functions, special forms, and functional forms, as well as some
examples of simple functions written in Scheme.
 Chapter 16 introduces logic programming and Prolog as a logic
programming language.
Dr. Tarek Helmy, KFUPM-ICS 18
Let me hear from you

• Before getting into the course details, let me know!

• What do you recommend for us to run the course in an


enjoyable way?
• Why do you take this course? !!!!

• What do you expect to learn in this course?

• Are you ready for active learning environment?

Dr. Tarek Helmy, KFUPM-ICS 19


The End!!

Thank you

Any Questions?

Dr. Tarek Helmy, KFUPM-ICS 20

You might also like