Mastery of college algebra. Intermediate Java programming in CS 111.
Upon successful completion of this course, students will understand the imperative paradigm (viz. procedural languages), declarative paradigm (viz. functional and logical languages), structured paradigm (viz. block and object-orientation), context-free grammars, Backus-Naur form, syntax derivations, operational semantics, denotational semantics, axiomatic semantics, finite-state automata, regular expressions, recursive descent parsers, language translation, declarations, expressions, assignments, data types, control structures, procedures, and abstract data types. Students will be able to identify these concepts in different languages and apply them to practical tasks.
The required text is Concepts of Programming Languages 11th Edition by Robert Sebesta
ISBN 978-0-13-394302-3 for reading, reference, and assignment. The older 10th edition
ISBN 978-0-13-139531-2 is acceptable. Because most of the out-of-class work will be completed in teams, it is reasonable for team members to share a copy or two as long as everyone has equal access.