I am excited to announce that our new intro to computer science curriculum will be based on Harvard University’s most popular class, CS50: An introduction to the intellectual enterprises of computer science and the art of programming. The curriculum is designed for those both with and without prior programming experience, and will teach you how to think algorithmically and solve problems efficiently. These skills will continue to be useful to you whether or not you decide to pursue further computer science education
At the end of the course, you will be expected to create a final project in the programming language of your choice, either individually or as a collaborative project, which you will present to your peers.
Some of the real-world problem sets that you will work on in this class include:
- Designing your own animation, game or interactive art
- Encrypting messages by creating ciphers
- Recovering images that were deleted from a compact flash card
- Completing a spell checker capable of spell-checking the script from Austin Powers
- Implementing your own web server
- Designing a financial web site to buy and sell stocks
- Creating a web application that combines google maps and google news to allow users to search a location for news local to specific towns, cities and zip codes
Course Essential Questions:
- How do we know if an algorithm works?
- What benefits does pseudo code provide that code perhaps doesn’t?
- How can we tell if program is efficient?
- How do memory errors open up a system to attacks by hackers?
- What are the pros and cons of various programming design decisions?
- How does the internet work behind the scenes?
Grades will be posted online at engrade.com and will be weighted as follows:
- 10% Class Participation
- 40% Problem Set Assignments (in-class and at home)
- 25% Quizzes
- 10% Midterm
- 15% Final Project
This course’s philosophy on academic honesty is best stated as “be reasonable.” The course recognizes that interactions with classmates and others can facilitate mastery of the course’s material. However, there remains a line between enlisting the help of another and submitting the work of another.
The essence of all work that you submit to this course must be your own. Helping a classmate identify a bug in his or her code is reasonable, while submitting another student’s work as your own is not.
- Notebook or section in a binder dedicated to Computer Science
- Headphones to watch instructional videos in school and at home
The basis of learning in this class will be through working on the problem sets. Support will be given to you to work on these at your own pace, in class and at home, through step by step instructions and videos, which will help you break down each problem and identify the appropriate logic. I will be available to help coach you through these problems as well. Fixing mistakes that we make when coding, is such a major part of the process, there is a special name for it, debugging! Though these problem sets may be challenging at times, do know that making mistakes, trying different approaches, and sometimes feeling frustrated is part of the learning process. The reward comes when your program compiles and executes successfully! You can see the result of your hard work right there in front of your eyes!
If you need extra help, I will be available to work with you during lunch or after school. I can also be reached via email at MTanzosh@schools.nyc.gov. Please don’t hesitate to ask if you have a question or need some extra support!
I look forward to working with you throughout the year and having a lot of fun along the way!