Programming 2b: Creative Programming
Get ready to take your programming abilities to the next level in Programming 2b! You’ll start by developing a simple web page using HTML, CSS, and JavaScript and then you’ll practice your Python skills, making your own photo editor and sound player! Using API, you’ll practice adding a weather widget to a website and you’ll ensure page safety using encryption techniques through Python. You’ll test, you’ll inspect, you’ll collaborate, and for your finale, you’ll craft a graphical user interface for an app using Python’s Tkinter! Let’s get ready to program!
Units at a Glance
Unit 1: Spotlight: Web Programming
The web is pretty easy to use, right? After all, you’re on it right now! But what starts out as a simple web page can quickly turn into a more involved and complicated application. We are going to explore web programming by learning a little bit of both sides. We’ll start simple and create our own web page using HTML, CSS, and JavaScript. We’ll get more advanced by adding some dynamic interactivity. Then, we’ll scale up to web applications and learn about page life cycle, events, state management, and web hosting. Get ready for a wild ride on the web!
What will you learn in this unit?
- Understand HTML tags and use them to create a basic web page
- Use CSS to apply style to a web page
- Apply interactivity to a web page using JavaScript
- Describe topics related to web app development, such as page life cycle and state management
- Discuss how web servers and web services work
Unit 2: Spicing It Up with Multimedia
Have you ever been told that you are a visual learner? Do you find it easier to remember information when it is put to music? Actually, it turns out that most of the world’s population are visual learners and can remember information more accurately when it’s in a song. Images and audio can be very powerful, and they can make or break a website or application. Because they are so important, we need to learn a few things about them, such as what forms they take on, how they are represented at the binary level, and how to manipulate them. You’ll also be making your very own photo editor and sound player in Python!
What will you learn in this unit?
- Differentiate between bitmap and vector images
- Write a program in Python to manipulate bitmap images
- Compare and contrast analog vs digital sound
- Create a program in Python that plays and manipulates sound
- Discuss the ways that images and audio enhance interfaces and program functionality
Unit 3: Focus on the User: Improving UI
Did you know that the average user spends a mere 15 seconds on a website before leaving? That’s not a lot of time! In order for a website to make a good impression, it needs to be intuitive and user-friendly. Let’s examine how to make interfaces that will attract users and be aesthetically pleasing. We will use criteria to evaluate everyday interfaces like remote controls and microwave ovens. We’ll analyze some of the issues surrounding accessibility and users with diverse needs. And we will wrap up by creating our very own mobile app!
What will you learn in this unit?
- Discuss how user interface design affects user behavior
- Identify the components of a user interface
- Apply design criteria to evaluate the effectiveness of a user interface
- Analyze software and websites designed for users with diverse needs
- Recognize design elements necessary for accessible websites
- Create a mobile app using MIT’s AppInventor
Unit 4: Testing and Quality Assurance
Did you know that the average user spends a mere 15 seconds on a website before leaving? That’s not a lot of time! In order for a website to make a good impression, it needs to be intuitive and user-friendly. Let’s examine how to make interfaces that will attract users and be aesthetically pleasing. We will use criteria to evaluate everyday interfaces like remote controls and microwave ovens. We’ll analyze some of the issues surrounding accessibility and users with diverse needs. And we will wrap up by creating our very own mobile app!
What will you learn in this unit?
- Discuss how user interface design affects user behavior
- Identify the components of a user interface
- Apply design criteria to evaluate the effectiveness of a user interface
- Analyze software and websites designed for users with diverse needs
- Recognize design elements necessary for accessible websites
- Create a mobile app using MIT’s AppInventor
Unit 5: Communicating in Teams
Did you know that 74 percent of employees feel as though they are missing out on company news? With a workforce that is shifting more toward remote working, it is critical now more than ever that we have solid communication skills and protocols in place. You will learn how to improve your verbal and nonverbal communication skills, what software tools are helpful for collaboration, how network components and architectures form the backbone of our online communication, and how APIs facilitate communication between interfaces. You will also get practice with synthesizing multiple sources and ideas on a research topic as well as presenting information in a compelling way.
What will you learn in this unit?
- Employ effective verbal, nonverbal, and reading skills
- Explain major networking components, systems, and architectures
- Use and test an API
- Perform advanced searches and present information
Unit 6: Taking Control: Security and Ethics
Did you know that a hacker will perform a cyberattack every 39 seconds on average? One in three Americans will be affected by a cyberattack in some way each year. Not only do companies need to be aware of the risks and plan specific controls, but they also need to fully realize the impacts that a data breach could have on them financially and socially. Building privacy and security into the earliest stages of software development is absolutely crucial. We are going to investigate the fields of cryptography and cryptocurrency and how they relate to privacy and security. Then, we’ll even implement an encryption technique in Python!
What will you learn in this unit?
- Identify risks and controls for IT facilities, data, and software systems
- Describe methods of cyberattacks
- Explain the principles of cryptography and implement encryption in Python
- Analyze the impact of data breaches and cyberattacks
- Discuss how blockchain technology works in cryptocurrencies
Unit 7: Graphical User Interfaces
We have all used graphical user interfaces; in fact, most of our operating systems are based on this visual form of interaction. But even though GUIs are all around us, we may not know much about how they are designed or developed. Let’s explore how Windows apps use GUI components and how they function. We’ll get very practical by designing and developing our own GUIs through Python’s Tkinter library. And finally, we’ll examine some of the ethical concerns around apps, including intellectual property issues and ethical data acquisition.
What will you learn in this unit?
- Explain the characteristics and capabilities of Windows apps
- Add widgets to a GUI using Tkinter
- Create advanced GUIs using different layouts in Tkinter
- Discuss the legal and ethical components of user interfaces
Unit 8: Go Team!
In today’s fast-paced, team-oriented programming world, it’s absolutely critical to develop good communication and collaboration skills. Gone is the stereotype that programmers are introverts who don’t like to talk to people. Quite the opposite! Collaboration takes place all the time throughout the development process, and we’ll get some practice using various tools. You’ll also continue working on your capstone app by adding backend functionality in Tkinter. And we’ll wrap up by making some concrete goals for your future. Ready, set, teamwork!
What will you learn in this unit?
- Select and use appropriate communication tools for programmers in a project environment
- Participate in a peer code review
- Develop functional code behind a graphical user interface in Tkinter
- Create a personal career plan
Required Materials
Physical
- Camera
Software
- Replit.com (requires login)
- AppInventor (requires login)
- Word processing software
- Canva (requires login)
- Visual Crossing (requires login)
- Presentation software
Other
- Helper