EE 312- Software Design and Implementation I
Spring 2020 - Priebe


Schedule 

(this schedule is very tentative and subject to change)

Source Code from Class


 Lectures, Readings, and Activities (week of)

Week of Topics Lectures Readings and Activities Recitation
1/20

Course Logistics

Software Engineering

Intro to C

Introduction to Software Design

Intro to C

Reading:

To do: Write and run a simple C program.

Intro to Linux

Software download

To do: Install CLion (or other environment), Linux software

1/27

Intro to C

Decisions, Loops, Functions and Arrays

Intro to C

Reading:


To do: 

 

GDB



2/3

C file I/O, 2-D arrays, dynamic memory allocation

String Stuff

Pointers

Reading:

To do:

Memory Allocation

Valgrind

2/10

Algorithm Analysis

Structures, memory, pointers

Algorithm Analysis

Structures


Reading: Chapter 6, Weiss

To do:

Bash

2/17

Linked Lists

Stacks/Queues

Memory Allocation

Linked List

Stacks / Queues

Reading: Chapter 17, Weiss

To do:


2/24

More Linked Lists


Reading:

To do:

 

 


3/2

Recursion

Review

Exam 1

Recursion

Review


Reading: Chapter 8, Weiss

To do:


3/9

Recursion

Intro to C++ and Object-Oriented Programming (OOP)

Introduction to C++ and OOP

 

Reading:

To do: Learn basic C++

Intro to C++, Expressions and interactivity, loops and files

 

 


3/16 Spring Break      
3/23 C++ and Object-Oriented Programming (OOP)

Class Specific Topics

More Class Topics

Reading: Chapter 1 and 2, Weiss

Thinking In C++, Eckels

To do: Review source code from class

Viewing: C++ tutorials - Caleb Curry (full 10 hours)

(You can find the C++ tutorial in chunks on YouTube)


3/30 C++ Collections and the STL

Intro to the C++ STL

Templates

Reading:

To do:

4/6

Trees, Binary Trees

Binary Trees

Reading:

To do:


4/13

Binary Search Trees

Searching and Sorting

Searching and Sorting

QuickSort

Reading:

To do:Sorting Visualizations


4/20

Hashing and Hash Tables

 

Hash Tables

Reading:

To do:

 

4/27

Hashing and Hash Tables

Heaps

Heaps

Review

Reading:

To do:


5/4

Exam

Final Project (Cheaters!)

 

 






Programming Assignments

Assignment 1: Code Camp
(.zip download) Assignment 5: UtPod

Assignment 2: Game of Life
(.zip download)
Assignment 6: Go Fish!

Assignment 3: Stack Fun!
(.zip download) Assignment 7: BST

(.zip download)

Assignment 4: Math Stuff / Flood Fill 2.0
Assignment 8: Cheaters!

Style Guide


Exam 1 (3/4)   

Exam 2 (4/22)  (5/4) The Exam will be 90 minutes and given during your class time at 9am or 12pm. We will use Proctorio.

Final Exam: TBD (No Final Exam)

 

Optional: The final exam is optional. You may use the combined percentage (total points/total possible points) from the two midterm exams as a replacement for the final exam. If you choose to take the final exam, it will be graded and used to calculate your final grade.


EE 312 Home Page