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.

The course is fun and difficult. 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. You will learn how to “think computer”.

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: bmackenty@aswarsaw.org
Teacher room: H121

American School of Warsaw
Bielawa. 202 Warszawska Ul.
05-520 Konstancin-Jeziorna
POLAND
https://www.aswarsaw.org
https://www.mackenty.org

  • 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.

Extra-Credit

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.

1. Listen and follow directions

2. Raise your hand before speaking or leaving your seat

3. Respect your classmates and your teacher

4. Keep hands, feet, and objects to yourself

5. Do not disrupt our learning environment

6. Work hard in our class

7. Be curious

8. Be kind

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 Notes Week Starting
Course orientation

Class rules, how you are graded, setting up your computer, communicating with your teacher

Tuesday 20 August 2019 (3 days and 14 hours ago)
Course orientation

Local / remote hosts, SFTP, the “developer workflow”.

Monday 26 August 2019 (in 2 days and 16 hours)
Programming

Nature of programming languages, HTML, HTML forms

Monday 02 September 2019 (in one week and 2 days)
Programming

Nature of programming languages, HTML, HTML forms

Monday 09 September 2019 (in 2 weeks and 2 days)
Programming

Input - Processing - Output, HTML / Forms

Monday 16 September 2019 (in 3 weeks and 2 days)
Programming

PHP, HTML, forms

Monday 23 September 2019 (in 4 weeks and 2 days)
Programming

PHP, HTML, forms

Monday 30 September 2019 (in one month and 6 days)
Programming

PHP, HTML, HTML forms

Monday 07 October 2019 (in about one month and 2 weeks)
Design: Understanding a Problem

Design Cycle, review assessment, start your project

Monday 14 October 2019 (in about one month and 3 weeks)
Design: Developing Ideas

Design Cycle, review assessment, start your project

Monday 21 October 2019 (in about one month and 4 weeks)
Holiday

Autumn Break!

Monday 28 October 2019 (in 2 months and 4 days)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 04 November 2019 (in 2 months and one week)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Tuesday 12 November 2019 (in 2 months and 2 weeks)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 18 November 2019 (in 2 months and 3 weeks)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 25 November 2019 (in 3 months and 2 days)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 02 December 2019 (in 3 months and one week)
Design: Evaluation

The big question we are answering here is if our solution solved our problem.

Monday 09 December 2019 (in 3 months and 2 weeks)
Holiday

Enjoy your holiday!

Monday 16 December 2019 (in 3 months and 3 weeks)
Holiday

Enjoy your holiday!

Monday 23 December 2019 (in 3 months and 4 weeks)
Holiday

Enjoy your holiday!

Monday 30 December 2019 (in 4 months and 6 days)
Course orientation

We’ll ease back into our learning after break to learn a bit more about GIT.

Tuesday 07 January 2020 (in 4 months and 2 weeks)
Design: Understanding a Problem

We begin our second design project. You should all be pretty comfortable with the design process now!

Monday 13 January 2020 (in about 4 months and 3 weeks)
Design: Developing Ideas

We begin our second design project. You should all be pretty comfortable with the design process now!

Monday 20 January 2020 (in about 4 months and 4 weeks)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 27 January 2020 (in 5 months and 4 days)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 03 February 2020 (in 5 months and one week)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 10 February 2020 (in 5 months and 2 weeks)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 17 February 2020 (in 5 months and 3 weeks)
Holiday

Enjoy your holiday!

Monday 24 February 2020 (in 6 months and one day)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Tuesday 03 March 2020 (in 6 months and one week)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 09 March 2020 (in 6 months and 2 weeks)
Design: Creating the Solution

Creating a solution, follow your plan, justify changes, demonstrate excellent technical skills.

Monday 16 March 2020 (in 6 months and 3 weeks)
Design: Evaluation

Evaluation

Monday 23 March 2020 (in 6 months and 4 weeks)
Programming

We begin advanced programming

Monday 30 March 2020 (in 7 months and 6 days)
Programming

Advanced programming

Monday 06 April 2020 (in about 7 months and 2 weeks)
Programming

Advanced programming

Tuesday 14 April 2020 (in 7 months and 3 weeks)
Programming

Advanced programming

Monday 20 April 2020 (in about 7 months and 4 weeks)
Holiday

Enjoy your holiday

Monday 27 April 2020 (in 8 months and 3 days)
Design: Developing Ideas

Advanced system diagramming

Monday 04 May 2020 (in 8 months and one week)
Design: Creating the Solution

Advanced plan construction, development models

Monday 11 May 2020 (in 8 months and 2 weeks)
Design: Evaluation

Advanced evaluation

Monday 18 May 2020 (in 8 months and 3 weeks)
Computer organization

How does a computer actually work?

Monday 25 May 2020 (in 9 months and one day)
Computer organization

How does a computer actually work?

Monday 01 June 2020 (in 9 months and one week)
Programming

Advanced programming

Monday 15 June 2020 (in 9 months and 3 weeks)