Skip to main content
CSI Linux Academy
CS102: Introduction to Computer Science II
0%
Previous
Course data
Course Introduction
Course Syllabus
Course Terms of Use
Unit 1: C++ and Java
Unit 1 Learning Outcomes
1.1.1: Development of C
William Stewart's "C Programming Language History"
1.1.2: Branching C to C++
Wikipedia: "Compatibility of C and C++"
1.1.3: History of Object-Oriented Programming (OOP)
Ruby for Beginners: "Object-Oriented Programming"
1.2.1: Influence of Prevalence of C
Jeremy Hansen's "The Rook's Guide to C++"
1.2.2: Java Overview
Hobart and William Smith Colleges: David Eck's "Introduction to Programming Using Java"
1.2.3: C++ Overview
Massachusetts Institute of Technology: John Guttag's "Introduction to C++"
Wikiversity: "C++"
1.3: C++/Java Comparison
Wikipedia: "Comparison of Java and C++"
Hal Smith's "C++ vs. Java: Code to Executable"
Unit 2: The Building Blocks of Object-Oriented Programming
Unit 2 Learning Outcomes
2.1: Programming Paradigms
Marco Bonzanini's "Functional Programming in Python"
Allen Yip's "Prolog, Logic Programming and Programming Paradigm"
Massachusetts Institute of Technology: Dennis Freeman's "Object-Oriented Programming"
2.2: Fundamental Concepts of Object-Oriented Programming
Hobart and William Smith Colleges: David Eck's "Introduction to Programming Using Java"
Unit 3: C++ Standard Template Library
Unit 3 Learning Outcomes
3.1: History and Motivation
Ada Programming: "Generics"
John DeNero's "Composing Programs"
3.2: Main Design Ideas
Massachusetts Institute of Technology: Chris Terman's "Basics of Information" and "The Digital Abstraction"
3.3: Elements of C++ STL
Alexander Stepanov's "STL and Its Design Principles"
3.3.1: Containers and Iterators
Jeremy Hansen's "The Rook's Guide to C++"
Wikipedia: "Standard Template Library"
3.3.2: Complexity and Cost
Massachusetts Institute of Technology: Eric Grimson and John Guttag's "Complexity"
3.3.3: Functors
Wikipedia: "Function Object"
Unit 4: Exceptions
Unit 4 Learning Outcomes
4.1: The Role of Exceptions
Cave of Programming: "Handling Exceptions"
4.1.1: Traditional Error-Handling Methods
Hobart and William Smith Colleges: David Eck's "Introduction to Programming Using Java"
4.1.2: Using Exceptions to Write Correct Programs
Hobart and William Smith Colleges: David Eck's "Introduction to Programming Using Java"
4.2.1: Exceptions in Java
W3Resource: "Exceptions in Java"
TheJavaWorld: "Java Error Handling"
Hobart and William Smith Colleges: David Eck's "Introduction to Programming Using Java"
4.2.2: Exceptions in C++
C++ Programming: "Exception Handling"
Unit 5: Recursion
Unit 5 Learning Outcomes
5.1: Definition
Boundless: "Recursive Definitions"
5.1.1: Divide and Conquer
Massachusetts Institute of Technology: John Guttag's "Recursion"
5.1.2: Applications to Programming
Massachusetts Institute of Technology: John Guttag's "Recursion Lecture Notes"
Wikipedia: "Tail-Recursive Functions"
5.1.3: Recursive Structure
Massachusetts Institute of Technology: Eric Grimsom and John Guttag's "Divide and Conquer Methods"
5.1.4: Steps
Programming via Java: "Recursion"
5.1.5: Recursion Examples
Khan Academy: "Recursive Factorial Function" and "Fibonacci Numbers"
5.2: Recursive Algorithms
Unit 6: Searching and Sorting
Unit 6 Learning Outcomes
6.1: Search Algorithms
6.1.1: List Search
Massachusetts Institute of Technology: John Guttag's "Memory and Search Methods" and "Binary Search, Bubble, and Selection Sorts"
Chess Programming Wiki: "Linked List"
6.1.2: Tree Search
Composing Programs: "Recursive Data Structures"
Kamal Rawat's "Basic Tree Traversals"
Massachusetts Institute of Technology: Dennis Freeman's "Search Algorithms"
6.2: Sorting Algorithms
6.2.1: Merge and Insertion Sort
Massachusetts Institute of Technology: Eric Grimson and John Guttag's "Divide and Conquer Methods, Merge Sort, and Exceptions"
Khan Academy: "Sorting Algorithms"
6.2.2: Quick Sort
Massachusetts Institute of Technology: Erik Demaine and Charles Leiserson's "Quicksort, Randomized Algorithms"
6.2.3: Radix Sort
Wikipedia: "Radix Sort"
6.2.4: Analysis
Massachusetts Institute of Technology: Eric Grimson and John Guttag's "Complexity; Log, Linear, Quadratic, Exponential Algorithms"
"Big O Notation"
Unit 7: Template Programming
Unit 7 Learning Outcomes
7.1: Generic Programming
Massachusetts Institute of Technology: Eunsuk Kang's "Introduction to C Memory Management and C++ Object-Oriented Programming"
7.2: Templates in C++
Hobart and William Smith Colleges: David Eck's "Introduction to Programming Using Java"
Massachusetts Institute of Technology: Jesse Dunietz, Geza Kovacs, and John Marrero's "Introduction to C++"
7.3: Commonly-Used Classes
Hobart and William Smith Colleges: David Eck's "Introduction to Programming Using Java"
Study Guides and Review Exercises
Unit 1 Study Guide and Review: C++ and Java
Unit 2 Study Guide and Review: The Building Blocks of Object-Oriented Programming
Unit 3 Study Guide and Review: C++ Standard Template Library
Unit 4 Study Guide and Review: Exceptions
Unit 5 Study Guide and Review: Recursion
Unit 6 Study Guide and Review: Searching and Sorting
Unit 7 Study Guide and Review: Template Programming
Next
CSI Linux Academy
Side panel
Categories
All categories
Cyber Forensic Investigations
CSI Linux Courses
Ethical Hacking and Penetration Testing
Information Security
Coding
CSI Linux Certification Exams
CSIL - Online Investigations
CSIL - Lab Management
CSIL - Computer Forensics
CSIL - Incident Response
CSIL - Specialists
CSIL - Artificial Intelligence
Open Course Resource Center Courses - Free
Communicating More Effectively
Computer Science
Behavior and Politics
Business
Retired Courses
Home
Edwiser Forms
CSI Linux
Cyber Secrets Media
Cyber WAR
Investigator's Starting Guide
English (en)
Deutsch (de)
English (en)
English (United States) (en_us)
Español - Internacional (es)
Français (fr)
Italiano (it)
Português - Brasil (pt_br)
Русский (ru)
Log in
Username
Username
Password
Password
Forgot your password?
Log in
CSI Linux Academy
Categories
Collapse
Expand
All categories
Cyber Forensic Investigations
CSI Linux Courses
Ethical Hacking and Penetration Testing
Information Security
Coding
CSI Linux Certification Exams
CSIL - Online Investigations
CSIL - Lab Management
CSIL - Computer Forensics
CSIL - Incident Response
CSIL - Specialists
CSIL - Artificial Intelligence
Open Course Resource Center Courses - Free
Communicating More Effectively
Computer Science
Behavior and Politics
Business
Retired Courses
Home
Edwiser Forms
CSI Linux
Cyber Secrets Media
Cyber WAR
Investigator's Starting Guide
Open Course Resource Center Courses - Free
Summary
Course info
CS102: Introduction to Computer Science II
Detailed survey of computers, computing, and programming, with a detailed emphasis on understanding of Object-Oriented Programming and exploration of different programming languages.
college credit, ace
Skill Level
:
Beginner