EE2372 Software Design I - Spring 2010 space.
Days/Time : TTh 10:30 - 11:50
Location: Classroom Building 301
Course Description: An introduction to software design with a structured computer language that focuses on the construction of programs consisting of multiple functions residing in multiple files. Covers program creation and top-down-design, basic elements and operations, modular program construction, and the use of programming tools such as makefiles. Introduces object oriented programming techniques.
AKA Learn how to program a computer.
Class Outcomes (all equally important):
- Design, implement , and execute programs written in the C language.
- Define the use of functions, and design multiple module programs.
- Use a variety of UNIX-based and PC-based programming tools for software development like IDE's (Integrated Development Environment), debuggers and makefiles.
- Create and use pointers, data structures and enumerated data types.
- Access text files directly in C language programs via I/O functions.
Class calendar (always subject to change)
| Spring 2010 EE 2372 topic calendar | |||
| Date | Topic | Assignment out | Reading Assignment |
| 19-Jan | Course introduction | ||
| 21-Jan | Computer Architecture, Programming Languages, IDE, Intro to MATLAB | Flowchars handout | |
| 26-Jan | Elements of Programming in MATLAB | ||
| 28-Jan | Elements of Programming in MATLAB | Assignment 1 | |
| 2-Feb | Input/Output in MATLAB, Software design with flowcharts | Chapter 2 | |
| 4-Feb | Software design with flowcharts | Assignment 2 | Chapter 3 and Chapter 4 |
| 9-Feb | Introduction to C language, compilers and IDEs. Basic C language structure and basic input/output | Chapter 5 | |
| 11-Feb | Variables, Data types and arithmetic expressions | Assignment 3 | |
| 16-Feb | Program Looping I | Chapter 6 | |
| 18-Feb | Program Looping II | Assignment 4 | |
| 23-Feb | Decision structures I | Chapter 7 | |
| 25-Feb | Exam 1 Up to February 18 | ||
| 2-Mar | Decision structures II | Assignment 5 | Chapter 7 and 8 |
| 4-Mar | Arrays | ||
| 9-Mar | Functions | ||
| 11-Mar | Functions | Assignment 6 | Appendix B |
| 16-Mar | Spring Break | ||
| 18-Mar | Spring Break | ||
| 23-Mar | Functions - The Standard library | Chapter 9 | |
| 25-Mar | Structures | Assignment 7 | Chapter 10 |
| 30-Mar | Strings | Chapter 11 | |
| 1-Apr | Pointers | Assignment 8 | |
| 6-Apr | Pointers | ||
| 8-Apr | Pointers | Assignment 9 | Chapter 12 and Chapter 13 |
| 13-Apr | Bit operators and Review of the preprocessor | ||
| 15-Apr | Exam 2 - up to pointers | Chapter 14 | |
| 20-Apr | Enumerated datatypes and type casting | Chapter 15 | |
| 22-Apr | Program modularity | Chapter 16 | |
| 27-Apr | Input/Ouput operations in C | Assignment 10 | Chapter 17 |
| 29-Apr | Command line arguments and Dynamic Memory Allocation | ||
| 4-May | C++ - Object orient programming I | Chapter 19 | |
| 6-May | C++ - Object orient programming III | ||
| 7-May | Dead Day | ||
| 13-May | Thursday 10:00 am - 12:45 pm |
Handouts
Flowcharts (from www.nos.org)
Lecture Materials
Introduction to programming elements using MATLAB
Designing programs with flowcharts
Structures programming examples Note: The original version of these examples were downloaded from the web, but I don't have the source anymore. The examples have been modified in some parts to illustrate other properties of structures.
Pointers. An introduction to pointers. Really an intro, the remaining material was covered in class. Example 1. Example 2.
Linked list example. Just the C-code that could be useful for your last homework.
Assignments
Homework 1 - Elements of programming using MATLAB (pdf)
Homework 2 - Program design using flowcharts (pdf)
Homework 3 - More MATLAB and flowcharts. Elements of C language (pdf)
Homework 4 - Variables, data types and arithmetic expressions (pdf)
Homework 5 - Program Looping (pdf)
Homework 6 - Making decisions (pdf)
Homework 7 - Arrays an sorting (pdf)
Homework 8 - Functions (pdf)
Homework 9 - Structures and Strings (pdf)
Homework 10 - Pointers (pdf)
