Learn to control robots before they control you
This introductory Computer Science Course will introduce you to the art of computer programming through interaction with robots. Over the course of the term you will build your own LEGO-based robot and learn to control it in a variety of interesting ways. By the end of the course, the successful student should be able to: Write programs that include scalar variables, arrays, structs, functions, and conditional and iterative control structures in Python; apply debugging strategies to diagnose and correct syntax, logic and run-time errors; apply the input/process/output model to the implementation of robots; design programs using a structured approach that includes algorithms and functional decomposition; discuss the interaction of computer hardware and software as applied to robotics; examine the social and ethical implications of robots
Like the title says, language info etc.
In class, you are required to use our lab iMacs. However, when working on your projects outside of class, you have a choice. If you'd like to continue using our iMacs, feel free! We have three spaces that you can use:
def Scramble(n): letter = 3 pigeons = [2] while(len(pigeons) > 0): banana = False for mango in pigeons: if letter%mango == 0: banana = True if (banana == False): pigeons.append(letter) #POINT B print '`so far:', pigeons #POINT A letter+=1 return pigeonsWhat does this function actually do? To explain, rewrite the function with a proper name and proper variable names below.
Goals: by the end of this lab you will have:
0. Prelude: We'll begin with a very informal lecture on the sense-plan-act loop, as well as ultrasound sensors
1. A Basic SPA Loop
2. Bells and Whistles
3. Louder Bells and Whistles
4. Impress us!
There will be weekly homework exercises. Homework exercises are for you to play with and reinforce the concepts we talk about in class. Each person must hand in his or her own solution. Where these exercises require python programs, you MUST hand in working code, including test measures. This will be explained more fully at the appropriate time.
There will be two programming projects. These projects will combine different programming concepts and multimedia techniques, and provide opportunities for creativity. Each student must complete his or her own programming project. You may discuss algorithms with each other, but you may NOT look at each other's code. To complete these projects on time, it is critical that you start each as early as possible and get help as soon as possible when needed.
There will be labs where you will work on exercises in-class and receive help from the lab assistant, your peers and instructor.
There will be one in-class midterm exam, and a final exam that must be completed individually. There may be "pop quizzes" and independent in-class exercises. The intent is to motivate you to keep up and provide feedback on your progress. Learning to program is like learning a foreign language: if you do not speak it during some part of every day your progress will be quite slow.
Revisions: For each midterm, correct revisions to (non-zero) graded homework problems may be handed in with a new cover sheet. Doing so will redeem up to 50% of points lost.