CMSC330

Intro

Intro

Course Info
Course Overview
Unwanted Advice

Course Info

Course Info

Purpose

Consider the following

def sum(x):
  res = 0
  for i in range(x+1):
    res = res + i
  return res
          
int sum(int x){
  int res = 0;
  for (int i = 1; i <= x; i ++){
    res += i;
  }
  return res;
}
          
let rec sum x = 
  if x = 0 then 0 
    else x + (sum (x-1))
          
(define (sum x)
  (if (= x 0) 0
    (+ x (sum (- x 1)))))
Purpose

What is a language?

Why is language important?

How do we design a language?

How do we implement a language?

Is [->+<] a sentence?

Class Times

Time: 010x: 11:00 - 12:15, 020x: 12:30 - 1:45

Notes will be released along with slides

Assignments
  • Exams (in-person)
  • Projects
  • Discussions
  • Quizzes
  • Lecture Quizzes (online)
Assignments
  • Exams (in-person)
    • Oct 5
    • Nov 9
  • Projects
  • Discussions
  • Quizzes
  • Lecture Quizzes (online)
Assignments
  • Exams (in-person)
  • Projects
    • 8 of them
    • Submit on Gradescope
    • Use Github
  • Discussions
  • Quizzes
  • Lecture Quizzes (online)
Assignments
  • Exams (in-person)
  • Projects
  • Discussions
    • Coding exercises
    • Project implementation
    • Ungraded
  • Quizzes
  • Lecture Quizzes (online)
Assignments
  • Exams (in-person)
  • Projects
  • Discussions
  • Quizzes
    • 4 Quizzes
    • Dates: 9/15,9/29,10/27,12/8
  • Lecture Quizzes (online)
Office Hours
  • Cliff: in person (IRB2238)
  • TA: IRB1107 (Open area near advising)
Extensions and Absences
  • Can submit 24 hours late for a 10% penalty
  • Can submit 48 hours late for a 20% penalty
  • Can submit 72 hours late for a 30% penalty
  • You have five (5) 12-hour tokens to use on any project
  • Late penalty will not apply if tokens used
  • Any university sick excuse is exempt from this: contact me
  • Communication is key: reach out, be reasonable

Course Info

Syllabus

Common things people miss on syllabus

  • Token use
  • Good Faith Attempt
  • email: [CMSC330]
  • Office Hour Debugging
  • Excused Absences

Course Overview

Programming languages are like spoken languages

  • What is a Language?
  • How do we use Language?
  • Why do so many languages exist?

Why do so many languages exist?

  • Language Features help us express ourselves
  • Semantics and Syntax

End Goal

  • Make your own programming language
  • Combine elements from one language to another

Unwanted Advice

Ask Questions

Make Friends

Start Projects Early

Feel Emotions

Expect to get things wrong