Sei sulla pagina 1di 2

Cleveland State University

Department of Electrical Engineering and Computer Science


CIS 524 Comparative Programming Languages
Catalog Description:

CIS 524 Comparative Programming Languages (3-0-3)


Pre-requisite: CIS265
A short history of programming languages and coding styles precedes the
study of a collection of programming paradigms. The major programming
paradigms are surveyed, including procedural, functional, object-oriented,
graphical-user-interface based, and logic programming. The relationships
between syntax, semantics and the compilation process are investigated.
Security-aware languages and emerging applications are explored.

Textbook:

Robert W. Sebesta, Concepts of Programming Languages, AddisonWesley, 11th Edition, 2015

Coordinator:

Prof. Jongman Kim (j.kim43@csuohio.edu)

Class Meetings:
Office Hours:

Tue, Thu 2:00 PM-3:15 PM (FH 202)


Tue, Thu 11:00 AM-01:00 PM (FH 218)

TA:
Office Hours:

AO Xu (a.xu32@vikes.csuohio.edu)
Tue 4:00 PM-6:00 PM (FH 128)

Expected Outcomes:

After taking this course, a student is expected to:


1. Compare and contrast the major paradigms of programming
languages.
2. Understand the methods of describing language syntax and semantics.
3. Be able to implement an interpreter for a simple language.
4. Be familiar with aspects of the object-oriented, functional and
declarative languages.
5. Have the ability to learn new languages and data science issues
6. Improving debugging skills and software engineering

Fulfillment of CS Program Objectives and Outcomes:


Objectives:
1. An ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution
2. An ability to function effectively on teams to accomplish a common
goal
3. An ability to apply math foundations, algorithmic principles, and
computer science theory in the modeling and design of computerbased systems in a way that demonstrates comprehension of the
tradeoffs involved in design choices
4. An ability to apply design and developmental principles in the
construction of software systems of varying complexity
5. Major security vulnerabilities and threats in programming languages
Outcomes:

(a) An ability to apply knowledge of computing and mathematics


appropriate to the programs student outcomes and to the discipline
(b) An ability to analyze a problem, and identify and define the computing
requirements appropriate to its solution
(c) An ability to design, implement, and evaluate a computer-based
system, process, component, or program to meet desired needs
(d) An ability to function effectively on teams to accomplish a common
goal
(e) Recognition of the need for and an ability to engage in continuing
professional development
(f) An ability to use current techniques, skills, and tools necessary for
computing practice
(g) An ability to apply programming to data science issues in data-centric
computing and computation-centric computing domain; Big Data, AI
and etc.
Contribution of Course to Meeting the Professional Component:
Math & Basic Science: 1 credit;
Engineering Topics: 2 credits;
General Education: 0 credit
Prerequisites by Topic:

Data Structures and Algorithms

Topics:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

Introduction to Programming Languages


Describing Syntax and Semantics
Lexical and Syntax Analysis
Names, Bindings, and Scope
Data Types
Expressions and Statements
Subprograms
Abstract Data Types and Encapsulation Constructs
Object-Oriented Programming
Concurrency (OpenCL)
Exception and Event Handling
Functional Languages (ML)
Logic Programming (Prolog)
Secure-aware programming languages
Debugging and software engineering
Emerging applications

Total
Computer Usage:

2
3
3
2
1
2
2
3
5
3
3
4
3
3
3
3
45

C/C++, Java, Python, ML, PHP, C#, OpenCL

Grading:
o 3 to 4 programming assignments and homework. Individual work. No late turn-in accepted.
(35%)
o 2 in-class exams (20%)
o 3-4 person project and presentation (25%)
o Final exam (20%)

Potrebbero piacerti anche