12 Weeks
Level 1
3-Credit Tuition
$1,545Non-Credit Tuition
$1,290Now more than ever, it’s important to be able to understand how to write computer software. Being literate in code opens a number of doors, any of which can be important new destinations for a modern musician. Many pieces of software only fully come alive if you’re able to write automation scripts.
Computer Programming Fundamentals will be like a brand new set of power tools for your profession, giving you a range of know-how in everything from developing a web page to helping you fix computer problems you may have never even noticed before. We’ll focus on code literacy, empowering you to pick up pieces of code from around the Internet, understand what these codes do, and modify them to suit your needs. Instead of focusing on a single language or platform, our goal with this course is to prepare you to understand code in general. By recognizing the concepts that are universal in computer programming, you’ll be better prepared to understand any code you come across, a skill that’s extremely important when dealing with different scripting languages.
By the end of the course, you will be able to:
- Develop a fully-interactive website using Javascript
- Understand how programs are structured
- Comprehend the major constructs common to all programming languages
- Read and modify code in languages you haven’t yet seen
Syllabus
Lesson 1: Variables and Conditions
- What Is a Programming Language?
- Why JavaScript?
- Hello Cleveland
- Code Editors
- Variables
- Data Types
- Basic Operators
- Making Decisions
- Comparing Values
- Mixing Types
- Tracing Code
- Assignment 1: Generations
Lesson 2: Logic and Loops
- Revisiting Comparisons
- Truthiness
- Boolean Logic
- And, Or, and Not
- Precedence
- Truth Tables
- Loops
- When to Use a Loop
- Accumulators
- Breaking Down a Loop Problem
- Stopping a Loop
- Assignment 2: Prime Numbers
Lesson 3: Functions and HTML
- Functions in JavaScript
- Variable Scopes
- Function Rules
- What Is HTML?
- HTML Structure
- Common HTML Elements
- Lists
- Uniform Resource Locators
- Browser Developer Tools
- JavaScript and HTML
- Assignment 3: Three Questions
Lesson 4: Strings, Loops, and CSS
- Fundamental Data Types
- How are Strings Different?
- Looping Over Strings
- The Traditional For Loop
- For Versus While
- Making Decisions About Strings
- Calling String Functions
- What Is CSS?
- Simple Selectors
- But Why 'Cascading?'
- CSS Developer Tools
- Useful Styles to Know
- Hierarchical Matching
- Assignment 4: Ascending Arpeggios and CSS
Lesson 5: Arrays and Input
- The Input Element
- Radio Buttons and Checkboxes
- Buttons and Pseudo-Classes
- Searching the DOM
- Modifying a DOM Node
- querySelectorAll
- Arrays
- Using Arrays
- Comparing Arrays
- Sorting Arrays and Callback Functions
- Assignment 5: Arrays
Lesson 6: Objects and DOM Manipulation
- What is an Object?
- Arrays vs Objects
- Using an Object
- Looping Over Objects
- Comparing Objects
- Console.log Revisited
- Everything is an Object
- Manipulating the DOM
- Creating Nodes
- Code Organization
- Assignment 6: Album Display
Lesson 7: Complex Data
- Why Data Structures?
- Arrays of Objects
- Going Deeper
- Navigating Data Structures
- The Elvis Operator
- Abstraction Layers
- Sets and Maps
- Values and References
- Using References
- Copying an Object
- Dates and Times
- Choosing Good Data Structures
- Assignment 7: Data
Lesson 8: Events
- Click Events Revisited
- Single Threaded Execution
- The Event Loop
- Other Events
- Defining Inline Functions
- Fat Arrow Functions
- Events on Other Elements
- Events on New Elements
- Data Availability
- The Media Elements
- Controlling Media Elements
- Media Events
- Audio Player
- Assignment 8: Audio Memory Game
Lesson 9: More Events
- Event Parameter Object
- Reusing Event Handlers
- Data Attributes
- Event Handlers for Multiple Nodes
- Events With Parameters
- Timing Pseudo-Events
- The Magic "this" Variable
- Assignment 9: HTML Piano
Lesson 10: Loading External Data
- Revisiting the Album Art Assignment
- Introduction to JSON
- Loading JSON in a browser
- HTTP GET
- Parts of a URL
- Fetch API
- Async and await
- A Real API
- Assignment 10: API
Lesson 11: Using Data APIs
- Getting Data From an API
- API Authentication
- HTTP Methods
- The Course Data API Server
- Writing Data to an API
- RESTful APIs
- Timing is Everything
- Assignment 11: Final Project Beta
Lesson 12: Using Libraries
- What is a Library?
- Finding Libraries
- Using Libraries
- Tone.js Introduction
- A Tone.js Example
- The 'new' Keyword
- Scoping and Private Data
- JavaScript Outside a Browser
- Assignment 12: Final Project
Requirements
Prerequisites and Course-Specific Requirements
Prerequisite Courses, Knowledge, and/or Skills
This course does not have any prerequisites.
Textbook(s)
- No textbooks required
Software
Student Deals
After enrolling, be sure to check out our Student Deals page for various offers on software, hardware, and more. Please contact support@online.berklee.edu with any questions.
General Course Requirements
Below are the minimum requirements to access the course environment and participate in Live Classes. Please make sure to also check the Prerequisites and Course-Specific Requirements section above, and ensure your computer meets or exceeds the minimum system requirements for all software needed for your course.
Mac Users
PC Users
All Users
- Latest version of Google Chrome
- Zoom meeting software
- Webcam
- Speakers or headphones
- External or internal microphone
- Broadband Internet connection
Instructors
Author & Instructor
Patrick McNeill is the Manager of Software Development for Berklee Online, and has been a part of the team working on the online school since its inception in 2002. Patrick is what’s often called a “maker”: he designs and builds gadgets. This includes creating parts with a hand-crafted 3D printer, designing and soldering together the electronic components, and writing the software to put them all together. He is often the only person in his house who knows how to turn on the lights. He’s also an avid photographer, with his dogs, all whippets, being his most frequent subject.
Instructor
Carlos “Charly” Arana is a guitarist, producer, and researcher. His specialties range from Latin American rhythms to the application of machine learning and artificial intelligence techniques for music. As a guitarist, arranger, and musical director he has worked and recorded with artists from all over the world, including legendary Bossa Nova singer Maria Creuza, whose band he was a member of. He has edited a number of books for Hal Leonard and Warner Bros. Publications (Alfred Publications), and for his studies and research on machine learning and AI he has been invited as a speaker in congresses and seminars at some of the most prestigious technology universities, such as MIT and UC Berkeley.
What's Next?
When taken for credit, Computer Programming Fundamentals can be applied towards the completion of these related programs:
Related Certificate Programs
Related Degree Majors
Questions?
Contact our Academic Advisors by phone at 1-866-BERKLEE (U.S.), 1-617-747-2146 (INT'L), or by email at advisors@online.berklee.edu.