- 1 CS 3123 Programming Languages
- 2 Instructor
- 3 Course Description
- 4 Materials
- 5 Course Policies
- 6 See Also
CS 3123 Programming Languages
Section 001 Spring 2020
|Dr. Jeff Jenness|
|Office||CSM 132||Office Hours||TR 11:00am-12:00pm and MW 11:00pm-12:00pm|
|Phone||870-972-3978 ext. firstname.lastname@example.org|
- CS 3123. Programming Languages
- Survey of organization and behavior of programming languages. Examination of data typing, control structures, syntactic representation and specification. Prerequisites: CS 2124. Spring.
The student will learn the syntax, semantics, structures and paradigms of modern programming languages. The student will be able to understand and use several programming languages in different paradigms.
Program Specific Outcomes
- (Emphasized) Graduates of the B.S./B.A. Computer Science degree program attain the ability to apply knowledge of computing and mathematics appropriate to the discipline.
- (Emphasized) Graduates of the B.S./B.A. Computer Science degree program attain recognition of the need for and an ability to engage in continuing professional development.
Course Specific Outcomes
- Students will be able to understand and use syntax descriptions using EBNF grammars.
- Students will be able to understand and describe the levels of syntax analysis used in translation.
- Students will be able to understand and describe the use of variable names, binding, and scope.
- Students will be able to understand and describe the use of data typing in programming languages.
- Students will be able to understand and describe the syntax and use of expressions and statements.
- Students will be able to understand and describe the use of subprograms and modules in languages.
- Students will be able to understand, describe and use a language in the imperative paradigm.
- Students will be able to understand, describe and use a language in the object-oriented paradigm.
- Students will be able to understand, describe and use a language in the functional paradigm.
- Students will be able to understand, describe and use a language in the logical paradigm.
Grades are assigned on a standard scale with the following weights:
Tests 45% Final 25% Homework 30%
(subject to change)
|1||Introduction and History||Chapter 1 & 2||Chap 1: Review Q - 1,2,7,8,13,14,15,17,23; Prob Set - 1,2,3,4,8,12 (view chapter 1 problems)
Chap 2: Review Q - 3,7,12,15,18,25,26,27,30,31,35,43,44,45,51,57,59 (view chapter 2 problems)
|2||Language Snapshot:||C#||view chapter 12 problems)|
|3||Syntax and Analysis||Chapter 3 & 4||Chap 3: Review Q - 1,4,6,7,8,11,12,15,16,18,28; Prob Set - 3,5,6,7,8,10,11,12,15,20 (view chapter 3 problems)
Chap 4: Review Q - 1,2,3,4,7,8,9,10,13,14; Prob Set - 4 (view chapter 4 problems)
|4||Variables||Chapter 5||Chap 5: Review Q - 1,3,4,5,6,7,8,9,10,11,12,13,15,18,20,21,22; Prob Set - 2,3,4,6,7,10,12 (view chapter 5 problems)|
|6||Types||Chapter 6||Chap 6: Review Q - 1,2,3,4,5,6,7,9,10,11,13,17,18,21,23,27,29,31,32,35,36,39,40,41,43,44,47,49,51; Prob Set - 1,4,5,8,9,13,14,20,21 (view chapter 6 problems)|
|7||Expressions||Chapter 7||Chap 7: Review Q - 1,4,5,7,8,9,11,12,13,15,16,17,18,21,23,24,27; Prob Set - 1,2,3,4,7,8,9,11,15,19,20,21 (view chapter 7 problems)|
|8||Language Snapshot:||F#||view chapter 15 problems)|
|9||Statements||Chapter 8||Chap 8: Review Q - 1,3,4,5,6,9,11,12,13,14,15,18,20,23,28 (view chapter 8 problems)|
|10||Subprograms||Chapter 9 & 10|
|13||Advanced facilities||Chapter 13 & 14|
Dates to Remember
- Final Examination: May 7, 10:15am-12:15pm, CSM 211.
- Programming Languages Report: list of requirements for your report
- For programming homework, check the syllabus schedule.
- Chapter 2
- Computer Languages History A website that has lots of interesting information on programming language history along with a nice timeline chart.
- Plankalkül Information on Konrad Zuse's Plankalkül, considered to be the first programming language.
- John Backus - the Father of Fortran A short article that gives some more history at i-Programmer.
- Chapter 3
- Extended Backus Naur form A Wikipedia article introducing the standardized form of EBNF.
- Chapter 5
- Naming convention (programming) This Wikipedia article discusses naming conventions for many languages.
- Go here for course supplements.
- Ruby: the official website has installation instructions for all major platforms.
- C#: download Visual Studio 2013 Express for Windows or the Mono Project for Mac OS X and Linux. MSDN also has some good C# resources.
- Haskell: the official website has up-to-date information about Haskell implementations for all major platforms. Hugs is a portable REPL interpreter.
- PROLOG: Download SWI-PROLOG. It has excellent support and a debugger built-in. The reference manual is a good place to start.
See: Department Policies
- repl.it repl.it Online execution environment for many programming langauges. Great learning tool.
- compileonline.com www.compileonline.com Another excellent execution environment for even more langauges from CodingGround.
- Computer Language History www.levenez.com/lang A timeline of the most important developments in programming languages.