CS 150 GEPS - Winona State University

advertisement
WINONA STATE UNIVERSITY
REQUIRED CHECKLIST FOR ALL CURRICULAR PROPOSALS
Course or Program___________CS150_________________
This checklist enables A2C2 representatives to endorse that their departments have accurately followed the Process for
Accomplishing Curricular Change. For each course or program proposal submitted to A2C2, this checklist must be completed,
signed by the submitting department's A2C2 representative, and included with the proposal when forwarded for approval. Peer
review of proposals is also strongly advised, e.g., departments should discuss and vote on the proposals as submitted to A2C2,
rather than on just the ideas proposed or drafts of proposals.
If a proposal fails to follow or complete any aspect of the process, the Course and Program Proposal Subcommittee will
postpone consideration of the proposal and return it to the department's A2C2 representative for completion and resubmission.
Resubmitted proposals have the same status as newly submitted proposals.
Note: This form need not be completed for notifications.
1. The appropriate forms and the “Approval Form" have been completed in full for this proposal. All necessary or
relevant descriptions, rationales, and notifications have been provided.
___x_____ Completed
2a. The “Financial and Staffing Data Sheet" has been completed and is enclosed in this proposal, if applicable.
____x____ Completed
________ NA
2b. For departments that have claimed that “existing staff" would be teaching the course proposed, an explanation has
been enclosed in this proposal as to how existing staff will do this, e.g., what enrollment limits can be accommodated by
existing staff. If no such explanation is enclosed, the department's representative is prepared to address A2C2's questions
on this matter.
___x_____ Completed
________ NA
3. Arrangements have been made so that a department representative knowledgeable of this proposal will be attending
both the Course and Program Proposal Subcommittee meeting and the full A2C2 meeting at which this proposal is
considered.
____x____ Completed
Name and office phone number of proposal's representative: _Gary Bunce 457-5377______
4. Reasonable attempts have been made to notify and reach agreements with all university units affected by this proposal.
Units still opposing a proposal must submit their objections in writing before or during the Course and Program Proposal
Subcommittee meeting at which this proposal is considered.
________ Completed
___x_____ NA
5.
The course name and number is listed for each prerequisite involved in this proposal.
____x____ Completed
________NA
6. In this proposal for a new or revised program (major, minor, concentration, etc.), the list of prerequisites provided
includes all the prerequisites of any proposed prerequisites. All such prerequisites of prerequisites are included in the total
credit hour calculations. ________ Completed __x______ NA
7.
In this proposal for a new or revised program, the following information for each required or elective course is provided:
a.
The course name and number.
b.
A brief course description.
c.
A brief statement explaining why the program should include the course.
________ Completed
__x______ NA
8.
This course or program revision proposal:
a.
Clearly identifies each proposed change.
b.
Displays the current requirements next to the proposed new requirements, for clear, easy comparison.
________ Completed
__x______ NA
9. This course proposal provides publication dates for all works listed as course textbooks or references using a standard
form of citation. Accessibility of the cited publications for use in this proposed course has been confirmed.
___x_____ Completed
________ NA
__________________________________________________
Department's A2C2 Representative or Alternate
______________________
Date
[Revised 9-05]
WINONA STATE UNIVERSITY
PROPOSAL FOR GENERAL EDUCATION PROGRAM COURSES
Department _______Computer Science__________________
Date ______02/15/2012________
___CS150______________ ______Overview of Computer Science___________________
Course No.
Course Name
__3___
Credits
Prerequisites____qualifying score on math placement exam or Math 050_________________
GEP Goal Area(s):*
CORE GOAL AREAS
_____Goal 1: Communication
_____Goal 3: Natural Science
_ X__Goal 4: Mathematics/Logical Reasoning
_____Goal 5: History and the Social and Behavioral
Sciences
_____Goal 6: The Humanities and Fine Arts
THEME GOAL AREAS
_____Goal 7: Human Diversity
_____Goal 8: Global Perspective
_____Goal 9: Ethical and Civic Responsibility
_____Goal 10: People and the Environment
* Courses may be submitted for up to two Goal Areas.
Additional Requirement Categories:
_ __Intensive:
_____ 1. Writing
_____ 2. Oral Communication
__ __ 3. a. Mathematics/Statistics
__ __ b. Critical Analysis
_____ Physical Development and Wellness
Provide information as specified in the previous directions.
Attach a General Education Program Approval Form.
Department Contact Person for this Proposal:
__Gary Bunce__________________
Name (please print)
____507-457-5377___ ____gbunce@winona.edu_________
Phone
e-mail address
[Revised 9-6-11]
WINONA STATE UNIVERSITY
GENERAL EDUCATION PROGRAM APPROVAL FORM
Routing form for General Education Program Course approval.
Course____CS150_____________
Department Approval
_________________________________
Department Chair
________________
Date
Dean’s Recommendation _____ Yes
_____ No*
_________________________________
Dean of College
________________
Date
______ ndebnath@winona.edu________________
e-mail address
*If the dean does not approve the proposal, a written rationale shall be provided to the General Education Program
Subcommittee.
GEPS Recommendation _____ Approved
_________________________________
General Education Program Director
_____ Disapproved
________________
Date
A2C2 Recommendation _____ Approved
_________________________________
Chair of A2C2
_____ Disapproved
________________
Date
Faculty Senate Recommendation _____ Approved
_________________________________
President of Faculty Senate
________________
Date
Academic Vice President Recommendation
_________________________________
Academic Vice President
Decision of President
_____ Approved
_________________________________
President
_____ Disapproved
_____ Approved
_____ Disapproved
________________
Date
_____ Disapproved
________________
Date
Please forward to Registrar.
Registrar
recorded.
_________________
Please notify department chair via e-mail that curricular change has been
Date entered
[Revised 7-13-11]
GEP Course Approval
Department or Program:
Course Number:
Course Title:
Semester Hours:
Frequency of Offering:
Course Description:
Computer Science
CS 150
Overview of Computer Science
3
every semester; 60 students/year
Course is designed for non-majors who desire a survey of the field of
computing/computer science. It includes studies of the mathematical/logical
formulations of algorithms for problem solving. After a brief history of the
development of computers, students are introduced to such fundamental issues as
problem-solving, algorithm design, representation and analysis, logic design, computer
organization, machine and assembly language, software design and analysis, various
number representations and conversions, and mathematical models of computation.
Prerequisite:
GEP Goal Area:
qualifying score on the mathematics placement exam or MATH 050.
4: Mathematical/Logical Reasoning
Student Learning Outcomes:
Upon entering CS 150, students should be able to
 Do basic arithmetic.
 Use a personal computer.
 Open, edit and save files.
Upon completing CS 150,
O1 – To illustrate historical and contemporary applications of mathematical/logical systems, students
will:
 Be able to do number representations and conversions among the number systems used with
computers; decimal, binary and hexadecimal.
 Have and understanding of how basic data, text, sound, and colored images are stored on a
computer.
 Have a basic understanding of Boolean logic, truth tables and how they apply to designing
computer circuits.
 Have an appreciation for and understanding of the evolution of modern computing systems.
 Have an appreciation for and understanding of the evolution of how computers are
programmed
O2 – To clearly express mathematical/logical ideas in writing, students will
 Develop and document algorithms.
 Analyze algorithms and express their complexity using order of magnitude notation.
O3 – To explain what constitutes a valid mathematical/logical argument, students will
 Analyze a variety of classical and modern algorithms.
 Know the basic components of a computer system and understand how these components
interact to logically construct a computer.
O4 – To apply higher-order problem solving and/or modeling strategies, students will
 Explore and understand what it takes to solve a problem, and to discover, develop, document
and analyze an algorithm.
 Explore how the computer is used to implement algorithms using machine language,
assembly language and a higher level language, Java.
Course Outline:
1) An Introduction to Computer Science(Supporting outcome O1)
a. Definition of Computer Science
b. Definition of an algorithm
c. Importance of algorithmic problem solving
2) Algorithm Discovery and Design(Supporting outcomes O2, O4)
a. Designing and representing algorithms
b. Pseudocode; sequential, conditional and iterative operations
c. Examples of common algorithms
3) The Efficiency of Algorithms(Supporting outcome O3)
a. Attributes of an algorithm
b. Measuring efficiency of an algorithm, order of magnitude
c. Understanding of and efficiency of searching, sorting, data compression and pattern matching
algorithms
4) The Building Blocks: Binary Numbers, Boolean Logic, and Gates(Supporting outcome O1)
a. Representing and converting numbers among the decimal, binary and hexadecimal number systems.
b. Boolean logic, the basic operations, truth tables and expressions.
c. Logic gates and basic computer circuits
d. A Circuit Construction Algorithm
e.. Examples of Circuit Design and Construction
f. Control Circuits
5) Computer Systems Organization(Supporting outcomes O1, O3, O4)
a. The Components of a Computer System
i. Memory and Cache
ii. Input/Output and Mass Storage
iii. The Arithmetic/Logic Unit
iv. The Control Unit
b. Putting All the Pieces Together—the Von Neumann Architecture
c. Programming the raw machine – machine language
d. The Future: Non—Von Neumann Architectures
6) An Introduction to System Software and Virtual Machines(Supporting outcomes O1, O4)
a. The Virtual Machine
b. Types of System Software
c. Assemblers and Assembly Language
d. Functions of an Operating System
e. Historical Overview of Operating Systems Development
7) Introduction to High-level Programming(Supporting outcome O4)
a.. Introduction to Java
b. A Simple Java Program
c. Statement Types
d. Managing Complexity
e. Object-oriented Programming
Learning Objective
Illustrate historical and
contemporary applications
of mathematical/logical
systems.
Clearly express
mathematical/logical ideas
in writing
Explain what constitutes a
valid mathematical/logical
argument.
Apply higher-order problem
solving and/or modeling
strategies
Learning Opportunity
Assessment & Evaluation
 Be able to do number representations
and conversions among the number
systems used with computers;
decimal, binary and hexadecimal.
 Have and understanding of how basic
data, text, sound, and colored images
are stored on a computer.
 Have a basic understanding of
Boolean logic, truth tables and how
they apply to designing computer
circuits.
 Have an appreciation for and
understanding of the evolution of
modern computing systems.
 Have an appreciation for and
understanding of the evolution of how
computers are programmed
Lab exercises on constructing
Boolean expressions and using
them to design simple circuits.
Also on using truth tables to
construct and evaluate Boolean
expressions. Several lab
exercises on programming in
machine language, assembly
language and Java. Homework.
Exams.
 Develop and document algorithms.
 Analyze algorithms and express their
complexity using order of magnitude
notation.
Lab exercises to explore
algorithms, learning how to
write algorithms and to
discover and document their
complexity using order of
magnitude notation.
Homework. Exams
 Analyze a variety of classical and
modern algorithms.
 Know the basic components of a
computer system and understand how
these components interact to logically
construct a computer.
 Explore and understand what it takes
to solve a problem, and to discover,
develop, document and analyze an
algorithm.
 Explore how the computer is used to
implement algorithms using machine
language, assembly language and a
higher level language, Java.
Lab exercises on analyzing
algorithms and their
complexity. Homework. Exams
Lab exercises exploring
algorithmic solutions and lab
exercises on machine language,
assembly language and Java
programming. Homework.
Exams
Course Syllabus
Course: CS 150: Overview of Computer Science
Texts: Schneider and Gersting, “Invitation to Computer Science, Java Version”, 2 nd edition, Thompson, 2004.
Lambert and Whaley, “Invitation to Computer Science Laboratory Manual, Java Version”, 2nd edition,
Thompson, 2004.
Prerequisites:
Qualifying score on the mathematics placement exam or Math 050.
Credits:
3 S.H.
Instructor:
Gary Bunce
Office phone: 457-5377
Office:
Watkins 103E
Office hours: 10:00 am- 10:50am MTWThF
e-mail:gbunce@winona.edu
11:00am- 11:50pm MWF
Course web site:http://cs.winona.edu/gbunce/cs15001/
2:00pm - 2:50pm MW
Topics we will attempt to cover include, but are not limited to:
I. An Introduction to Computer Science
V. Computer Systems Organization
A. Introduction
A. Introduction
B. The Definition of Computer Science
B. The Components of a Computer System
C. Algorithms
1. Memory and Cache
1. The Formal Definition of an Algorithm
2. Input/Output and Mass Storage
2. The Importance of Algorithmic Problem
3. The Arithmetic/Logic Unit
Solving
4. The Control Unit
C. Putting All the Pieces Together—the Von
II. Algorithm Discovery and Design
Neumann Architecture
A. Introduction
D. The Future: Non—Von Neumann Architectures
B. Representing Algorithms
1. Pseudocode
IX. An Introduction to System Software and Virtual
2. Sequential Operations
Machines
3. Conditional and Iterative Operations
A. Introduction
C. Examples of Algorithmic Problem Solving
B. System Software
III. The Efficiency of Algorithms
1. The Virtual Machine
A. Introduction
2. Types of System Software
B. Attributes of Algorithms
C. Assemblers and Assembly Language
C. Measuring Efficiency
1. Assembly Language
1. Sequential Search
2. Examples of Assembly Language Code
2. Order of Magnitude—Order n
3. Translation and Loading
3. Selection Sort
D. Operating Systems
4. Order of Magnitude—Order n2
1. Functions of an Operating System
D. Analysis of Algorithms
2. Historical Overview of Operating Systems
1. Data Cleanup Algorithms
Development
2. Binary Search
3. The Future
3. Pattern Matching
VII. Introduction to High-level Programming
E. When Things Get Out of Hand
A. Where Do We Stand?
IV. The Building Blocks: Binary Numbers, Boolean
B. High-level Languages
Logic, and Gates
C. Introduction to Java
A. Introduction
1. A Simple Java Program
B. The Binary Numbering System
2. Running a Java Program
1. Binary Representation of Numeric and
D. Virtual Data Storage
Textual Information
E. Statement Types
2. Binary Representation of Sound and Images
1. Input Statements
3. The Reliability of Binary Representation
2. Output Statements
4. Binary Storage Devices
3. The Assignment Statement
C. Boolean Logic and Gates
4. Control Statements
1. Boolean Logic and operations
F. Meeting Expectations
2. Gates
G. Managing Complexity
E. Building Computer Circuits
1. Divide and Conquer
1. Introduction
2. Using Methods
2. A Circuit Construction Algorithm
3. Writing Methods
3. Examples of Circuit Design and
H. Object-oriented Programming
Construction
1. What Is It?
F. Control Circuits
2. Java and OOP
3. What Have We Gained?
GRADING:
a. 2 or 3 hour exams (75-100 points each) plus a final exam (150-200 points)
b. Homework, quizzes and laboratory assignments as needed
c. Attendance counts. You will start with 100 points, 2 point will be deducted for each day you are absent.
d. Each student's points will be totaled and course grades will be based on a curve defined by these totals.
You are responsible for all material covered in class. Class assignments are due at the beginning of the class period
on the due day. No questions will be answered about a project prior to class on the same day the project is due.
Make-up exams and late assignments will not be accepted except in cases of extreme emergency or when you have
had prior approval from me. There will be no makeup for quizzes. Any type of unethical behavior (e.g., cheating,
lying, plagiarism, abuse of the computer systems, etc.) will result in failure in this course.
ACADEMIC DISHONESTY POLICY: Cheating is a deplorable act and it will not be tolerated in CS 150 or any
other class that I teach. Anyone caught cheating in class will receive a grade of F for the class. Note that if you are
caught cheating you will not be permitted to withdraw from the class (i.e., the F will go on your permanent
transcript). All projects and homework assignments are individual assignments unless explicitly stated otherwise.
That means that you must do the work entirely by yourself. To ensure that you adhere to this policy, for each
assignment, you are required to sign it, this is your indication that you alone were responsible for the work. It is
considered cheating to copy any portion of the assignment from anyone else or to knowingly permit someone else to
copy your assignment. All exams in CS 150 are closed book/closed notes. It is considered cheating to view your
book or notes or to communicate with or copy from a classmate during an exam. Note that any student who fails a
CS major course because of cheating is no longer eligible to enroll in CS 491, Practicum in Computer Science. Also,
note that students are allowed to attempt a specific computer science class at most three times. A student wishing to
appeal this policy must follow the process defined in the Course Repetition Limit Appeal document.
Sample Assignments
Week 1
Lab
- Learning the animator software
- A computer science glossary
- Web Navigation
Weeks 2 - 5
Exercise - Pseudocode, designing and representing algorithms
Lab
- Searching for a value, sequential search
- Searching for the largest value
- Complexity analysis of linear search
Exercise - Sorting, Selection sort, Bubble sort
Lab
- Sorting, Complexity of sorts
Lab
- Data cleanup algorithms, comparison and complexity
Exercise - Binary Search
Lab
- Binary search, discovering its complexity
Exam #1
Weeks 6 - 7
Exercises - Number conversions. Representing text, sound and image data
Weeks 8 - 9
Exercise - Evaluating Boolean expressions
Lab
- Logic Circuits, part A
Lab
- Logic Circuits, part B
Exam #2
Weeks 10 - 12
Lab
- Von Neumann machines
- The fetch – execute cycle
- Representing algorithms in machine language
Lab
- The assembly process
- Representing algorithms in assembly language
Exercise - Representing algorithms in assembly language
Weeks 13 - 14
Exercise - Understanding basic Java syntax and statements
Lab
- Java Programming, input, output and control structures
Lab
- Java Programming, methods and arrays
Exam #3
Week 15
Lab
- Programming Language Translation
Download