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

010X Time: 12:30pm - 1:45pm

020X Time: 2:00pm - 3:15pm

Notes will be released along with slides

Assignments
  • Exams (in-person)
  • Projects
  • Discussions
  • Lecture Quizzes
  • Quizzes
Assignments
  • Exams (in-person)
    • October 8
    • November 5
  • Projects
  • Discussions
  • Lecture Quizzes
  • Quizzes
Assignments
  • Exams (in-person)
  • Projects
    • 7 of them
    • Submit on Gradescope
    • Use Github
  • Discussions
  • Lecture Quizzes
  • Quizzes
Assignments
  • Exams (in-person)
  • Projects
  • Discussions
    • Coding exercises
    • Written exercises
    • Project implementation
    • ungraded
  • Lecture Quizzes
  • Quizzes
Assignments
  • Exams (in-person)
  • Projects
  • Discussions
  • Lecture Quizzes
    • Weekly
    • Every Friday Night to Sunday Night
    • Online
    • Multiple Guess
    • 20% dropped
  • Quizzes
Assignments
  • Exams (in-person)
  • Projects
  • Discussions
  • Lecture Quizzes
  • Quizzes
    • 4 Quizzes
    • Sept 13, Spet 27, Oct 25, Nov 22
    • In Discussion
Office Hours
  • Cliff: in person (IRB2238)
  • TA: IRB2136 (Open area end of 2nd floor)
Extensions and Absences
  • Can submit 24 hours late for a 10% penalty
  • You have three (3) 24-hour token 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
  • Makeup Policy

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

Sit on it

Feel Emotions

Expect to get things wrong