CS 161 - Computer Science and Multimedia Studies

advertisement
CS 161: Foundations of Computer Science I
Course Syllabus
Professor:
Fall 2016
Richard Croft, Ph.D.
Badgely Hall 109 962–3695
e-mail: rcroft@eou.edu
web: cs.eou.edu/rcroft
Office Hours:
MT RF
11:00—11:50
and by appointment or drop in.
Note that I may be in BH 123 or LH 235 during office hours.
Catalog Description
Introduces basic data representation, branching and iteration, memory management,
computer architecture, and the analysis and design of problem solutions.
About this Course
This class introduces students to the use of computers as problem solving tools—in
other words this is an introductory computer programming class.
Outcomes
Students enrolled in this class will learn basic conceptual knowledge necessary to
develop computer programs, and how to use fundamental control structures in a
representative programming language. When they have completed this course students
will be able to:
1. describe the conceptual organization of a computer;
2. describe data representation in terms of type and usages (variable or literal);
3. define problem solutions using English or pseudocode;
4. design computer algorithms using fundamental control structures (sequence,
iteration, and selection);
5. write and debug programs to implement problem solutions (algorithms);
6. design and write modular programs using functions; and
7. design and write programs that use list data.
Prerequisites:
Test into MATH 111 or higher.
Textbooks and Materials
Horstmann, C. & Necaise, R. (2014). Python for Everyone. Wiley. (ISBN
9781119916192) (Required) Earlier—or more recent—editions are acceptable
Note—This is a special edition of the text prepared for this course and available at
the EOU bookstore at a reduced price.
Each student will receive a Lab Account for the programming lab. You will use your
MountiePass ID and password to log in. You will need paper for printing
assignments in the lab.
CS 161
Syllabus
Fall 2016
Means of Assessment:
Quizzes and two exams will be used to assess student mastery of conceptual material
(outcomes 1, 2, 3 & 6), and exercises and projects will be used to assess student ability to
apply concepts (outcomes 4, 5, 6, & 7). Projects will be a series of increasingly complex
programs requiring use of concepts introduced in class.
Course Activities
This course includes regularly scheduled class meetings, reading assignments, written
exercises, lab sessions, team programming exercises, programming assignments,
quizzes, and two exams. Class meetings will be spent in lectures and class discussions
of topics and approaches to solving problems. About once a week the class will meet in
the programming lab for guided activities and team programming exercises.
Students will complete assignments and reading outside class. The programming lab is
available for students to work on programming projects. Dr. Croft will be available for
help during office hours and by appointment. Please allow yourself time to complete
work on time—a common rule of thumb for university classes is allow two to three
hours of time outside class each week for each credit hour the course carries. Warning—
the first two programming projects may seem somewhat trivial. Do not gauge the amount of
time needed for the remaining assignments by the time you need for the first two.
Policies
Attendance is required. Students who miss class are responsible for all lecture notes,
assignments, and assignment revisions distributed in the missed session. If you miss a
class, don’t just ask for a copy of someone’s notes—have them discuss them with you.
Chronic absences will very likely be reflected in poor performance on quizzes, exams
and programming assignments.
Assignments. When each exercise or project is assigned, the due date will be posted on
the class web site and announced in class. Ample time will be allowed for completion.
Begin working on solutions to programming problems as soon as you can.
Save all returned work. Keep a back-up copy of any work you turn in.
Late Assignments. Any work turned in after the due date and time may incur a 20%
penalty for each school day (or portion thereof) it is late. Within two or three class days
after the due date for programs I will post a sample solution. Programs turned in after
this time will receive no credit.
You should at least scan Assigned Readings in advance of the material being covered
in lecture. Re-read assignments after the material has been covered in class.
Once a week the class will meet in the programming lab (BH 123) for lab work. Each
week there will be a lab activity for you to complete. Thoughtful completion of lab
activities will clarify concepts covered in lecture, help you succeed on programming
assignments, and give you an idea of possible quiz and exam questions. Lab activities
are an important part of the learning for this class.
Exercises may be questions addressing your knowledge of concepts or small
programming assignments to provide practice. Working on these assignments will
strengthen your skills and help you discover where you need to focus.
CS 161
Syllabus
Fall 2016
Programming is a critical skill for computer science students and increasingly
important in many other disciplines including multimedia development, computer
graphics, mathematics, and all of the sciences. Learning to program well is time
consuming and requires great attention to detail. As we discuss new programming
techniques in class, begin thinking about the sorts of problems you may need to solve
for the next program. When an assignment is made, you should start thinking about the
design for the solution, even if all of the techniques needed haven’t been covered yet.
Since one cannot memorize the solution to every problem, concentrate on
understanding how your solution works and how you arrived at it—the ability to solve
new problems is the most important skill a programmer can develop.
Good programming style and use of documentation are also important, and
consequently will be included in consideration for grading. Appropriate documentation
and style will be gradually introduced throughout the course.
Pop quizzes will provide feedback to let you determine if you are assimilating enough
detail in course topics, and may cover lectures, discussion and assigned reading. There
will be four quizzes, with the lowest quiz score dropped. Quizzes may be made up only
if I deem the documented excuse valid.
If you have any questions, comments, concerns, or suggestions, please feel free to write
them on a slip of paper and leave it on the lectern (or hand it to me) when the class
breaks. Your feedback may help improve the course.
Academic Misconduct
Eastern Oregon University places a high value upon the integrity of its student scholars.
Any student found guilty of an act of academic misconduct (including, but not limited
to, cheating, plagiarism, or theft of an examination or supplies) may be subject to
having his or her grade reduced in the course in question, being placed on probation or
suspended from the university, or being expelled from the university—or a
combination of these. Please see Student Handbook at: Academic Honesty
Plagiarism is copying, in part or as a whole, the work of another person and submitting
it as your own, and is expressly forbidden by the University’s Academic Honesty Code.
This includes using someone else’s program as a template and revising identifiers and
documentation to create your program. Solutions that students cannot explain may be
subject to severe penalties (see above), as will any solutions that have clearly been
copied from other sources.
Classroom Decorum. Please try to get to class on time. Arriving late is a distraction, and
not courteous to other students.
Unless the class is engaged in a discussion, refrain from conversation with other
members of the class. Unnecessary conversation is a distraction to the students and to
me. If you have a question please address it to me.
Turn off cell phones and pagers while in class.
Assistance with Assignments
Expect to encounter some difficulties, especially with later assignments—that’s part of
learning to program. You may get help finding solutions from a CS faculty member or
the CS Lab Assistant. Don’t ask other students for help. If you need help but can’t make
it to my office hours, drop in or make an appointment.
CS 161
Syllabus
Fall 2016
Students with Disabilities
If you have a documented disability or suspect that you have a learning problem and
need reasonable accommodations, please contact the Disability Services Program in
Loso Hall 234 (telephone 962-3081) before the end of the second week of classes.
Grading
Your final grade for this course will depend on your completion of the assigned
exercises and programming assignments, quizzes, and exams. Note that the weight
given each program will depend on the time it requires. Credit is distributed as follows:
Exercises & in-class programming:
8 percent
Programming Projects:
32 percent
Quizzes:
20 percent
Midterm Exam:
15 percent
Final Exam:
25 percent
Grade cutoffs will be no higher than 92 for A, 84 for B, 75 for C and 65 for D, but may be
lower if analysis of the distribution of scores indicates they should be.
Course Schedule (Tentative*)
Week
Main Topics (Additional special topics may be announced)
Reading
1
Course introduction; Review of basic computer hardware and
types of computer languages; Using the programming lab
1.1—1.6
2
Literal and variable data; Fundamental statements
Designing programs; Data types and type conversion;
Arithmetic operations; First program due
2.1—2.2.3
1.7
2.4.1—2.4.3
3
Counter-controlled iteration; The range function and variations;
Accumulating a total;
2.5; 4.6
4
Control structures: Selection; if, if-else, and if-elif-else;
Flowcharts as design tools; Second program due
3.1—3.6
5
Control structures: sentinel controlled iteration (while)
4.1—4.5
6
Midterm exam
Modular programming & top-down design; debugging strategies
Third program due
Re-read 1.7,
2.3,
3.6
7
Subroutines (functions); Parameter passing;
Top-down design of functional programs
5.1—5.8
8
Lists (arrays) and Strings
Fourth program due
6.1—6.4;
2.4 (all)
9
Manipulating data in lists
Thanksgiving Break Wed—Fri
10
11
Special Topics; Review for Exam; Last program due
Exam: Thursday 10:00–12:00
*Schedule is subject to change depending on class dynamics.
Download