|Home | People | Curriculum | Projects | Resources | Media|
Semester & Year:
Lecture MWF 10:30-11:30 in KINSC H110 (The CS Teaching Lab, Hilles 110);
Lab M 2:00-4:00 or Tuesday 3:00-4:00, KINSC H110,
attendance required unless all current lab work has been submitted.
Midterm and Final exam, weekly programming projects and homeworks,
participation in in-class exercises.
Collaboration: You are encouraged to discuss the lecture material and the weekly labs and problems with other students, subject to the following restriction: your memory should be the only "product" of any discussion about a lab assignment - you may not write up solutions together, or exchange written work or computer files pertaining to labs (except when a lab calls for cooperation, of course).
Collaboration is not allowed on exams.
CMSC 106 (or 206 at Bryn Mawr).
Concurrent enrollment in this and two other CMSC lab courses requires permission of the instructor.
Description: This course will introduce many of the principles of programming language design and implementation. We will discuss numerous features of several programming languages and the algorithms and data structures that are needed to provide these features. Labs and homework will cover both the use of various features and high-level understanding the algorithms and data structures involved in their implementation. CMSC 350, Compiler Design, provides more in-depth information about many of these algorithms and data structures through labs covering their application to a single simple language.
CMSC 245 lectures (and labs) will include examples (and exercises) in C++, the Scheme dialect of Lisp, and HERA assembly language. No prior knowledge of C++, Scheme, HERA is needed for this course, but students should be familiar with the programming techniques from CMSC 105/ 106 (e.g. creation of classes and functions/methods in Python (or some other language), and the pure functional and imperative views of functions and data).
CMSC 245 should include as many of the following topics as we can cover:
The current drafts of the