Syllabus: CISC106 - General Computer Science for Engineers

Professor: Paul D. Amer
Office: 434 Smith Hall
Office Hours: T,Th: 1:30-2:30, and by appointment
Email: amer@udel.edu
Phone: (302)831-1944 (office); (302)540-8840 (cell, for urgent matters, please)
Last Updated: 8/22/2014

Lab Sections and TAs (held in 010 Spencer Lab)

Course Description: CISC106 focuses on principles of computer science illustrated and applied through programming in a general purpose language. Programming projects illustrate computational problems, styles, and issues that arise in computation. The current languages taught are Python (11 weeks) and MATLAB (3 weeks). Co-Rerequisite: MATH241

Intended Course Audience

Textbook, Software and Equipment

Useful Pythons Links

Course Objectives By the course's end, you should be able to:

  1. Develop abstract, computational data models
  2. Follow and explain an explicit Design Recipe to go from an idea to a tested, working program
  3. Develop inputs to test for program correctness
  4. Understand and write programs over different types of data (integer, float, Boolean, list, ...)
  5. Use basic input and output libraries for text, graphics, plots, and files
  6. Use functions
  7. Use conditional statements
  8. Understand the concepts of: state, mutation, and scope
  9. Write and understand iterative programs using for and while loops
  10. Write and understand recursive programs
  11. Understand basic searching and sorting algorithms and their complexity
  12. Recognize basic time/space behavior of simple programs
  13. Write programs for numeric problems
  14. Use MATLAB at an introductory level

Assignments and Grading

Grading:

  1. This professor's philosophy is that grades, in part, indicate relative performance. Hence final grades will be assigned according to a curve roughly assuming a normal distribution. In addition to the curve, certain grade guarantees are defined below. For example, a student earning 83.3% of the total course points is guaranteed to receive a grade of B or better. In the professor's subjective opinion, if the above scale does not fairly represent the class' achievement as a whole, grades may be curved up (e.g., lowering the threshold for an A- from 90% to 89%). Grades will never be curved down. Any adjustment will apply to all students. This grading policy has one exception to ensure mastery of skills, and that one lab partner is not doing an unfair portion of the labs/programs.

    A A- B+ B B- C+ C C- D+ D D-
    93% 90% 87.7% 83.3% 80% 77.7% 73.3% 70% 67.7% 63.3% 60%
  2. Lateness Policy: All assignments have a due date and a latest submission date which is 2 days after the due date. Unexcused late assignments will be penalized 10% of the earned points per day or fraction thereof (5 minutes late counts as one day late) to the latest submission date. Without a documented university-approved excuse (e.g., illness, death in the family), assignments will not be accepted more than 2 days late. No more than two late assignments for a student will be accepted.
  3. Attendence
  4. Submission of Assignments
  5. Finally, a philosophical note on grades. I do the best I can in measuring how much course material you demonstrate that you know. This evaluation is done through assignments and tests. I do not attempt to grade intelligence. I do not grade based on how many hours you put into the course.
Sakai Announcements/Email: Sakai Announcements/Email is the only consistent method of communication I have with the entire class. It is imperative that you know that you are receiving mail from the class Sakai list. Anything announced at least 24 hours prior is considered your responsibility to know. Check email regularly and before, during or after any unusual event (i.e. power outages, snow, tests, holidays).

Academic Honesty: Discussions with others to understand general programming concepts is ENCOURAGED. Students may help each other answering checkpoint and review questions in the textbook. Students may help each other answering MyProgrammingLab questions. Discussions should end when programming lab or program assignment solutions. Except for working with your lab partner, students in one pair are PROHIBITED from accessing or comparing assignment answers with those of any other student (past or present, alive or dead) prior to submitting the assignment. Students may not use any web site that contains answers. Copying another group's lab or program assignment is plagiarism, a serious offense, and the one most common in computer science courses. Anyone that provides program code for a lab or program assignment to another group is also guilty of academic dishonesty. Both will be prosecuted in accordance with the University's Policy of Academic Honesty (http://www.udel.edu/stuguide/14-15/code.html#honesty). If you do not have sufficient time to complete an assignment, then submit a partial solution. Do not get answers or compare answers from another group. IMPORTANT: submitted assignments are compared (by computer) with each other and with past CISC106 submitted programs. Changing variable names will not prevent discovery of collaboration. Entering i>clicker responses on behalf of another student is considered academic dishonesty.

Laptops and cell phones: I love my job teaching at UD, and promise to work extremely hard to make CISC106 exciting and challenging. In return, I expect your full attention in class. I believe texting or using a laptop to read email, play video games, or visit Facebook while someone is working hard to educate you is as rude as it gets, and I will be personally offended. At the beginning of class, please turn off your cell phone. The only permitted use of a laptop during lecture time is for taking notes, or using IDLE to program in Python. By remaining in this CISC106 section, you agree that using a laptop for non-class related purposes, even once, will result in your class participation grade for the semester being set to zero. If you believe this policy is too severe, I understand, and ask you to please change to another section of 106. Thank you.