CSE 3341
Transcript Abbreviation:
Prin Prgrmng Langs
Course Description:
Formal languages and grammars; recursive descent parsing; data types, expressions, control structures, parameter passing; compilers and interpreters; memory management; functional programming principles.
Course Levels:
Undergraduate (1000-5000 level)
Designation:
Elective
General Education Course:
(N/A)
Cross-Listings:
(N/A)
Credit Hours (Minimum if “Range”selected):
3.00
Max Credit Hours:
(N/A)
Select if Repeatable:
Off
Maximum Repeatable Credits:
(N/A)
Total Completions Allowed:
(N/A)
Allow Multiple Enrollments in Term:
No
Course Length:
14 weeks (autumn or spring)
12 weeks (summer only)
Off Campus:
Never
Campus Location:
Columbus
Instruction Modes:
In Person (75-100% campus; 0-24% online)
Prerequisites and Co-requisites:
Prereq: 2231, 2331 (680), and 2421, and 3901 (560), 3902, or 3903.
Electronically Enforced:
No
Exclusions:
Not open to students with credit for 5341 (655).
Course Goals / Objectives:
Master using syntax-directed parsing, printing, execution, and compilation for simple imperative language constructs
Master distinguishing between compile-time vs. run-time activities
Be competent with using syntax-related concepts including regular expressions and context-free grammars to describe the structure of languages
Be competent with analyzing programming language design issues related to data types, expressions and control structures, parameter passing
Be competent with principles of object-oriented languages
Be competent with implementing object-oriented languages
Be familiar with memory management techniques for imperative languages, including object-oriented languages
Be familiar with using functional programming languages
Be exposed to analyzing variable bindings and scope rules
Check if concurrence sought:
No
Contact Hours:
Topic | LEC | REC | LAB | LAB Inst |
---|---|---|---|---|
Overview of types of languages; language design and evaluation criteria; implementation methods (compilers and interpreters) | 3.0 | 0.0 | 0.0 | 0 |
Grammars (regular expressions, CFGs), abstract & concrete parse trees; recursive descent parsing; | 6.0 | 0.0 | 0.0 | 0 |
Recursive descent interpretation, compilation; | 3.0 | 0.0 | 0.0 | 0 |
Principles of OO languages (data abstraction, encapsulation, single and multiple inheritance, polymorphism (single and multiple dispatch), etc.) | 7.0 | 0.0 | 0.0 | 0 |
Implementation of imperative languages including OO languages (stack, heap management; activation records etc; runtime dispatch in OO languages) | 10.0 | 0.0 | 0.0 | 0 |
Functional programming principles (Scheme), including some discussion of implementation techniques | 7.0 | 0.0 | 0.0 | 0 |
More advanced ideas (ML types/inferencing, dynamically-typed languages, ...?) | 7.0 | 0.0 | 0.0 | 0 |
Total | 43 | 0 | 0 | 0 |
Grading Plan:
Letter Grade
Course Components:
Lecture
Grade Roster Component:
Lecture
Credit by Exam (EM):
No
Grades Breakdown:
Aspect | Percent |
---|---|
Homeworks | 15% |
Programming projects | 35% |
Midterms, Finals | 50% |
Representative Textbooks and Other Course Materials:
Title | Author | Year |
---|---|---|
Programming language pragmatics | M. Scott |
ABET-CAC Criterion 3 Outcomes:
Outcome | Contribution | Description |
---|---|---|
1 | Significant contribution (7+ hours) | Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. |
2 | Significant contribution (7+ hours) | Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. |
3 | Some contribution (1-2 hours) | Communicate effectively in a variety of professional contexts. |
4 | Substantial contribution (3-6 hours) | Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles |
5 | Some contribution (1-2 hours) | Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline |
6 | Significant contribution (7+ hours) | Apply computer science theory and software development fundamentals to produce computing-based solutions. |
ABET-ETAC Criterion 3 Outcomes:
(N/A)
ABET-EAC Criterion 3 Outcomes:
Outcome | Contribution | Description |
---|---|---|
1 | Significant contribution (7+ hours) | an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics |
2 | Significant contribution (7+ hours) | an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors |
3 | Some contribution (1-2 hours) | an ability to communicate effectively with a range of audiences - pre-2019 EAC SLO (g) |
4 | Substantial contribution (3-6 hours) | an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts |
5 | Some contribution (1-2 hours) | an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives |
6 | Substantial contribution (3-6 hours) | an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions |
7 | Substantial contribution (3-6 hours) | an ability to acquire and apply new knowledge as needed, using appropriate learning strategies |
Embedded Literacies Info:
Attachments:
(N/A)
Additional Notes or Comments:
(N/A)
Basic Course Overview:
CSE_3341_basic.pdf
(10.98 KB)