EECS 22L Software Engineering Project in C Language (2014-2015)

EECS 22L Software Engineering Project in C Language

(Required for CpE.)
Catalog Data:

EECS 22L Software Engineering Project in C Language (Credit Units: 3) Hands-on experience with the ANSI-C programming language. Medium-sized programming projects, teamwork. Software specification, documentation, implementation, testing. Definition of data structures and application programming interface. Creation of program modules, linking with external libraries. Rule-based compilation, version control. Prerequisite: EECS22. (Design units: 3)

Required Textbook:
None
Recommended Textbook:
. Edition, , 1969, ISBN-13 978-0131103627.

. Edition, , 1969, ISBN-13 978-0136123569.

References:
None
Coordinator:
Rainer Doemer
Relationship to Student Outcomes
This course relates to Student Outcomes: EAC b, EAC c, EAC d, EAC e, EAC g, EAC j, EAC k.
Course Learning Outcomes. Students will:

1. Be able to specify and document a software program for a contemporary application (EAC c, EAC e, EAC g, EAC j)

2. Be able to design and implement dynamic data structures using user-defined data types (EAC e, EAC k)

3. Be able to implement, test, and debug a software program (EAC b, EAC k)

4. Be able to utilize software engineering tools such as version control and scripting (EAC k)

5. Be able to write original source code to solve an engineering problem (EAC c, EAC e, EAC j, EAC k)

6. Be able to collaborate and communicate effectively in a team (EAC d, EAC g)

Prerequisites by Topic
  • Intermediate C Programming
Lecture Topics:
  • Software engineering topics, including specification, documentation, implementation, testing, debugging, project planning, organization, maintenance, version control, organization of source files, header files, modules
  • Compilation flow, Makefile, shell scripting
  • Definition of data structures and application programming interface
  • External libraries, system programming, POSIX API, interrupts
  • Introduction to C++ language, syntax and semantics, references, inline functions, default arguments, classes, members, and methods, object creation and deletion (constructors, destructors)
Class Schedule:

Meets for 1 hour of lecture, 1 hour of discussion and 3 hours of laboratory each week for 10 weeks.

Computer Usage:

Any computer capable of a unix-like programming environment (csh or bash on Gnu/Linux, MacOS X, or CygWin on Windows), GCC.

Laboratory Projects:

None

Professional Component

Contributes toward the Engineering Topics for Computer Engineering majors.

Design Content Description
Approach:
  • Design an interactive system capable of accepting user input and storage
  • Design data structures, APIs, and data processing algorithms
  • Design efficient use of system resources such as files, I/O streams, memory
Lectures:
Laboratory Portion:
Grading Criteria:
  • Programming assignments:100%
  • Total: 100%
Estimated ABET Category Content:

Mathematics and Basic Science: 0.0 credit units

Computing: 0.0 credit units

Engineering Topics: 3.0 credit units

Engineering Science: 0.0 credit units

Engineering Design: 3.0 credit units

Prepared:
April 15, 2014
Senate Approved:
April 29, 2013
Approved Effective:
2013 Fall Qtr