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 2011


  Section 001 Section 002
Lectures

830-920 WF

WETH 320

830-920 TTh

ME 255

Instructor

Yung-Hsiang Lu

Office Hours:

930-1030 WRF, MSEE 222.

Open-door policy.

Yung-Hsiang Lu's Photo

Niklas Elmqvist

Office Hours:

930-1030 MT, MSEE 270.

Open-door policy.

Niklas Elmqvist's Photo

Teaching Assistant

Askia Hill

Office Hours:

WR 1 pm - 3 pm, EE306

F 9:30am -10:30am, EE306

Askia Hill's Photo

Jad Hbeika

Office Hours:

T 9:30am - 11:30am, EE306

W 11:30am - 1:30pm, EE306

Important Dates

Exams (open book, open note)
02/16 W 630-730PM MTHW 210 Exam 1
03/09 W 630-730PM MTHW 210 Exam 2
04/13 W 630-730PM MTHW 210 Exam 3
04/21 R 630-730PM EE 129 for passing outcomes
05/05 R 8-10AM EE 270 Final exam
Individual Programming Assignments 11AM
02/12 R PA1-1 Maze Traversal
02/17 R PA1-2 Maze Traversal
03/11 F PA2-1 Rectangle Packing
03/24 R PA2-2 Rectangle Packing
03/31 R PA2-3 Rectangle Packing
04/07 R PA3-1 Blokus Pieces
04/14 R PA3-2 Blokus Pieces
04/21 R PA3-3 Blokus Pieces
04/28 R PA3-4 Blokus Pieces
Exercises 11AM
02/04* F Ex1 Programming Environment
02/04* F Ex2 Makefile
02/28 R Ex3 Debugger
03/03 R Ex4 Test Coverage
*Please notice that the first two exercises are due on the same day.

You can watch these video lectures to know some basic concepts about C. The lectures include how to write programs using Eclipse and debug using DDD, as well as installing Linux inside Windows using Virtualbox.

Textbook

A Book on C by Kelley and Pohl  A Book on C.

We will not follow any particular book. You have to attend lectures.

Course Outcomes

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

  1. an ability to read and write C programs that use files. [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]

Outcomes may be passed by exams 1-4. No outcome will be tested in the final exam. Passing all outcomes is a necessary (but not sufficient) condition to receive a passing grade (A - D).

Grading

  • 3 midterm exams, 15 points each.
  • 1 final exam, 21 points.
  • 3 individual programming assignments, 10 points each. Each assignment is divided into two stages. You must start doing the assignments early. It is impossible for you to finish an assignment within one day. Do not procrastinate.
  • 4 exercises, 1 point each.
  • 10 points for quizzes and attendances.  Each attendance or quiz is 0.5 point.  Each visit to the instructor's office is equivalent to attending 2 lectures.
  • up to 5 bonus points. In the final exam, you will be asked to explain how many bonus points you should receive. There are many ways to receive bonus points. For example, you receive 0.5 bonus point by scribing one lecture and post it at Rhea. You can also receive bonus points by doing additional work in programming assignments.

The total score is 110 (115 including bonus points). Regrading is requested by sending email to the instructor. Please explain clearly why you deserve more points. If you request regrading a programming assignment, please check your submission first. Submitting wrong files is a common mistake. Your grade is determined by what you actually submit, not what you intend to submit.  Neither the instructor nor the teaching assistant can modify anything you submit. If your submitted files contain syntax errors, you will receive zero in that assignment.

Letter Grades

Grade Total Score Programming Assignments
A >= 90 >= 15
B >= 80 >= 15
C >= 70 >= 10
D >= 60 >= 10
F below 60, or programming assignments below 10, or fail any outcome

Your total score will be rounded up to the smallest integer (for example, 72.1 becomes 73). If the highest score in the class is below 100 (very unlikely), the highest score is adjusted to 100 and everyone else's score is adjusted proportionally .

There are many opportunities to receive bonus points. Therefore, the instructors will not "bump up" your grade. If you get 78.9 (round up to 79), you will receive B. It is your responsibility for getting the grade you want and deserve.

Late Policy

Each programming assignment or exercise is due at 11AM. You must submit through this web site. You can submit up to 10 times before the deadline and the highest score is used. If your score does not improve after five submissions, you should talk to the instructors or the TAs.  You will receive a grade report soon after each submission. Since you can submit multiple times and receive grade reports, the deadlines are firm and you will receive zero if your submission is late. You are encouraged to submit once 24 hours in advance to receive some points.

If Purdue cancels classes or the submission server is down on the due day, the deadline is extended until classes are resumed.

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.

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.

Students' Comments

  • "Great course I really enjoyed it"
  • "Great professor and great course."
  • "Very nice and helpful"
  • "Great teacher, really knows how to teach the material."
  • "Good course"
  • "Very organized and very good at presenting the information and answering questions. I really enjoy his class."
  • "Great professor, very helpful"
  • "Great job with answering questions and explaining material"
  • "Great professor. Thank you"
  • "Professor was a very good instructor."
  • "Professor makes sure that you understand it."
  • "He explains everything thoroughly"
  • "Very enthusiastic about teaching."
  • "Very good"