Jason Healy
Memorial 003
Phone Extension 4434
Feel free to stop by my office to ask questions, or just to say hi. I keep a schedule posted outside the door showing when I'm generally available. If you'd like to make sure I'm available to meet, please speak with me or e-mail me ahead of time so I can keep my schedule free for you.
This course meets four times per week (two 45-minute periods and two 70-minute periods). Class time consists of lectures and laboratory assignments. Homework consists of readings, short exercises, and completing unfinished lab work. As this is an honors-level course, students should expect to spend significant time outside of class working on their assignments.
I also expect that students will read about topics prior to learning about them during lectures; lectures serve as a time to review and ask questions but not necessarily to hear about material for the first time. We aim to spend the majority of class time working actively on programming assignments so that I am available to help students in person.
This course has the following primary objectives:
As one might imagine, you'll need access to a computer for this course. I expect that you will bring your computer with you to every class, unless I tell you in advance (on the homework assignments page) that you won't need it.
The latest version of Mac OS X 10.13 ("High Sierra") is required for this course. Other tools (compilers, build tools, and editors) will be provided by me to students (either as a direct download or an in-class installation).
No textbook is required for this course. I'll provide readings and resources online and in class.
Computer Science requires two major efforts of a student. First, they must learn how to break problems down into a structured solution that can be turned into a program. Second, they must learn the syntax and operation of a programming language to code their solution in. Note that the ability to solve problems is at least as important (if not more important) than the ability to write functioning code; students should be prepared to spend a significant amount of their time planning their solutions before coding.
In my experience, learning by doing provides the best route for absorbing the material. Thus, the student should feel free to make mistakes (in fact are encouraged to make mistakes), ask questions, and try untested methods. I cannot overstate the value of asking questions early and often; Computer Science poses many difficulties, and these should be addressed as early on in class as possible.
Given my belief that learning by doing is best, the grades in this course are based heavily on programming assignments. A breakdown of how grades are computed follows, along with a description of each grade component:
I grade assignments on a point scale, and convert raw point scores into letter grades during marking periods. If you need an estimate of your grade during the term, visit me in my office.
I evaluate programs based on the following primary criteria:
Late assignments receive a penalty for each day past their due date. Unless otherwise noted, assignments are due by the beginning of class (not during or after class). Students should always turn in late or incorrect programs, as a zero grade can cause serious damage to the term grade.
Extensions may be granted under certain circumstances. However, be warned that extensions usually require some form of "trade" to be made with the instructor (for example, detention in exchange for extra time). Extensions are more likely if there is evidence that the student has been working diligently and has an honest need for more time; waiting until the last minute to ask for an extension is not recommended.
Finally, some assignments may have a small amount of extra credit available by implementing extra functionality. However, the student should ensure that their program meets all of the regular requirements before attempting extra credit, or else the points lost will outweigh those gained from extra credit.
Unless otherwise noted, all programming assignments should be completed without the help of other students, adults, or resources (such as Internet sites, tutors, or source code). While being stuck on a problem can cause frustration, working through these difficulties remains the best way to truly learn the material. Turning in work that is not your own is not only dishonest, it prevents you from developing a full understanding of the material. Please see me if you need any extra help, or if you have any questions about these rules.
In general, my motto is "help in English is OK; help in code is not". This means that you may receive hints from a classmate about how to perform a general task, but you should not ever copy pure source code from another student (or the internet, or any other source). Again, if you have questions, ask me beforehand to make sure it's not an issue.