COMPUTER SCIENCE SUB-GROUP

Similar documents
BCS2B02: OOP Concepts and Data Structures Using C++

KITES TECHNOLOGY COURSE MODULE (C, C++, DS)

Introduction to Programming System Design. CSCI 455x (4 Units)

Basic Programming and PC Skills: Basic Programming and PC Skills:

Course MS10975A Introduction to Programming. Length: 5 Days

How To Teach C++ Data Structure Programming

Glossary of Object Oriented Terms

Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

Some programming experience in a high-level structured programming language is recommended.

The C Programming Language course syllabus associate level

Curriculum Map. Discipline: Computer Science Course: C++

DATA STRUCTURES USING C

Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles

El Dorado Union High School District Educational Services

Krishna Institute of Engineering & Technology, Ghaziabad Department of Computer Application MCA-213 : DATA STRUCTURES USING C

Programming and Software Development CTAG Alignments

Course Title: Software Development

An Introduction to Programming and Computer Science

ALLIED PAPER : DISCRETE MATHEMATICS (for B.Sc. Computer Technology & B.Sc. Multimedia and Web Technology)

RARITAN VALLEY COMMUNITY COLLEGE ACADEMIC COURSE OUTLINE. CISY 105 Foundations of Computer Science

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

Yarmouk University Faculty of Science and Information Technology Department of Computer Information Systems CIS 282 Developing Web Applications

Domains and Competencies

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Android Application Development Course Program

Objective C and iphone App

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

PART-A Questions. 2. How does an enumerated statement differ from a typedef statement?

C Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands

PROBLEM SOLVING SEVENTH EDITION WALTER SAVITCH UNIVERSITY OF CALIFORNIA, SAN DIEGO CONTRIBUTOR KENRICK MOCK UNIVERSITY OF ALASKA, ANCHORAGE PEARSON

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

FLORIDA STATE COLLEGE AT JACKSONVILLE COLLEGE CREDIT COURSE OUTLINE. Introduction to Programming with Visual Basic.NET

WORKSPACE WEB DEVELOPMENT & OUTSOURCING TRAINING CENTER

Computer Science. 232 Computer Science. Degrees and Certificates Awarded. A.S. Degree Requirements. Program Student Outcomes. Department Offices

Computer Science. Computer Science 207. Degrees and Certificates Awarded. A.S. Computer Science Degree Requirements. Program Student Outcomes

AP Computer Science AB Syllabus 1

COMPUTER SCIENCE (5651) Test at a Glance

Syllabus Introduction to C++ Programming and Numerical Analysis Spring 2016

AQA GCSE in Computer Science Computer Science Microsoft IT Academy Mapping

Java Application Developer Certificate Program Competencies

#820 Computer Programming 1A

COMPUTER SCIENCE, BACHELOR OF SCIENCE (B.S.)

El Dorado Union High School District Educational Services

OKLAHOMA SUBJECT AREA TESTS (OSAT )

EMC Publishing. Ontario Curriculum Computer and Information Science Grade 11

DOVER-SHERBORN HIGH SCHOOL PROGRAM OF STUDIES

Online Course Syllabus CS320: C Programming

Computer Science. Computer Science 213. Faculty and Offices. Degrees and Certificates Awarded. AS Computer Science Degree Requirements

Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition

Texas Essential Knowledge and Skills Correlation to Video Game Design Foundations 2011 N Video Game Design

Java EE Web Development Course Program

I PUC - Computer Science. Practical s Syllabus. Contents

CompuScholar, Inc. Alignment to Utah's Computer Programming II Standards

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

TAMALPAIS UNION HIGH SCHOOL DISTRICT Larkspur, California. Course of Study COMPUTER PROGRAMMING 1-6

Java (12 Weeks) Introduction to Java Programming Language

COMPUTER SCIENCE COURSE OUTLINE

Java Software Structures

: provid.ir

Summit Public Schools Summit, New Jersey Grade Level / Content Area: Mathematics Length of Course: 1 Academic Year Curriculum: AP Computer Science A

Computing Concepts with Java Essentials

School of Computing and Information Sciences. Course Title: Computer Programming III Date: April 9, 2014

Fundamentals of Java Programming

AP Computer Science Java Subset

Department of Computer Science

NEW YORK CITY COLLEGE OF TECHNOLOGY/CUNY Computer Systems Technology Department. COURSE: CST2403 C++ Programming Part 1 ( 4 hours, 3 credits )

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

AP Computer Science A - Syllabus Overview of AP Computer Science A Computer Facilities

Course Descriptions. CS 101 Intro to Computer Science

DIABLO VALLEY COLLEGE CATALOG

10CS35: Data Structures Using C

COURSE OUTLINE. Prerequisites: Course Description:

Chapter 1 Fundamentals of Java Programming

C++ INTERVIEW QUESTIONS

Embedded C Programming, Linux, and Vxworks. Synopsis

Computer Science Course Descriptions Page 1

Computer Science 1-3 (AP) Syllabus/Online Course Plan

02-201: Programming for Scientists

Computer Science III Advanced Placement G/T [AP Computer Science A] Syllabus

Programming with the Microsoft.NET Framework Using Microsoft Visual Studio 2005 (VB)

UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

COMPUTER SCIENCE. 1. Computer Fundamentals and Applications

TECHNOLOGY Computer Programming II Grade: 9-12 Standard 2: Technology and Society Interaction

Programming and Software Development (PSD)

Visual Basic. murach's TRAINING & REFERENCE

Computer Programming I

Course Descriptions. preparation.

Syllabus for CS 134 Java Programming

MA-WA1920: Enterprise iphone and ipad Programming

Data Structure [Question Bank]

Objectif. Participant. Prérequis. Remarque. Programme. C# 3.0 Programming in the.net Framework. 1. Introduction to the.

Computer Programming I

FOPR-I1O23 - Fundamentals of Programming

A LOOK BACK: UNDERGRADUATE COMPUTER SCIENCE EDUCATION: A NEW CURRICULUM PHILOSOPHY & OVERVIEW

COWLEY COLLEGE & Area Vocational Technical School

CSE 326, Data Structures. Sample Final Exam. Problem Max Points Score 1 14 (2x7) 2 18 (3x6) Total 92.

Transcription:

1 P a g e http://cs.stormingrobots.com Computer Science skill should go beyond just programming itself but much more importantly in problems solving skill with computational thinking even for grade schools. Automation is entrenched in our daily lives in the era of digital age. Computer Science with computational thinking is indispensable for strengthening the foundation. This sub-group aims to build this core foundation and sharpen students' problem solving skills in this digital world, no matter whether in engineering, or even liberal arts area. Storming Robots utilizes Robotics to animate problem solving effort starting from Grade 4. However, we encourage students to study in this Algorithms in C/C++ Track starting from Grade 8. This document lists a summary of the Syllabus covered in this Track. This syllabus consists of four levels targeting for students from Grade 8+. Syllabus is designed to work with our roboclub model to facilitate needs for individual s interests and strength. Characteristics: Books: COMPUTER SCIENCE SUB-GROUP All levels stress in Computational Thinking and Efficiency. Students, who readily master a skill, who be allowed to move quickly to the next concept. Those with gaps in their prerequisite knowledge will receive additional exercises to address these shortcomings. Progress is self-paced with excellent work quality. Exercises are often adjusted for varying levels of students achievement. This is to ensure all students will master a concept building a strong foundation before tackling new concepts. All assigned exercises are completed with excellent quality, i.e. no ad-hoc wasted memory space, inefficient codes, etc. Students must complete at least Level I in order to progress to a Secondary level of robotics competitions. However, Level II is more preferable. Accomplish at least Level II and demonstrate excellent understanding in order to conduct advanced projects involving automation. Focus on problems solving/software development skill, so students will not work with the physical robot Allow students to embed other competitions in-between levels. Level I to II : C Programming: A Modern Approach, 2nd Edition - ISBN-13: 978-0393979503; Book for Level III : C++ Primer Plus (6th Edition) (Developer's Library) 6th Edition: o ISBN-13: 858-0001090474, or ISBN-10: 0321776402. Additional learning notes from instructor. Software: Microsoft Visual Studio Community Version.

2 P a g e LEVEL I Completion of Level I is required for all students who wish to participate in any Secondary level of Robotics Competition. Building proper Mindset in computational thinking and analysis. Know how to use Debugger including break points, observation of variables, watch feature. By the time this level is completed, students should have completed 30+ programs. This is not a hardset number because more exercises will be given if necessary in order to strengthen one s understanding in a certain subject matter. Build fundamentals of programming with an emphasis on producing clear, robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. This will help them immensely in their future endeavor in any engineering programs. At completion of level I, you not only should have covered the core control structure foundation required in AP Computer Science, but also will be stronger in programming analysis. Most programs exercises you have completed in this level exercise higher analytical skill required in AP Comp. Sci. The only additional content will be in the basics in OOPS design pattern. That will be covered in Level III. Students demonstrated high proficiency in this level will be able to self-study for AP Computer Science A with ease. WHAT WILL BE COVERED 1) Introducing C and Strengths and Weaknesses of C - Chapter 1 How to use the Microsoft Visual C/C++ Compiler IDE. 2) C Fundamentals in writing Simple Program - Chapter 2 3) Formatted Input/Output - Chapter 3 4) Expressions (simple to compound) - Chapter 4 5) Selection Statements 63 - Chapter 5 Introduction of State Tables/Diagrams. Simple idea in State machine more example exercises using switch to implement state tables. More in depth will be covered in Level III. 6) Loops Control Structure - Chapter 6 7) Important understanding in Primitive Types - Chapter 7 Base conversions Understand signed bit 8) Arrays : One and Multi- Dimensional - Chapter 8 basic sorting algorithms insertion sort. 9) Fundamentals in creating Functions 155 - Chapter 9 10) Basic Recursive Functions Additional learning materials additional to the textbook will be provide to students for reinforcement. 11) Basics in Creating a project with multiple programs - Chapter 10 Touch on the process from compilation to linkage.

3 P a g e 12) Writing Large Programs Chapter 15 proper division into header files, basic directives, sharing files, etc. 13) Basic in using Structures, Unions, and Enumerations chapter 16. Additional projects: Prime number generator. At the end of the project, all programs must meet minimum performance requirement 100,000 prime numbers within 3 msecs with our i5 processor CPU. Count of Sets of Anagrams through a series of multiple words. Write a Tic-tac-toe program to allow 2 humans to play against each other. This work is not considered to be done until an excellent programming style is achieved, i.e. contain sense of encapsulation, compact but extremely readable programming styles.

4 P a g e LEVEL II By the time this level is completed, students should have completed 20+ programs. You should expect each exercise will be longer than those exercises in Level I. Strengthen Strong fundamentals of programming with an emphasis on producing clear, robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. This will help them immensely in their future programming endeavor such as robotics projects, competitions. You should be ready to work on practice exercises posted on www.usaco.org Bronze level. Students should start doing practice themselves as there are many exercises available online at www.usaco.org. During October to April, students are encouraged to continue working on USACO problems set, as well as take the Bronze Level online Exam. Do note: Students are encouraged to complete Level II before returning back to more advanced RobocupJunior robotics competitions. WHAT WILL BE COVERED 1) Introduction to Recursion partial Chapter 9 2) Simple Project creation with multiple programs partial Chapter 10 3) Pointers Chapter 11 4) Pointers and Arrays (1D and multi-dimensional) Chapter 12 5) Strings Chapter 13 6) String Manipulation Chapter 13 using C string vs memory library 7) Arrays of Strings Chapter 13 recursive censor string challenge 8) Command-Line Chapter 13 Arguments Command line compilation & linking How to use system path, etc. 9) More on the Preprocessor - Chapter 14 Conditional Compilation, such as #if, #elif, #line, etc. 10) Use Makefile to build a Multiple-File Program Chapter 15 11) More on Structures, Unions, and Enumerations Nested Arrays and Structures Structure pointer 12) Bitwise operations Chapter 20 also include binary arithmetic State diagram for a simple N-bits state sequence Using bits in structure 13) More on File I/O Chapter 22 Simple File I/O with C++ cin/cout/fstream http://learning.stormingrobots.com 14) Revisit Recursion Chapter 9 More on sorting Write their own QuickSort Algorithm for sorting array of integers.

5 P a g e NQueen Algorithm Binary Search Math Expression Parsing parse the postfix 15) Abstract Data Type Chapter 17 Advanced Uses of Pointers dynamic memory manipulation, generic pointers pointers to function. Linked List Stack vs. Queue 16) Explore State Diagrams (additional) Special Note: For students who aim to study in Computer Science in College, they may move onto Level IV after II in order to cover some more advanced algorithms instead of OOPS in Level III.

6 P a g e LEVEL III (OOPS) This level does not necessarily mean being more complex topics than Level II. This level will extend over what is required in AP Computer Science A. AP Computer Science A requires knowledge in very rudimentary level in Object Oriented Programming Model (often referred as OOPS). With strong Level II foundation, students should have built a high analysis skill and intuition to adapt OOPs C++. Students will switch book for this level. Students will switch to C++ Primer Plus at this Level. By the time this level is completed, students should have completed more than 20 programs. At the end of this level, you will have a good basic foundation of Object-Oriented Design Pattern. If you are going into computer engineering or any courseware which involves working with micro-controller libraries, completion of this will help you greatly in working with these libraries. WHAT WILL BE COVERED: 1) More on Storage Class Chapter 18 *** will simply touch on this chapter. It is easy enough for students to review this themselves. 2) Object Oriented Pattern Design with C++ Chapter 19 and additional materials Encapsulation Data Hiding Inheritance Polymorphism 3) Basic Class Types in C++ (Additional) Basic Class/Object Programming Structure Constructors, Destructors Overloading 4) Vectors and Stings Chapter 3 & 9 of C++ book 5) Exceptions Handling Chapter 5 of C++ book 6) More with C++ I/O Chapter 8 of C++ book 7) Generic Algorithms Chapter 10 of C++ book 8) Class Design - Chapter 13 & 14 of C++ book 9) Exceptions Handling Chapter 18 of C++ book Other chapters in the C++ book are excellent materials for references on advanced topics, tools and techniques. These chapters gear towards advanced self-learners. Therefore, the amount of coverage on the remaining chapters will depend on the individual student s strength and interest, and availability outside school work.

7 P a g e LEVEL IV This level requires students already very much advanced in their software programming skill. Students must be very self-driven as programs do become a lot more difficult to be implemented. Students should expect these are much harder than those presented in Level III. The following algorithms sometimes are often covered by Senior college level or even graduate school students. If you are planning to major in Computer Science in College, Level III+ work will be very beneficial. This will give you a great head start as the materials will cover courseware usually introduced in sophomore+ college levels:. Like Level III, some projects may be done with Robotics. It really depends on individual s interest and time availability. At this level, students are readily to tackle USACO Gold level. Science Data Structure Class criteria and beyond. This level will cover College Level Computer WHAT WILL BE COVERED: 1) Backtracking Algorithm - Depth First Search 2) Depth First Search MiniMax Algorithm with alpha-beta pruning 3) Breath First Search Dikystra Algorithm shortest path Maze Navigation this may be done in a maze setting with two possible challenge: a) Traverse the whole maze to seek for location of a certain target. Using BFS to go back to the start point to report the location of the target b) Have one robot to traverse a maze to seek for location of one target. Figure out the shortest path and send data remotely to home station robot. This home station robot will send traverse based on the path given by the first robot. 4) Tree and Heap : 5) Hashing concepts 6) Lossless Data Compression Algorithm Huffman Coding 7) Minimum Spanning Tree 8) Dynamic Programming 9) KnapSack 10) Projects: Examples 11) - Maze project 12) - Knapsack Problem 13) A* algorithm (Path finding) 14) Exploration in other localization techniques ( gear more towards robotics)