Designing Solutions Through Programming Syllabus

Designing Solutions Through Programming (also known as introduction to programming) is an entry-level course for students to learn programming and design. The course is a year-long course.

The course is designed to be “fun and hard”. You will learn to program using real-world tools. You will carefully design a web application and then program the application. You will learn how to debug, and how to catch errors and little mistakes.

After you understand this, you will build two really cool web-based applications. Every student who leaves this course has a good idea if they want to continue studying computer science.

Teacher: Bill MacKenty, M.Ed.
Teacher email:
Teacher room: H121

American School of Warsaw
Bielawa. 202 Warszawska Ul.
05-520 Konstancin-Jeziorna

  • You will understand the nature of programming languages
  • You will understand how to connect to a linux server
  • You will understand how to use linux
  • You will understand the big idea of Input Process Output
  • You will understand HTML
  • You will understand how to create and edit an HTML file
  • You will understand CSS
  • You will understand how to create and edit CSS
  • You will understand PHP
  • You will understand how to create and edit a PHP file
  • You will understand how to write good code
  • You will understand how PHP and HTML work together to make web applications
  • You will understand how to solve problems (debug)
  • You will understand how to use professional-level development tools
  • You will understand how input types enable users to interact
  • You will understand how to use and modify a front-end framework, Bootstrap
  • You will understand persistence and sessions as they relate to web applications
  • You will understand databases, and how to use databases as an underlying data source for your web application
  • You will understand how to diagram solutions
  • You will understand the design process, and how professional programmers design software
  • You will design and build two solutions to a real-world problem, using the MYP design cycle
  • You will understand how to present designs
  • You will be exposed to advanced topics in programming

The major assessment in this course is to plan, design, create, and evaluate two web applications.

For each web application, you need to do four things really well:

  1. Become an expert in your design (we call this Inquiry and Analysis)
  2. Create a really good plan to solve your problem (we call this Developing Ideas)
  3. Be a true craftsperson and make good changes when the need arises (we call this Creating the Solution)
  4. Figure out if you solved the problem you set out to solve (we call this Evaluation)

There are many other minor assessments related to these two projects. For example, you will need to learn about HTML in order to build a website. You’ll be assessed on your understanding and skill of HTML.

You will also be assessed on your approaches to learning - skills which help you be a better student.

Required materials include a school-issued computer with all software updated as directed in our getting started guide. Please make sure to bring your computer to school fully charged.

Here is a guide how you can communicate with me. I am available most of the time. You should be aware of advantages and disadvantages for each method of communication:

Speak to me in person

  • Advantages: You can gauge my reaction to an initial idea. This method is good for quick, yes/no questions. I’ll tell you if your question isn’t quick to answer.
  • Disadvantages: Most problems are complex. It takes time to understand them and solve them.

Send me an email In-depth questions, with evidence that you have followed our guide to asking good questions will get replies.

  • Advantages: Messages are private.
  • Disadvantages: I don’t respond to emails very quickly, and if your question is complex, it will take me more time to answer it. Also, if there is a lot of back-and-forth between us about your question, emails might make it hard to follow.

Ask a question in our class discussion board

  • Advantage: Other people can learn from your question. Other people can help answer your question. Messages are threaded and topics are organized logically. You can quote code samples and include attachments.
  • Disadvantage: Answers to your questions might take a bit longer, especially if they are complex.

Ask a question on google classroom

  • Advantage: Don’t try to communicate with me on google classroom. It won’t work.
  • Advantage: Don’t try to communicate with me on google classroom. It won’t work.

Exam re-takes

I do not allow students to retake exams. Many students get the idea that they don’t have to take a test seriously until the retake. Students and parents are reminded a grade is a single data point, not to be considered as a single point upon which all success and failure rests.


I want you to work hard and learn. There are times when you may want to earn extra credit. Extra credit does not automatically improve your grade. Here are some things to think about before you accept an assignment for extra credit:

  1. The assignment will be graded with the same rigor as other assignments (extra credit isn’t easy)
  2. You must treat an extra credit assignment as a regular assignment. If you do not turn it in, or do not meet the standard, you may further harm your progress
  3. You will have clear criteria (a rubric) for your extra credit
  4. Extra credit is almost always service-oriented. Your teacher alone determines what qualifies for extra credit.
  5. You must always ask for permission for extra credit prior to doing the work.

You are responsible for understanding and following these guidelines.

From the Student Handbook:

Academic integrity is an expected trait in all students of ASW and is afforded the utmost value by all members of the faculty. The academic reputation of our students and the school in the wider community depend on it. Academic integrity expectations extend to all assessed and non-assessed school work and to all documentation produced for university and college applications. It is the expectation at ASW that all work and documentation submitted by students is entirely their own.

To ensure that high school students understand what constitutes academic honesty, teachers explicitly address the issue with all students at the start of each academic course.

Academic integrity means:

Citing appropriately those whose work is used in the preparation of school work completing school work without the input of others whose knowledge of the task might advantage the student unfairly submitting work for assessment that is representative of the student’s own learning and not that of others, individually or collectively maintaining a level of confidentiality and personal ownership of one’s own work, both assessed and non-assessed

Conversely, academic dishonesty means:

Presenting the work, ideas, words, images, data or arguments of others as one’s own without citation (plagiarism) copying or sharing work with others (unless specifically allowed) in any form (e.g. digitally sharing, downloading, in person) in a way that misrepresents a student’s ability or is intended to mislead the intended audience presenting work as one’s own which has been completed with the assistance of others (such as parents, other students or tutors) in a way that misrepresents a student’s ability making up or altering references, quotations, statistics, etc. (fabrication or falsification)
When a faculty member determines that there has been a breach of academic integrity, the faculty member is required to inform the Principal of the incident.

This an entry-level course. Students are not expected to know anything about programming prior to starting the course.

Course Calendar

Topic Week Starting
Course orientation Tuesday 20 August 2019 (in one month and 3 weeks)
Course orientation Monday 26 August 2019 (in 2 months and one day)
Programming Monday 02 September 2019 (in 2 months and one week)
Programming Monday 09 September 2019 (in 2 months and 2 weeks)
Programming Monday 16 September 2019 (in 2 months and 3 weeks)
Programming Monday 23 September 2019 (in 2 months and 4 weeks)
Programming Monday 30 September 2019 (in 3 months and 5 days)