Home
Netbeans Eclipse Qt Java
Games
College of Engineering Aeronautics and Astronautics Agricultural and Biological Engineering Biomedical Engineering Chemical Engineering Civil Engineering Construction Engineering and Management Electrical and Computer Engineering Engineering Education Engineering Professional Education Environmental and Ecological Engineering Industrial Engineering Materials Engineering Mechanical Engineering Nuclear Engineering
EPICS (Engineering Projects In Community Service) First-Year Engineering Program First-Year Engineering Honors Program Global Engineering Program Minority Engineering Program Professional Practice (Co-Op) Program Women in Engineering Program
College Administration Schools Programs All Groups All People ECN Webmail
Purdue Home

Grading for ECE 264 Summer 2013

Learning Objectives

A student who successfully fulfills the course requirements will have demonstrated:

  1. an ability to read and write C programs that use recursion. [1,4;a,b,c,e,k]
  2. an ability to read and write C programs that use structures. [1,4;a,b,c,e,k]
  3. an ability to read and write C programs that use dynamic data structures. [1,4;a,b,c,e,k]
  4. an ability to read and write C programs that use files. [1,4;a,b,c,e,k]

Meeting all objectives is a necessary (but not sufficient) condition to receive a passing grade (A - D). Once a student has passed a learning objective, the student passes the learning objective. The student will not "unpass" later.

Is it possible that a student pass all learning objectives and still fail the class? Yes. If a student receives high scores in exams but does not submit any assignment, the student will fail the course.

The first three learning objectives (recursion, structure, and dynamic structure) will be evaluated by exams. The fourth (file) will be evaluated by the programming assignments.

Assessment Methods

  • Exams (60 points). There are four exams (3 midterms and 1 final). Each exam is 20 points. The lowest score is not counted. You do not have to inform the instructor which exam you skip. Exams are open-book and open-note. You can bring anything that is printed on paper. No electronics is allowed. No calculator. No laptop. No ipod. No MP3 player.  You need to write code for the exams and the questions are probably not multiple-choice questions.
  • Weekly Programming Assignments (42 points). There are seven programming assignments. All test cases for grading will be given to you.You will receive no point if your program has one or more syntax error.
    • You will receive no point if your program terminates abnormally (such as segmentation fault).
    • You will receive no point if valgrind reports invalid memory access or memory leak, even if the program terminates normally.
    • You will lose one point for each gcc warning.
    • You will lose one point for each global variable or static variable.
    • You will lose points if you have "mysterious constants" scattered in the program. If you need a constant, you need to define a symbol. For example, you will lose points if you write 97 when you mean 'a'. You should use 'a' not 97 because it is easy to mistype it to 98 and it is difficult to understand what 98 means.
  • Daily Non-Programming Assignments (8 points).
  • The total score is 110.
  • No additional bonus points will be given.
  • The points in different categories are not interchangable. You cannot take 4 exams in exchange for submitting fewer assignments.
  • The instructors do not negotiate scores. It is your responsibility earning the points you deserve.

Rules for Assignment Submission

  • All programming assignments are due at 11:59PM on Mondays. Your program must be submitted through Blackboard. Email submission is ignored. You can submit as many times as you like on Blackboard before the deadlines.
  • If Blackboard is unavailable within 12 hours before a deadline, the deadline will be extended.
  • The total score is 110. The additional 10 points accommodate possible problems (such as submitting an assignment late). The lowest exam score is not counted. With this accommdoation, all rules will be strictly enforced.
  • Only files submitted through Blackboard before the deadlines are considered for grading. There is no exception in any circumstance.
  • Under no circumstance will a late assignment be accepted. In no case, an extension will be given to an individual student. An extension to the entire class may be possible. Please do not ask for an extension. This request will always be denied.
  • Under no circumstance will the instructors accept files stored in your computer. Only files submitted to Blackboard are used for grading.
  • It is your responsibility submitting correct files. If you submit wrong files or fail to submit all necessary files, you will receive zero.
  • Please understand that 99% correct is wrong. Do not ask for partial credit if your program does not work. The teaching staff will not correct your program before grading.

Letter Grades

Grade Total Score (out of 110) Exam Score (out of 60) Assignment Score (out of 42)
A 83 38 29
B 72 35 26
C 61 32 23
D 50 29 20
F
  • fail any learning objective or
  • below 50 in the total score or
  • below 29 in the toal exam score or
  • below 20 in the toal assignment score

If the highest score in the class is below 100 (unlikely), the highest score will be scaled to 100 and everyone will be scaled proportionally. For example, if the highest score is 90, this student will receive 100. If a student has 63 original score, the student will recieve 70.  The instructor will not negotiate your grade. Do not ask the instructor to "bump up" your grade because your score is "very close" to the requirement. You receive the grade you deserve. You, not the instructor, decide you grade.

Course Goals

The following explains the goals of this course in details.

  • Explain how the call stack changes as a program progresses
    • Understand how local variables and arguments appear on call stack in function codes
    • Understand how call stack grows when a function called
    • Understand how call stack shrinks when a function completes
    • Understand where the program continues after a function completes
    • Understand pointers
      • Distinguish the meaning of the pointer in four different context
      • Apply pointers in appropriate context
  • Implement algorithms using C
    • Describe an algorithm in English
      • Describe the assumptions and restrictions of the problem
      • Describe the input of the algorithm
      • Describe the desired outcome of the algorithm
      • Describe the procedure to produce the desired outcome from the input
    • Generate scenarios to validate the algorithm
      • Describe all valid scenarios that can be handled by the algorithm
      • Identify at least three invalid scenarios which cannot be handled by the algorithm
    • Translate an algorithm from English to a C program
      • Choose appropriate library functions when translating an algorithm
      • Utilize online manual of library functions and distinguish between related functions
      • Convert the procedure in English to appropriate syntax in the C program
    • Create test cases to verify the program
      • Differentiate between correct and incorrect results when testing a program
      • Understand the functionalities of various tools for testing and debugging
      • Utilize appropriate tools in testing
      • Interpret the results from testing and take appropriate action for correcting the program
  • Write programs that use recursion
    • Explain the terminating condition(s) of recursion
    • Describe the solution for a complex case based on the solutions of simpler cases
    • Translate a recursive solution from English to a C program
  • Manage memory
    • Distinguish between memory using call stack or heap
    • Understand call stack is managed by compiler
    • Understand heap memory is managed by programmer
    • Identify the conditions when dynamic memory allocation and release are required
    • Utilize appropriate tools to detect inappropriate memory usage
  • Create new data types that can be dynamically allocated or released
    • Understand the purpose of new data types and how to create new data types
    • Define self-referring data types for recording data of unknown size
    • Describe algorithms using self-referring data types
    • Distinguish between data types with different time and space efficiency
    • Implement the algorithms in C programs
  • Develop the ability to read program specifications and documentations
    • Understand the requirements in a specification
    • Identify incomplete or inconsistent requirements in a specification
    • Make appropriate decisions in interpreting specifications and clearly document the decisions
    • Look up references for the C language

Policy Handling Dishonest Behavior

You will receive F in this class if you cheat. Your case will always be reported to ECE main office. There is no exception. If you help a student cheat (such as giving your code), you will also receive F. If you want to help a classmate, tell the person to talk to the instructor or the teaching assistants.   You are responsible protecting your assignments. Do not leave a computer unattended. Do not throw away the printout of your programs.

Do not copy code from your classmates or from the Internet.

You must understand that you cannot cheat forever. If you cheat, you will get caught, sooner or later.

You are allowed to use the code given to you by the instructor or generated snippets using the tools approved by the instructor. You are not allowed to download code from the Internet and claim the code as yours. If you discover useful code, you must (1) announce the code in Blackboad Discussion so that everyone in the class is aware of the code or (2) request the instructor's written approval or (3) describe with sufficient details where the code comes from and how you use it in your README file. You must request the code owner's permission to use the code and you must cite the source in your submission. You are not allowed to purchase code from, for example, getacoder.com.

There were cases when students claimed they "accidentally" submitted code from the Internet because these students were "studying" the code. In all these cases, the students were considered cheating and received the appropriate penalty.  It is not possible to "accidentally" submit the code that is not written by you. If it is your code, you must have spent many hours writing the code. You will treat the code with the greatest care. You will check, double check, and check again before submission. If you have spent so much time on an assignment, you will not accidentally submit wrong code.  "Accidentally submitting wrong code" is an invalid defense and will result in you receiving F in this class.

You should know that advanced tools are available to check similarities between programs. These tools can detect programs of similar structures, even if you rename variables or change for to while (or many other techniques for disguising copied code). These tools have successfully detected many cheating cases.  The very fact that you are considering to cheat indicates your lack of programming skills. Hence, you do not have sufficient knowledge to defeat these similarity checkers. If you need help, instead please talk to the instructors or the teaching assistants, or post your questions in Blackboard Discussion. Do not ask your classmate or anyone that took this course to give code to you.  Submissions from multiple semesters will be checked.

You can (and are encouraged to) discuss ideas with your classmates.  However, you cannot share code. If you and your classmates write code independently, it is extremely unlikely that you will have similar code, even if you have similar ideas on how to solve the problems.

Policy for Campus Emergencies

In the event of a major campus emergency, course requirements, deadlines, exams, attendance requirements, and grading percentages are subject to changes that may be necessitated by a revised semester calendar or other circumstances. Information about changes in this course can be received from the course website or by contacting the instructors by email or office phone.  If you feel attending lectures would be unsafe, please stay home.