Category Archives: Computer Science
Compiled and Interpreted Languages
Playlist Project [Array]
A PlayList project will be based on Three Classes
The Artist class will store core information about an artist
The Song class will store basic information about a music song
The PlayList class will manage lists of songs and artists
Artist
- Constructor(s) :
public Artist( String name) { //missing code }
- Instance Variables (“global” variables)
private String artistName ; private Song[] songs ; - an array storing the songs of this artist
Methods
private int indexOf(String songName) // returns index position of parameter in the array public void addSong(Song song) public void removeSong(Song song) public void removeSongByName(String songName) public Song[] getSongs() //returns songs array public String getName() // returns artistName
Song
Constructor(s):
public Song(String songName, Artist artist){
//missing code
}
Instance Variables
private Artist artist ; public String songName ; public long date //(date added to list)
example of how to get current milliseconds as a long
Method
public Artist getArtist()
PlayList
- Instance Variables
- private String listName : This is the ‘name’ of your playList
- private Song[] songs;
- private int[] stars ; //how many stars each song has between 0 and 5 inclusive.
- Note: songs and stars are parallel Arrays
- Constructor
- public PlayList(String name) : There should be only 1 constructor that takes a parameter representing the name of the playList
- Accessor Methods
- public double averageRating() // returns the average star rating for the list
- public double averageRating(Artist artist) // returns the mean star rating associated with artist
- public Song[] getSongs(Artist artist) // returns an array populated by the songs of the parameter artist
- public Song[] getSongs() // returns all the songs in the list
Mutator Methods
- public void swap(Song song1 , Song song2 ) // switches positions of these two (maintain parallelism!)
- public void add(Song song , int stars)
- public void removeSong(Song song, String artist ) //removes song associated with artist
- Note: Be careful here. You are allowed to add the same song and artist. Duplicates are allowed.
- public void removeArtist(Artist artist ) //removes all elements associated with artist
- public void removeLowStars(int cutOff) //removes all elements associated with a star rating less than cutOff
- ** public PlayList sortByDate() //this returns a rearranged PlayList based on each Song’s date
- ** public PlayList sortByRating() //this returns a rearranged playlist so that the 5 starred elements are the first group in the list, 4 stars second …1 stars, last
- ** public PlayList shuffle() //this returns a new PlayList in which all of the songs have been reordered randomly.
Leadership Qualities
Read the following articles and answer handout questions
Steve Jobs article : http://www.forbes.com/sites/jackzenger/2013/08/22/the-big-lesson-about-leadership-from-steve-jobs/
Mark Zuckerberg #1 http://www.inc.com/ekaterina-walter/as-zuckerberg-turns-30-leadership-lessons.html
Mark Zuckerberg #2 [article taken down 🙂 ]
Representing Data
Representing Data
You will be responsible for understanding the core concepts behind all the formats/file types (listed in chapter 3 of the book for representing for various types of data (text, images, video), the pros and cons of different formats and when it is appropriate to use different formats. For instance, jpg’s are meant to realistically represent photographs and use color averaging, while GIF’s have a max of 256 colors and therefore have much smaller file sizes than jpegs ; the latter are not a good choice for representing photographs but rather for cartoons or line art. Both of these are Raster not vector shapes.
Representing Graphics
Video
IB SL Computer Science Resources and Links
External Resources for the IB SL curriculum
- Course Wide, all encompassing IB Links
- IB SL overview A good place for lots of links to the whole curriculum
- CsOpedia

- Java Gui stuff (for project)
- notes and links
- Other good teacher websites on the curriculum
The Information Level [IB CS]
This page is dedicated to the generic information level topics for the IB computer science curriculum. For our school it coincides with Chapter 2 of the Computer Science Illuminated text book.
- Numbers (binary, BCD, Hex)
- Data Representations
- Text Data
- ASCII, Unicode,
- Compression
- Audio Data
- MP3 Format and other formats
- Graphical Data
- colors , graphics
- Video Data
- codecs
Resources:
- Programmers 64 Bit calculator – use this to play with binary, hex, word length signed vs unsigned numbers
- Converting Binary to Decimal numbers
Computer Hardware
This page correlates with Unit 3 in our book and focuses on circuits, gates and chips
Good websites on this unit’s topics
- Computer Hope, has a lot of general computer /tech things including lots on hardware
A Great Discussion at Quora about the question “What do low level programmers know that high level ones don’t? This discussion helps explain reasons to better understand how hardware and OS concerns do affect programmers.
Logic Gates
- Introduction to Logic gates via MineCraft you tube video
- How the logic gate actually work (hardware..at about 3:00 mins but watch the first 5:00 minutes. I don’t really like the explanation of adding binary numbers but the logic gates are, I think, well explained)
- Mincraft continued (xnor etc..)
- Logic Gate Simulator (create logic gates using online Flash simulator)
- How does a CPU work ? (notice it’s all about logic gates)
- Further reading (not necessary but could be helpful)
Circuits
- Combinational Circuits
- adders, multiplexers
- Circuits as memory
CPU Chapter 5
- You should be familiar with the term accumulator
- Fetch Execute Cycle
- Addressability
- What is the addressability of the architecture in the pic on the right?
- FSB
- https://www.youtube.com/watch?v=n7jdjEuyljs Good animation of FSB and how its speed affects computer processing
- FSB/Clock ratio
- CPU/ALU
- https://www.youtube.com/watch?v=8LOnlxFITys Broad strokes of the processor’s front side bus, the cpu speed, and what multi core means. This is very non-technical, but gives some good real world analogies for how these things work.
- https://www.youtube.com/watch?v=qiTt33_3boI
- https://www.youtube.com/watch?v=cNN_tTXABUA CPU explained -very techincial and specific. Though parts of this is beyond the scope of the class, it sheds some good light on how RAM and CPU interect
- Cpu explained via logic gates (beyond scope of IB and class but interesting)
- RAM
- Mario, bits and RAM
- Ram Speed : http://mrmonline.org/computer-hardware/

- Caches, RAM and memory
- 32 bit vs 64 bit link #1 Good overview of the topic
- You tube video on 32 vs 64 This disucsses the issue but with more of a slant towards how it affects modern day computers (gaming etc..)
- http://dis-dpcs.wikispaces.com/2.1.4+Machine+Instruction+Cycle
ALU ( The arithmetic logic unit) Chapter 5, p. 128
Computing Components
Stored-Program Concepts
- Raid vs Sata Drives 5.1
- Front Side Bus and othe rparts of computer 5.1

- Von Neumann Architecture
- Fetch-Execute-Cycle
- Ram and ROm
- Secondary Storage
Embedded Systems
Parallel Architectures
Online Computer Science Resources
Lynda.com Courses
- PHP MySql Essential Training http://www.lynda.com/MySQL-tutorials/PHP-MySQL-Essential-Training/119003-2.html
- Up and Running with MySql
- Up and Running with Bootstrap 3
Binary Numbers
Web Developmemnt
Learning Java
- Stanford’s Online Youtube Video set “Programming Methodology
- Udacity’s Intro to Java Class
-
self paced, and run by Cay Horstman a well known programming educator who, among other things, has worked with parts of the college board’s AP exam
Syllabus
Lesson 1: Introduction to Computers, Programming Languages, Algorithms, and the Java Programming Environment
Lesson 2: Introduction to Classes and Objects
Lesson 3: Graphics
Lesson 4: Fundamental Data Types
Lesson 5: Decisions
Lesson 6: Iterations
Lesson 7: Arrays, ArrayLists and Simple Array Algorithms
Lesson 8: Methods (Parameter Passing, Instance vs. Static Methods)
Lesson 9 - edX – into to Java
- not self paced
-
Syllabus
Week 1: Introduction to computing systems from hardware, software and problem solving aspects
Week 2: Basic data types, variables, assignment statements and expressions
Week 3: Objects, classes and methods; scope rules, Java documentation
Week 4: Boolean expressions, control structures
Week 5: Loops
Week 6: Arrays and multidimensional arrays
Week 7: Character string and file I/O
Week 8: Recursion
Week 9: Abstract data type
Week 10: Simple event-driven programming and wrap up -
: Inheritance
- j
Web programming
Software Development Practices
The Myth of the Genius programmer
Debunking the concept of the lone “genius programmer” coding alone in a cave, a Google IO talk



