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

ECE 264 Advanced C Programming Spring 2013

Frequently Asked Questions

Exams

Q: How many exams?

A: Three midterms and one final. Only three of them are counted. The lowest score is ignored.

Q: If I have high scores in the midterms, do I need to take the final exam?

A: You can skip one exam without affecting your grade.

Q: Can I skip one of the midterms?

A: You can skip one exam without affecting your grade.

Q: Do I need to explain to the instructor why I skip an exam?

A: No. You do not have to tell anyone. If you want to skip an exam, simply do not come to the exam.

Q: Are exams open-book and open-note?

A: Yes. The exams are always open-book and open-note.

Q: What happens if I am ill on the day of the exam?

A: Only three out of four exams are counted. You can skip one exam.

Q: What happens if I am ill on the days of two exams?

A: The total score is 115. The additional 15 points accommodate this situation.

Assignments

Q: Do the assignments have equal weights?

A: No. Some assignments are more challenging and have higher weights.

Q: Do I need to do all assignments?

A: The total score is 115. You do not have to do all assignments.

Q: What happens if I cannot submit an assignment due to illness or personal reasons?

A: The total score is 115. You do not have to do all assignments.

Q: Do I need to tell the instructor which assignments I skip?

A: No. You do not have to tell anyone. You do not have to explain why you skip a particular assignment.

Q: Why is the deadline 10PM?

A: We have tried different times on different dates. There is no single time that is convenient to everyone. If you think 10PM is inconvenient to you, please be considerate that it may be convenient to some other students.

Q: What should I do if I miss a submission deadline?

A: The total score is 115. You do not have to do all assignments.

Q: Can I send my assignment by email if I am late?

A: Under no circumstance will a late assignment be accepted.

Q: Can you give me an extension? I have another exam on the same day.

A: The total score is 115. You do not have to do all assignments. Under no circumstance will a late assignment be accepted.

Q: I am late by just one minute.

A: Under absolutely no circumstance will a late assignment be accepted. The total score is 115. You do not have to do all assignments.

Q: I have not changed the files on my computer (or in my ECN account). I am not late

A: Your score depends on what you submit, not what is stored on your computer. Under no circumstance will the teaching staff enter your account for grading.

Q: My computer crashed. The network was slow. I missed a bus. Can you give me an extension?

A: Under no circumstance will a late assignment be accepted. The total score is 115. You do not have to do all assignments.

Q: What happens if Blackboard is down?

A: If Blackboard is down within 12 hours before a deadline, the deadline is extended to every student. It is possible to extend a deadline for everyone. It is impossible to extend the deadline for a particular student.

Q: How do I submit the assignments?

A: Through Blackboard.

Q: Can I send you my program by email?

A: No.

Q: If I find a problem after I have submitted my program, can I correct it?

A: You can withdraw your submission and resubmit before the deadline. Please be aware that if you withdraw, it is impossible to retrieve your earlier submission. If you do not resubmit, you will receive zero.

Q: If I upload my files and forget to click the "Submit" button, what happens?

A: ITaP says the files will not be stored anywhere in Blackboard. If you do not submit, it is impossible to retrieve your files.

Q: If I just miss the deadline and Blackboard refuses to accept my submission, what should I do? Can I email my program to you?

A: No. If you miss the deadline, you receive zero. The total score is 115. You do not have to do all assignments.

Q: I am late because of severe weather. Can you give me an exception?

A: If Purdue cancels classes, the deadline will be extended. If Purdue does not cancel classes, it is your responsibility to submit before the deadline.

Q: If I submit a wrong file, can I submit again after the deadline?

A: No. Your grade depends on what you submit. It is your responsibility submitting the correct file. Under no circumstance will a late assignment be accepted.

Q: Is there any possibility of giving me an exception?

A: No. Under no circumstance will a late assignment be accepted. The total score is 115. You do not have to do all assignments. Exceptions will be granted in only extreme cases, such as hospitalization. Visiting PUSH (Purdue University Student Health Center) is not an acceptable reason for an exception.

Q: Why do you put so strict about the deadlines? Why can't you give some flexibility?

A: If you want to be successful, you must be able to meet deadlines.

Q: I heard from some students that debugging takes a lot of time.

A: In many cases, they spend a lot of time because they want to save time. They do not follow standard practice explained in lectures. They do not learn appropriate tools. They do not plan before writing code. They do not read their code carefully.  Some studnets spend only a few hours writing programs because they spend sometime thinking and planning before writing programs.

Grading Assignments

Q: How do you grade the programming assignments?

A: We will give you every test case. You should pass all the test cases before you submit. We may add more test cases before the deadlines. If this happens, we will inform everyone by email.

Q: Do I get the full scores if my program produces the same outputs as the expected outputs?

A: If your program leaks memory as reported by valgrind, you will receive 50% penalty. You will receive penalty if valgrind reports an uninitialized variable or invalid memory access. You will receive penalty for each gcc warning.

Q: But my program is almost right. Why don't I get any partial credit?

A: Almost right is not right. 99% correct means it is wrong.

Q: Can I get any partial credit if I have only a small mistake?

A: No.

Q: If you change just one line of my program, it is correct.

A: We will not debug your program. It is your responsiblity submitting a correct program.

Q: Can I send my program to you and ask you to help?

A: If you need help, please visit the office hours.

Learning Objectives

Q: What are the learning objectives?

A: Recursion, File, Structure, and Dynamic Structures.

Q: How can I pass the learning objectives?

A: By receiving enough points in exams.

Q: If I pass all learning objectives, do I pass the course?

A: No. Passing all learning objectives is a necessary, but not sufficient, condition to pass this course.

Q: How many chances can I pass the learning objectives?

A: At least two chances, maybe more than two.

Q: How can a student fail this course after passing all learning objectives?

A: A student may pass all learning objectives by receiving high scores in exam. If this student does not submit any assignment, the student will fail.

Q: If I have passed an learning objective, will I fail later because I do poorly in a later exam?

A: Once you pass a learning objective, you pass. You will not "unpass" later.

Grading

Q: Is this course curve-graded?

A: No. You grade is not affected by the other students' grades. There is only one situation when your grade will be affected by other students' grades. If the highest score in the whole class is below 100 (out of 115), everyone's score is scaled up proportionally so that the highest score is 100. This is, however, extremely unlikely. If the highest score in the class is above 100, you will not be scaled down.

Q: I have 4.0 GPA so far. Can you give me A if my score is close enough?

A: You grade is determined by your performance. The instructor does not decide your grade. Your performance decides your grade.

Q: I am very close to A. Please.

A: The instructors do not decide your grade. Your grade is decided by your performance. You receive the grade based on your performance. You will receive B even if your score is very close but below the requirement for A. You receive what you deserve.

Difficulty

Q: I have written many programs. I don't need this course.

A: Before you jump to that conclusion, please take a look of the topics in this course: memory management, recursion, pointers, structures, linked list, binary tree, bit operations, reading and writing files ... Do you know these topics well?

Q: Is this course that difficult?

A: It is not that difficult if you take efforts. Some students are overly confident and did not study.

Q: In previous semesters, attendance is part of the grade. Why is it no longer used for grading?

A: This class is Boilercast so students may watch the lectures outside the classroom.

Q: Is this course easy or hard?

A: Some students think it is hard. Some students think it is easy. You make your own judgment.

Q: What is the best advice to learn the course?

A: Practice.  If you want to be an expert, you need to practice a lot. You can find many problems in the text book.

Q: How can a student do well in this class?

A:

  • Think before you write code.
  • Attend lectures.
  • Ask questions when you do not understand.
  • Read the handout.
  • Start the assignments early.
  • Check Blackboard Mail and Discussion often.

Q: Is this course about syntax?

A: ECE 264 is not about syntax. You need to know much more than syntax. ECE 264 teaches you how to write useful programs managing data. You can think of ECE 264 as a writing class. A writing class teaches you new vocabulary but vocabulary is only one part of the class.

Language Selection

Q: Why do we learn C? Why don't we learn Java?

A: Java is a much complex language. One semester is insufficient to learn Java.

Q: Some departments teach Java as the first programming language.

A: It is very unlikely that students can fully understand Java as their first programming language. They can probably learn only parts of Java and do not learn some important features (for example, polymorphism, exception handling, multi-thread). As a result, the students learn the Java syntax without understanding the concept of object-oriented programming.

Q: Isn't C obsolete?

A: C is widely used in embedded systems and operating systems.

Q: Why do we learn C? Why don't we learn newer languages such as Java?

A: C is the foundation of many newer languages, including Java, C++, and C#. Understanding C helps you understand many languages.

Q: Why don't we learn a subset of Java then?

A: Regardless of the languages, some fundamental concepts do not change. For C, Java, C++, and many other languages, the fundamental concepts related to call stack, heap memory, recursion, data types are still applicable. It is better to understand a few things clearly, than to know many things without truly understanding any of them. Java has many features that are essential to the language. It is impossible to include these features within one semester. As a result, teaching Java as the first language tends to focus on only a few parts of Java and leave many other important parts uncovered, or to cover too many topics without any depth.  It is better to understand a few fundamental concepts clearly than knowing a lot of things without true understanding.

Q: What are the relationships between ECE 264 and other courses?

A: ECE 264 is foundation of many 300 and 400 level courses.

Q: Do I need to memorize the vocabulary and grammar?

A: Yes, even though in ECE 264 you can use books (and handouts and notes), you do not want to spend too much reading books (and handouts and notes) for every detail. It is like memorizing vocabulary and garmmar. You should spend time writing programs, not looking for syntax details. Treat C as a natural language like English, French, or Chinese. You need to know some vocabulary and grammar. ECE 264 is more than vocabulary and grammer; ECE 264 expects you to write short stories. You need to have solid knowledge about the basics (vocabulary, grammar, idioms...)   When you learn a language, knowing (and memorizing) vocabulary can save you a lot of time. If you do not remember anything, you will spend too much looking up in dictionary.

Q: Is this course cumulative?

A: Yes, the concepts are cumulative. In ECE 264, each lecture is built upon the concepts covered in the previous lecture. Therefore, you should understand every concept clear and do not fall behind.  You need to keep up because it is very difficult to catch up once you fall behind.

Q: What are the factors to be a good programmers?

A: Writing a good program is very much like writing a good article. You need vocabulary. You need grammar. You need a story. You need an organzation. Good writers also read a lot. To be a good programmer, you should read a lot of programs. There are many open-source programs.

Q: To write a C program, I need an editor and a compiler. What else do I need?

A: Many tools can help you detect and solve problems. In ECE 264, you will learn make, gdb, valgrind, and gcov.