EE 298: Intro to Computer Engineering II (EE 107)
Spring 2007
Syllabus

Course description: This is a continuation of EE 298 in Fall 06 (to be known in the future as EE 106).  The combination of these two courses will prepare students for upper division courses requiring an understanding of digital logic and experience with programming.  The focus of this course will be algorithmic approaches to problem solving and computer program design for engineers using the C language.  Students will explore Boolean expressions, implement programs, and interface the computer with external hardware using robots and sensors.  Students will also have experience with control structures, modular code and file input/output. 

Pre-requisites: There are currently no pre-requisites for this class but students should be prepared for calculus I. 

Professor: Rebecca Bates
Computer and Information Sciences
Wissink Hall 243
Phone: 507-389-5587
Fax: 507-389-6376
Email: bates@mnsu.edu  

Course Website
http://bates.cs.mnsu.edu/ee298
Check the website regularly for announcements and updates.  If things that are useful for the entire class come up, they will be posted on the announcement section of the class webpage.

Course Hours and Location
Lectures:  M, Th 1-2:30pm TN N241
Lab 1: W 11-12:50pm TN N192
Lab 2: W 4-5:50 TN N192

Office Hours
Monday Tuesday Wednesday Thursday Friday
11-12 4:30-5:30 2-4* 2:30-3 11:30-1:30**
*will be held in WH125A so that you can work on the ACC machines while I am there.
**will be held in the ACC or WH243

Course Materials
Required Text: Engineering Problem Solving with C, 3rd ed., Delores M. Etter, Prentice Hall, 2005.

Grading
Homework and Lab work: 35%
Midterm Exams: 45%         These exams will be written and practical (lab based).
Final exam: 20%

Exam Dates
Written: February 22, April 2
Practical:  assigned April 18, due April 20 at 4pm
Final: Tuesday 8 May, 12:30-2:30pm
Final: May 9, 2005, 12:30-2:30

Class Schedule
See the attached schedule for the tentative plan of topics.

Course Outcomes
There are five major areas addressed in this course: the overall field, general problem solving and analysis, hardware, software, and the interface between hardware and software.

Overall field:

  1. Review basic problem solving and extend to algorithm development.
  2. Maintain an effective study regime.
  3. Continue discussion of ethics and implications in oral and written forms.
  4. Connect engineering to at least one issue affecting society using fictional and non-fictional sources.
Problem Solving and Analysis:
  1. Identify the software development process including analysis, design, coding and testing in its higher level context of design and development, maintenance and documentation.
  2. Perform algorithm development using flow charts and pseudocode.
  3. Use testing plans in the development of C code and apply tests to output.
  4. Perform statistical data analysis from measurements using both spreadsheets and high-level code.
  5. Use C code to solve engineering problems such as line fitting and model estimation and prediction.
Hardware:
  1. Manipulate binary, octal and hexadecimal number systems in order to relate data storage with software data types.
  2. Will implement code in robots to perform a variety of tasks to reinforce applied software problem solving strategies.
Software:
  1. Recognize different operating systems and organization of file structures.
  2. In at least one development environment, write, compile, run, and test C code.
  3. Declare, initialize and manipulate programming variables.
  4. Simulate computer behavior in arithmetic using order of operations.
  5. Use standard input/output as well as file input/output.
  6. Translate Boolean logic into C syntax.
  7. Implement programming concepts like data storage, selection structures and repetition structures.
  8. Manipulate text files containing character and numeric data with C file input/output structures.
  9. Develop modular code using functions.
  10. Use 1 and 2 dimensional arrays for data storage and manipulation.
Hardware/Software Interface
    1.    Create programs to interface with external hardware using robots and sensors.

Homework and Exams
The homework for this course will include problems from the book, outside assignments and programming and lab projects.  Lab work will often require some preparation before class.   Expect to spend at least 8 hours per week outside of class on reading and assignments.  Homeworks will be due weekly.  Assignment details will be posted on the class website.  Submission format and guidelines will be discussed in class as well as posted on the website.

Your exams will be based on information gained through both homework and lab experience as well as material covered in lectures and the book.  There will be short-answer and discussion questions as well as problem solving and actual programming.  Exams will have a lab component as well as a written component.

Grading Policy
Homework will be graded on a 0-4 basis, where:

Exams will be graded based on correctness and completion.  Point values and/or rubrics will be distributed with the exams.  The final course grade will be assigned based on the above grading distribution. 

Expectations of Students

Course Tools

Disabilities
Every effort will be made to accommodate qualified students with disabilities.   If you are a student with a documented disability who will need academic accommodations, please see me during the first week of class to discuss what is appropriate.  You should also contact the Disability Services Office at 389-2825 or 800-627-3529 (MRS/TTY). 

Academic Honesty
By staying enrolled in this class, you agree to abide by the University's Policy for Academic Honesty which appears in the Student Handbook under the section heading "Academic Honesty". If you have questions about the policy please contact me, your advisor, or another faculty member PRIOR to engaging in a "dishonest" act. Failure to abide and respect the Academic Honesty Policy will result in severe penalties as allowed by the University.  I want to point out to you the following expectation, which comes directly from the University's Statement of Student Responsibilities:

In order for an academic community to teach and support appropriate educational values, an environment of trust, cooperation and personal responsibility must be maintained. As members of this University community, students assume the responsibility to fulfill their academic obligations in a fair and honest manner. This responsibility includes avoiding such inappropriate activities as plagiarism, cheating or collusion. Students found responsible for one or more of these activities may face both academic sanctions (such as lowering a grade, failing of a course, etc.) and disciplinary sanctions (such as probation, suspension, expulsion).

It is the intent of Minnesota State University, Mankato to encourage a sense of integrity on the part of students in fulfilling their academic requirements. To give students a better understanding of behaviors that may constitute academic dishonesty, the following definitions are provided:

Plagiarism – Submission of an academic assignment as one's own work, which includes critical ideas or written narrative that are taken from another author without the proper citation. This does not apply only to direct quotes, but also to critical ideas that are paraphrased by the student.

Plagiarism includes but is not limited to:

Cheating — Use of unauthorized material or assistance to help fulfill academic assignments. This material could include unauthorized copies of test materials, calculators, crib sheets, help from another student, etc.

Collusion — Assistance to another student or among students in committing the act of cheating or plagiarism.