COQUITLAM COLLEGE COURSE NUMBER: CSCI 125-3 TITLE: INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING II (JAVA) DESCRIPTION: This course is a thorough introduction to computer science and programming suitable for students with some computer science background. Students will study the history of computers and computing, learn the fundamental concepts and terminology of computer science and acquire elementary programming skills in the Java programming language. This course is intended for students who will major in computing science or a related program. PREREQUISITES: Math 12 or equivalent and CSCI 120 Students who have obtained credit for CSCI 101, CSCI 102 or CSCI 103 may not take this course for further credit. TEXTBOOK: Java - An Introduction to Problem Solving and Programming, 6th edition Walter Savitch, Pearson /Prentice Hall, 2012 ISBN-13: 978-0-13-216270-8 ISBN-10: 0-13-216270-9 DURATION: 13 weeks, 4 hours/week. TOPICS: History of Computing Review of Elementary Programming Features - Data Types and Control Structures Problem Solving, Algorithms and Pseudocode Object-Oriented Design using UML Abstract Data Types, Classes, Objects and Methods Inheritance and Polymorphism Input/Output - Files, Streams, Events, Graphical Interfaces Data Structures - Arrays, Lists, Strings Recursion Searching and Sorting Computational Complexity Correctness - Specification, Exceptions, Testing LEARNING OUTCOMES: Upon successful completion of this course, the student will be able to: Cite some historical facts of computer science. Create Java programs that use the core features of Java to design programs to solve problems: variables, expressions, character input and output, type conversion, conditionals, iteration, methods, files and exceptions. Trace the execution of Java programs. Create Java programs using classes, objects, methods and constructors. Define and use abstract data types. Explain encapsulation, information hiding, inheritance and polymorphism. Use inheritance and polymorphism to solve problems. Define and give examples of method overloading and overriding. Describe and apply techniques to document Java programs. Use modeling tools such as UML, for object oriented design. Apply program correctness techniques such as pre and post conditions and assertions. Design and implement multi-class programs. Use elementary data structures from the Java Collections API such as arrays, lists and dictionaries. Define the RAM Model of Computation. Define and use the Big-Oh notation to determine the running time of simple algorithms. Analyze, implement and use fundamental search algorithms such as linear and binary search. Analyze, implement and use fundamental sorting algorithms such as selection sort and merge sort. Define and give examples of recursive algorithms. EVALUATION: Classwork / Homework Participation 10% Quizzes 20% Midterm Exam 25% Final Exam 45% Students must attain an overall passing grade on the weighted average of exams in the course in order to obtain a clear pass (C or better). Outline125.txt Current at: Saturday 9th July 2011, 8:02 PT, AD