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)
- 020L meets Tuesdays 11:15am-12:05pm
Teaching Assistant (TA) - Rahul Deore rahuld@udel.edu
Lab Assistant (LA) - Jianwei Ke kjwei@udel.edu
Undergrad Lab Assistant (uLA) - Cory Nunn cmnunn@udel.edu
- 021L meets Tuesdays 12:20pm-1:10pm
Teaching Assistant (TA) - Rahul Deore rahuld@udel.edu
Lab Assistant (LA) - Jianwei Ke kjwei@udel.edu
Lab Assistant (LA) - Josepth Brosch jbrosch@udel.edu
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
- Engineering student - but NOT computer science major
- Beginning programmer - someone who has NEVER programmed before
- Students who can follow instructions precisely
Textbook, Software and Equipment
- (required) Starting out with Python, 3rd ed., by Tony Gaddis, Pearson/Addison-Wesley, 2015
- (required) MyProgrammingLab - an online interactive study tool (Course ID: UOFD-15788-YBVD-22)
- (required) A USB flash memory drive to save work if done on an eCalc machine during lab
- (required) This class will use clickers and Sakai. Before the second class, log onto Sakai (sakai.udel.edu/portal/) and register your clicker using the link "i>clicker".
(Do NOT register your clicker at www.iclicker.com).
Bring your clicker to every class to obtain full participation credit.
For info about clickers, see: ats.udel.edu/clickers/faq.php
- (required) Go to www.python.org/downloads/
and download a free Python 3.3 (not 3.4) version appropriate for your computer.
IMPORTANT: Read the information on the class Sakai website BEFORE you install this software.
Useful Pythons Links
Course Objectives
By the course's end, you should be able to:
- Develop abstract, computational data models
- Follow and explain an explicit Design Recipe to go from an idea to a tested, working program
- Develop inputs to test for program correctness
- Understand and write programs over different types of data (integer, float, Boolean, list, ...)
- Use basic input and output libraries for text, graphics, plots, and files
- Use functions
- Use conditional statements
- Understand the concepts of: state, mutation, and scope
- Write and understand iterative programs using for and while loops
- Write and understand recursive programs
- Understand basic searching and sorting algorithms and their complexity
- Recognize basic time/space behavior of simple programs
- Write programs for numeric problems
- Use MATLAB at an introductory level
Assignments and Grading
- Exams (2)
- Midterm (25%) Oct 9 (9:15-10:55am)
- Final (25%)
- Labs (5) (25%)
- Programs (2) (15%)
- Attendance/Participation: labs, MyProgrammingLab questions (5%)
- Attendance/Participation: class (5%)
Grading:
- 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.
- EXCEPTION: The course grade cannot be more than one letter grade higher than the best exam grade.
For example, if a student fails both the midterm and final, the course grade can be no higher than D.
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% |
- 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.
- Attendence
- Students are required to attend ALL lab sessions.
Attendance is marked by your TA as follows: Absent = 0, Late = 1, Present = 2, Excused = no grade (that class is not considered in grade).
- Students are required to attend ALL class lectures.
Attendance is evaluated indirectly
through participation of clicker questions, and being randomly called on in class.
Students are responsible for anything taught or announced in lecture.
Studies have shown that the most significant factor in getting a good grade in a computer
science class is simply attending and taking notes.
- Submission of Assignments
- All assignments must be submitted electronically to the course Sakai site. Emailed assignments will NOT be accepted.
- Lab 1 is done individually. All other labs and programs are done in pairs. Both
members of the pair must be in the same lab section.
Both members of the pair must fully contribute to and understand each assignment.
If one member of the pair does not contribute a fair share (for example, cannot explain
whet his/her program does), that member's grade may be reduced accordingly.
Students may change partner at any time, and should do so if the partner is not fairly contributing.
- All assignments must include your name(s) and section number.
- Please periodically check Sakai to verify your grades are recorded correctly.
- 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.