CSCI 2611 1 Hawaii Pacific University CSCI 2611 A Gentle Introduction to Computer Programming Section ____ Semester and year, meeting times Instructor: Name, contact information and other relevant information about the instructor. Course description: A gentle introduction to computer programming using a fun, popular, and powerful programming language such as Ruby or Python. Designed to teach computer programming to nonprogrammers, this course is also valuable to programmers. Students learn fundamental and universal programming concepts, as well as problem-solving and critical-thinking skills valuable for other courses and in life. Extensive programming assignments. Topics include: variables and assignment, basic data types, strings, arrays, conditional and iterative control structures, control flow, modularization, objects, methods, parameters, testing, and debugging. Mastery of Ruby or Python also provides a foundation for learning Web programming frameworks Rails or Django. Course prerequisite: Math 1105 or higher or an appropriate test score. CSCI 1011 or CSCI 1041 or instructor permission. General Education Requirement: This course is classified under the Research and Epistemology B Theme and fulfills the General Education Requirement for a course in Research and Epistemology B: Numeracy and Quantitative Reasoning. General Education Student Learning Outcomes and the Five Themes: HPU’s general education curriculum is focused around five themes. This course emphasizes the Research and Epistemology Theme and provides students with opportunities to achieve the following related general education student learning outcomes. Students will seek and achieve understanding of numerical data. [R&E 5] Students will calculate mean, median, mode and perhaps standard deviation of a group of numbers and consider what they tell about the data. Students will recognize the multiple interpretations numerical data permit and ways that they can be manipulated. [R&E 6] Students will explain why answers to their problems are significantly different and reflect on how numerical calculations are affected by precision and method of representation and data types. Students will utilize methods and technologies appropriate to the discipline to solve problems. [R&E 7] Students will understand the concept of epistemology, i.e., that there are various systems of gathering/organizing/analyzing/evaluating in the process of constructing knowledge as well as multiple ways to solve a given problem. [R&E 1] The programmer (student) must carefully construct programs, walk through their execution ‘on paper’, and test the CSCI 2611 2 program to increase the quality of result and the confidence that the results are accurate and meaningful. Note: Purple text shows places where specific course information must be filled in. Red text contains explanatory notes to the instructor which should be deleted before using the syllabus. Blue explanations above should be rephrased by the individual instructor to reflect the specific approach in that section of the course. Course specific outcomes below are provided as an example and may also be rephrased or modified by the instructor. The language specific outcomes are dependent on which language is used. Course-Specific Student Learning Outcomes for CSCI 2611 Upon successful completion of the course, a student will be able to: I. Outcomes Specific to Ruby Write and execute basic computer programs using Ruby. Describe in general terms the process used to install Ruby on a Windows (PC), OS X (Mac), or Linux computer. Open a command-line interface window on a Windows (PC), OS X (Mac), or Linux computer, and use basic command-line interface commands, such as those required to change directory, list the contents of a directory, check the version of Ruby, and run Ruby programs. Use a text editor to create, edit, and save Ruby programs. Describe how to ask questions about Ruby and get help online, for example through user groups. II. Outcomes Related to Programming in General The following outcomes are taken from the report Computer Science Curriculum 2008, written by the leading professional computer science associations: o Association for Computing Machinery (ACM), and o IEEE Computer Society This report can be seen here: http://www.acm.org/education/curricula/IT2008%20Curriculum.pdf/view Programming Fundamentals: Fundamental Constructs [core] Explain the behavior of simple programs involving fundamental programming constructs covered by this unit. Modify and expand short programs that use standard conditional and iterative control structures and functions. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple output, standard conditional and iterative structures, and the definition of functions. Choose appropriate conditional and iteration constructs for a given programming task. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces. Describe the mechanics of parameter (argument) passing. Programming Fundamentals: Algorithmic Problem Solving [core] Discuss the importance of algorithms in the problem-solving process. Create algorithms for solving simple problems. Use pseudocode or a programming language to implement, test, and debug algorithms for solving simple CSCI 2611 3 problems. Describe strategies that are useful in debugging. Programming Fundamentals: Data Structures [core] Discuss the use of primitive data types and built-in data structures. Write programs that use each of the following data structures: arrays, strings. Algorithms and Complexity: Fundamental Algorithms [core] Design and implement simple numerical algorithms. Design and implement a sequential search algorithm. Design and implement a quadratic sorting algorithm (e.g., selection sort) For the rest of these required syllabus items see the details in the faculty handbook. Delete this note once the syllabus is complete. For online courses there are some additional requirements given at this link. Texts List textbooks with ISBN’s and include this language as well All textbook information (pricing, ISBN #, and e-books) for this course can be found on the HPU Bookstore website: hpu.edu/bookstore. If you have any questions regarding textbooks, please contact the HPU Bookstore at: Phone: 808-544-9347 Or e-mail: jyokota@hpu.edu mmiyahira@hpu.edu Assignments and mode of evaluation Summary of important dates and deadlines (if the schedule is a separate document and due dates are not given with the description of the assignments). Class rules and policies (including regarding attendance, late work and academic dishonesty) Schedule of events (may be attached separately)