Wayland Baptist University HAWAII CAMPUS SCHOOL OF BUSINESS SYLLABUS Mission Statement: Wayland Baptist University exists to educate students in an academically challenging, learning-focused and distinctively Christian environment for professional success, and service to God and humankind. Course: CSCI 1305-SA01 Introduction to Computer Science Term: Summer –May 27 –August 5, 2015 Instructor: Gary Teed Office Phone and Wayland Email Address: 352-3231 – gary.teed@wayland.wbu.edu or garyteed@aol.com Office Hours: I am available before and after class or by appointment if you need help or have a problem. Building and Location: Mililani Campus, Computer Lab Class Meeting Time and Location: Wednesday, 5:30-10:00PM, Mililani Computer Lab Classroom #8 Catalog Description: Overview of the field of computer science, including concepts of computer programming with an emphasis on problem solving, critical thinking, logical reasoning, design and implementation techniques, and testing; background material if needed such as GUI operating system use and file and directory manipulation; and ethics issues facing computer science professionals. Programming will be done with a modern language such as Python. Suitable for nonmajors with significant computer experience and for majors with no prior programming experience. Other students should take COSC 2311. Prerequisites: none Required Textbook: BOOK Computer Science: An Overview AUTHOR ED YEAR PUBLISHER ISBN# UPDATED Glenn Brookshear 12 2014 Pearson 9780133760064 Dennis Brylow Optional Materials: Lecture, case study and practical exercises will be used as appropriate. Information other than in the text will be made available as necessary in class. Current events will be discussed during class period. Course Outcome Competencies: Upon completion of this course the student should be able to: Demonstrate grasp of basics of computer use and operation Demonstrate comprehension of programming and basic skill Understand and describe core areas of the computer science field Demonstrate ability to perform problem solving, critical thinking, and logical reasoning Understand ethics of computer use for ordinary users and professionals Explain the organization and use of networks, including the Internet and the World Wide Web. Attendance Requirements: Attendance and oral participation are mandatory. All absences must be explained to the instructor, who will determine whether to omitted work may be made up. All Wayland students are expected to attend every class meeting; the minimum percentage of class participation required to avoid receiving a grade of “F” in the class is 75%. Students who miss the first two class meetings without providing a written explanation to the instructor will be automatically dropped from the roster as a “no-show.” Students who know in advance that they will be absent the first two class meetings and who wish to remain in the class must inform the instructor in order to discuss possible arrangements for making up absences. Statement on Plagiarism and Academic Dishonesty: Wayland Baptist University observes a zero tolerance policy regarding academic dishonesty. Per university policy as described in the academic catalog, all cases of academic dishonesty will be reported and second offenses will result in suspension from the university. Disability Statement: “In compliance with the Americans with Disabilities Act of 1990 (ADA), it is the policy of Wayland Baptist University that no otherwise qualified person with a disability be excluded from participation in, be denied the benefits of, or be subject to discrimination under any educational program or activity in the university. The Coordinator of Counseling Services serves as the coordinator of students with a disability and should be contacted concerning accommodation requests at (806) 2913765. Documentation of a disability must accompany any request for accommodations.” Course Requirements: When a student reaches that number of absences considered by the instructor to be excessive, the instructor will so advise the student and file an unsatisfactory progress report with the campus dean. Any student who misses 25 percent or more of the regularly scheduled class meetings will receive a grade of F in the course. You will be expected to keep up, or ahead, of the class schedule and assignments. Come prepared for quizzes, exams and discussion of assignments for every class. It is YOUR RESPONSIBILITY to inform me in advance of any problems, so that an alternative might be worked out. You will only be allowed to make up work early if it is pre-approved with the instructor. If you have special learning needs please let me know ahead of time. It is the University’s policy that no otherwise qualified person experiencing disabilities be excluded from participation in, be denied the benefits of, or be subject to discrimination under and educational program or activity in this University. If a student has an impairment that would require additional accommodations by the instructor and/or the University, then please inform the instructor, or Center Director, beginning of the first class session. GRADING FINAL 200 PTS A=600-540 Quiz’s 120 PTS B=539-480 LABS 110 PTS C=479-420 PROJECT 100 PTS D= 419-360 Homework 70 PTS F= Below360 Tentative Schedule: CLASS DATE Week 27 May 15 3 June 15 READING Chapter 1 2 TOPIC Topics 1. What is computer science? 2. What is an algorithm, program, software, hardware… 3. Introducing algorithms 4. History of computing from gears to PDAs 5. Founding of the Internet; Google 6. Seven Big Ideas of Computer Science (algorithms, abstraction, creativity, data, programming, internet, and impact.) 7. Some social issues about the Internet 8. Bits and bytes – main memory 9. Boolean Logic 10. Gates and flip-flops 11. Hexadecimal notation 12. Measuring memory 13. Mass storage (history and design) 14. Optical storage systems and CD storage formatting 15. Flash Memory 16. Representing TEXT 17. Storing and manipulating IMAGES 18. Representing SOUND 19. Binary Notation 20. Analog or digital (which is best?) 21. Storing and manipulating numbers (two’s complement) 22. Fractions and Floating Point Notation 1. Programming languages – programming with Python. 2. Currency conversion 3. Programming errors – syntax errors 4. Data compression 5. Compressing IMAGES 6. Compressing AUDIO and VIDEO 7. Communications errors – PARITY and ASSIGNMENT Handout provided in Class Practical Application Quiz 1 Chapter 1 Handout provided in Class Practical Application 10 June 15 3-4 HAMMING 8. TRANSITION TO MODULE 3 9. Architecture overview and the basics of a CPU 10. Program storage 11. Cache memory 12. Machine language 13. Arithmetic and Logic 14. Addressing memory 15. The machine cycle – fetch, decode, execute. 16. Program versus data 17. Logic Operations 18. Peripheral Devices and Controllers 19. Direct Memory Access, USB, Firewire 20. Communications 21. Input and Output coding with Python 22. Pipelining and multiprocessors 1. A short history 2. Smartphones 3. Software classification 4. Components of an OS 5. Firmware 6. Processing Information and Interrupts 7. Handling Competition and Semaphores 8. Deadlock – death of a process 9. OS Security – Internal and external threats. 10. TRANSITION TO MODULE 5. 11. Network classifications and topologies 12. Protocols and the “Hidden Terminal” 13. Bridges, switches, and routers 14. Cloud Computing 15. The Internet 16. Internet Applications 17. Multimedia Streaming and Wireless Telephones 18. World Wide Web and Hypertext (HTML) 19. Servers and Clients 20. Internet Protocols and Software 21. TCP/IP, UDP and OSI Layers 22. Computer Security, Hacking, Viruses, Quiz chapter 2 Handout provided in Class Practical Application 17 June 24 1 July 15 5 6-7 8 Encryption and CERT 23. Legal Approaches to Network Security 1. Algorithm Definition 2. Primitives and Programming Language 3. Pseudocode 4. More practice with Python 5. Discovery and Representation of Algorithms 6. Problem Solving and Program Development 7. Iterative Structures (searches, loops, sorts, recursion) 8. Efficiency 1. Early years – a history of programming languages 2. Beyond the machine and the evolution of programming languages 3. Variables and data types 4. Data structures and arrays 5. Control statements (GOTO) 6. Functions 7. Converting language from one to another 8. Development Packages 9. Object-Oriented Programming (OOP) 10. Logic-based Programming 11. TRANSITION TO MODULE 8 12. What is Software Engineering? 13. The Software Lifecycle – Design, Implementation – Testing – Maintenance 14. Development 15. Modularity and its Particulars (coupling, binding, etc.) 16. Design Patterns 17. Quality Assurance 18. Documentation 19. A Good Interface 20. Ownership and Liability 1. Data Structures – What are they? 2. Arrays, Lists, Queues 3. Trees, Branches, and Nodes 4. Static versus Dynamic Structures 5. Pointers 6. Storing Arrays, Aggregates, and Quiz chapter 3 and 4 Handout provided in Class Practical Application Quiz Chapter 5 Handout provided in Class Practical Application Quiz chapter 6 and 7 Handout provided in Class Practical Application 8 July 15 9 15 July 15 10 22 July 15 11 29 July 15 12 5 Aug 15 Lists 7. Storing Stacks and Queues 8. Storing Binary Trees 9. Manipulating Data Structures 10. Customized Data Types 11. Classes and Objects 12. Pointers in Machine Language MIDTERM EXAM Quiz chapter 8 1. The Significance of Database Handout provided in Class Systems Practical Application 2. Schemas 3. Database Management Systems 4. Models 5. Relational Models and SQL 6. Object-Oriented Databases 7. Database Integrity 8. Sequential, Indexed, and Hash Files 9. Data Mining 10. Social Impact of Database Technology 1. Scope of Computer Graphics Quiz Chapter 9 2. Modeling Objects and Scenes Handout provided in Class 3. Rendering, Clipping, Shading Practical Application 4. Global Lighting 5. Animation 6. Dynamics and Kinematics 1. Intelligence and Machines Quiz on Chapter 10 2. Turing Test Handout provided in Class 3. Understanding Images Practical Application 4. Language Processing 5. Reasoning 6. Representing and Manipulating Knowledge 7. Learning 8. Genetic Algorithms 9. Artificial Neural Networks 10. Robotics 11. The Consequences of Artificial Intelligence 1. Functions and their Computations Quiz on Chapter 11 2. Turing Machines Handout provided in Class 3. Universal Programming Languages Practical Application 4. Noncomputable Functions 5. A problem’s “Complexity” 6. Polynomial versus Nonpolynomial Problems 7. Cryptography and PKI Extended Computer Science Applications; Discussion of Social Media and Review for Final Examination. During this period, students will present their PROJECT on social media systems.