Programming Languages (CMPSC 201)

Fall 2020

Discussion and Hands-on Work: Alden 101, Tue, Thur 9:35am to 10:50am

Laboratory Session: Alden 101, Tuesdays 3:00pm to 4:50pm

Course Resources:

  • Course Schedule and Readings

  • Course Syllabus

  • Slack Workspace Sign Up

  • Course Google Calendar

  • Instructor Office Hours

    • Course Flow:

      The class members will be broken up into two groups, A and B. Each group will attend one class session in-person and the second class session synchronously online via Zoom each week. All labs will be held online and students are expected to join the lab session via Zoom unless you have discussed your absence(s) with me.

      CMPSC 201 Course Flow

      The description of the course:

      A study of the fundamental concepts that arise in different programming language paradigms. Students learn how programming languages are designed and implemented, and how these factors affect the overall usability, performance, and effectiveness of computer software. Participating in hands-on activities that often require teamwork, students gain experience in leveraging the styles and features of programming languages to implement and evaluate correct and efficient computer software. During a weekly laboratory session, students use state-of-the-art technology to complete projects, reporting on their results through both written documents and oral presentations. Students are invited to use their own departmentally approved laptop in this course; a limited number of laptops are available for use during class and lab sessions.
      Prerequisite: CMPSC 101.
      Distribution Requirements: QR, SP.

      Learning Objectives:

      • 1. Recognize various programming language design and implementation trade-offs.
      • 2. Understand fundamental concepts that underlie programming language syntax and semantics.
      • 3. Use language constructs e ectively to design correct and elegant programs.
      • 4. To continue developing team-working strategies with a diverse range software developers.
      • 5. To enhance ability to write and present ideas about software in a clear, concise, and compelling fashion.