Schedule

The below table demonstrates a tentative schedule of the course. In case of any change, the information in the table will be updated before the time of the change. Please keep checking this table for up-to-date information.

Week

Day

Date

Session

Topic

Due Date

Written

Programming

1

Sunday

Jan-7

---

---

 

 

Monday

Jan-8

Lec 00

Welcome and Course Introduction

 

 

Tuesday

Jan-9

Lab 01

Setup [handout]

 

 

Wednesday

Jan-10

Lec 01

Contracts [slides]

 

 

Thursday

Jan-11

Rec 01

C0 Basics

 

 

 

 

 

 

 

 

 

2

Sunday

Jan-14

---

---

 

Monday

Jan-15

Lec 02

Integers [slides]

Written 1

 

Tuesday

Jan-16

Lab 02

What's the Point

 

 

Wednesday

Jan-17

Lec 03

Arrays [slides]

 

 

Thursday

Jan-18

Rec 02

A Bit about Bytes

 

 1 - Scavhunt

 

 

 

 

 

 

 

3

Sunday

Jan-21

---

---

 

Monday

Jan-22

Lec 04

Searching Arrays [slides]

 Written 2

 

Tuesday

Jan-23

Lab 03

Loopty-Loopty Loop [handout]

 

 

Wednesday

Jan-24

Lec 05

Big-O [slides]

 

 

Thursday

Jan-25

Rec 03

Function Family Reunion

 

 2 - Pixels

 

 

 

 

 

 

 

4

Sunday

Jan-28

---

---

 

Monday

Jan-29

Lec 06

Binary Search [slides]

 Written 3

 

Tuesday

Jan-30

Lab 04

TA Training

 

 

Wednesday

Jan-31

No Class

Break

 

 

Thursday

Feb-1

No Class

Break

 

 

 

 

 

 

 

 

 

5

Sunday

Feb-4

---

---

 3 - Images

Monday

Feb-5

Lec 07

Sorting [slides]

 

 

Tuesday

Feb-6

Lab 05

Fibonacci has Bad Internet [handout]

 Written 4

 

Wednesday

Feb-7

Lec 08

Libraries[slides]

 

 

Thursday

Feb-8

Rec 04

A Strange Sort of Proof

 

 4 - Speller

 

 

 

 

 

 

 

6

Sunday

Feb-11

---

---

 

Monday

Feb-12

Lec 09

Stacks and Queues [slides]

 

 

Tuesday

Feb-13

No Class

SPORTS Day

 

 

Wednesday

Feb-14

Lec 10

Linked Lists [slides]

Written 5

 

Thursday

Feb-15

Rec 05 & 06

A queue_t Interface & Link it All Together

 

 

 

 

 

 

 

 

 

7

Sunday

Feb-18

---

---

 

 

Monday

Feb-19

EXAM

MIDTERM 1

 

 

Tuesday

Feb-20

Lec 09

Amortized Analysis [slides]

 

 

Wednesday

Feb-21

Lec 12

Unbounded Arrays [slides]

 

 

Thursday

Feb-22

Rec 07

Array Disarray [solution on Piazza]

 

 

 

 

 

 

 

 

 

 

Sunday

Feb-25

Spring Break

Monday

Feb-26

Tuesday

Feb-27

Wednesday

Feb-28

Thursday

Feb-29

 

 

 

 

 

 

 

8

Sunday

March-3

Lec 13

Hashing [slides]

 

 

Monday

March-4

Lec 14

Hash Dictionaries [slides]

 

 

Tuesday

March-5

Lab 07

List(en) Up! [handout]

 

 

Wednesday

March-6

Lec 15

Generic Data Structures [slides]

 

 

Thursday

March-7

Rec 08

Generically Speaking

 

 

 

 

 

 

 

 

 

9

Sunday

March-10

---

---

 

 

Monday

March-11

Lec 16

Binary Search Trees [slides]

 

 

Tuesday

March-12

Lab 08

Hash this! [handout]

 

 

Wednesday

March-13

Lec 17

AVL Trees [slides]

 

 

Thursday

March-14

Rec 09

Rotating Rotations

 

 

 

 

 

 

 

 

 

10

Sunday

March-17

---

---

 

 

Monday

March-18

Lec 18

Introduction to C [slides]

 

 

Tuesday

March-19

Lab 09 & 10

Legacy of the void* [handout] & This One's a Tree [handout]

 

 

Wednesday

March-20

Lec 19

C's Memory Model [slides]

 

 

Thursday

March-21

Rec 10

From C1 to Shining C

 

 

 

 

 

 

 

 

 

11

Sunday

March-24

---

---

 

 

Monday

March-25

Lec 20

Types in C [slides]

 

 

Tuesday

March-26

Lab 11

All sorts of sorts [handout]

 

 

Wednesday

March-27

Lec 21

Virtual Machines [slides]

 

 

Thursday

March-28

Rec 12

C-ing is Believing [solution on Piazza]

 

 

 

 

 

 

 

 

 

12

Sunday

March-31

---

---

 

 

Monday

April-1

EXAM

MIDTERM 2

 

 

Tuesday

April-2

Lab 12

passwordLab [handout]

 

 

Wednesday

April-3

Lec 22

Graph Representation [slides]

 

 

Thursday

April-4

Rec 13

TBD

 

 

 

 

 

 

 

 

 

 

Sunday

April-7

Eid Al-Fitr

Monday

April-8

Tuesday

April-9

Wednesday

April-10

Thursday

April-11

 

 

 

 

 

 

 

13

Sunday

April-14

---

---

 

 

Monday

April-15

Lec 23

Graph Search [slides]

 

 

Tuesday

April-16

No Lab

---

 

 

Wednesday

April-17

Lec 24

Priority Queues [slides]

 

 

Thursday

April-18

Rec 13

Computing on the Edge

 

 

 

 

 

 

 

 

 

14

Sunday

April-21

 

 

 

 

Monday

April-22

Lec 25

Restoring Invariants [slides]

 

 

Tuesday

April-23

Lab 14

Spend some Cycles Thinking [handout]

 

 

Wednesday

April-24

--

Overview

 

 

Thursday

April-25

--

 --