| FOUNDATIONS OF COMPUTER PROGRAMMING | C S | F049. | 01W | 41326 | 4.5 | Johnson, Lane (Primary) | Fully Online asynchronous | None
None
| 107 of 110 seats remain. 10 of 10 waitlist s |
| FOUNDATIONS OF COMPUTER PROGRAMMING | C S | F049. | 01W | 41326 | 4.5 | Johnson, Lane (Primary) | Fully Online asynchronous | None
None
| 107 of 110 seats remain. 10 of 10 waitlist s |
Enjoyable class! Professor is very helpful, structures everything well, and provides clear and detailed project specs.
Each week cumulatively builds on the last in a project spanning the entire quarter.
Encourages students to help each other (but not collaborate) in the forums.
| OBJECT-ORIENTED PROGRAMMING METHODOLOGIES IN PYTHON | C S | F003A | 03W | 40365 | 4.5 | Reed, Eric (Primary) | Fully Online asynchronous |
Lane Johnson
| FOUNDATIONS OF COMPUTER PROGRAMMING | C S | F049. | 01W | 41326 | 4.5 | Johnson, Lane (Primary) | Fully Online asynchronous | None
None
| 107 of 110 seats remain. 10 of 10 waitlist s |
Computer Science
Foothill College
Rate
Compare
5
/ 5
Overall Quality Based on 7 ratings
Lane Johnson
Professor in the Computer Science department at Foothill College
100%
Would take again
2.7
Level of Difficulty
Rate
Arrow Icon
Compare
I'm Professor Johnson
Professor Johnson's Top Tags
Amazing lectures
Participation matters
EXTRA CREDIT
Caring
Clear grading criteria
Rating Distribution
Awesome 5
7
Great 4
0
Good 3
0
OK 2
0
Awful 1
0
Similar Professors
5.00
Mohammed Akhoirshida
4.80
David Harden
4.80
Maneesh Dhagat
Cheddar News Live Feed
/
7 Student Ratings
All courses
Quality
5.0
Difficulty
3.0
CS2C
Feb 2nd, 2026
For Credit: Yes
Attendance: Not Mandatory
Would Take Again: Yes
Grade: A+
Textbook: Yes
Great Professor. Great lecture videos as well. The whole class is centered around projects. The deadlines are pretty tight so plan on allocating your time properly. I like how git is integrated to the class and the homeworks are centered around repos with autograding features, giving you an opportunity to see test cases and fix the bugs u dont see.
Graded by few things
Helpful
Thumbs up
0
Thumbs down
0
Quality
5.0
Difficulty
3.0
CS2A
Jan 5th, 2025
For Credit: Yes
Attendance: Not Mandatory
Would Take Again: Yes
Grade: A
Textbook: N/A
Professor Johnson is a really good, kind, and motivated professor. It's obvious he actually enjoys coding and teaching through his lectures. The class is project based w/ 1 project per week and 3 quizzes total in the entire quarter including the final. Attendance isn't mandatory but you probably won't get an A if you aren't showing up consistently.
Participation matters
EXTRA CREDIT
Clear grading criteria
Helpful
Thumbs up
0
Thumbs down
0
Quality
5.0
Difficulty
3.0
CS2A
Jun 11th, 2024
For Credit: Yes
Attendance: Not Mandatory
Would Take Again: Yes
Grade: A
Textbook: N/A
This class is slightly difficult if you have 0 coding experience like I did, but it's manageable. Definitely don't wait till the last day to do the assignment unless you're a pro. There is no textbook required for this course but I would definitely recommend using one, as the assigned readings are less cohesive.
Helpful
Thumbs up
1
Thumbs down
0
Quality
5.0
Difficulty
4.0
CS49
May 13th, 2024
For Credit: Yes
Attendance: Mandatory
Would Take Again: Yes
Grade: A+
Textbook: Yes
Professor Lane Johnson is the best! He's passionate about teaching Python, provides detailed feedback, and truly cares about our learning. His well-designed tasks and focus on innovation make every lesson valuable. If you want to learn, choose him without hesitation!
Helpful
Thumbs up
1
Thumbs down
0
Quality
5.0
Difficulty
2.0
CS49
Apr 19th, 2024
For Credit: Yes
Attendance: Mandatory
Would Take Again: Yes
Grade: A+
Textbook: N/A
Professor Lane always gives valuable feedback! He really cares about his students; there are no high-risk quizzes or exams in this course. Participate in class and finish assignments (which are well-designed and described very clearly) correctly, then you will get an A+. I definitely recommend this course! I will take his CS2A next quarter :D
Participation matters
Amazing lectures
Gives good feedback
Helpful
Thumbs up
0
Thumbs down
0
Load More Ratings
Associated Term:2026 Spring Foothill
CRN:41254
Campus:Foothill, Main Campus
Schedule Type: Lecture and/or Discussion
Instructional Method: Fully Online asynchronous
Section Number: 01W
Subject: Computer Science (C S)
Course Number: F012A
Title: INTRODUCTION TO MACHINE LEARNING
Credit Hours: 4.5
Grade Mode: No Section specified grade mode, please see Catalog link below for more information.
A survey of artificial intelligence (AI) and its application. Includes search algorithms, evolutionary algorithms, and machine learning. Explores issues of ethics and equity. Students will use Python and publicly available packages to develop and test AI models. Students will gain practical experience coding models, with less emphasis on math and theory. *** Prerequisite: C S 3A. *** Advisory: STAT C1000.
📚 For Programming / Data Structures / Algorithms
If your goal is:
🏆 Competitive programming / FAANG interviews
👉 C++ is powerful and fast.
💰 Side business / automation / quick money
👉 Python is better.
🏢 Corporate software job
👉 Java is strong.
Honest Advice for You
Since you:
Are already doing PhD research
Want a side business
Are busy with many responsibilities
👉 C++ is probably too heavy unless you specifically want deep computer science.
Python will give:
Faster results
Less stress
More immediate income potential
If you want, I can also compare:
C++ vs Python for algorithms
Or show how hard pointers really are (simple example) 😄
C++ vs Python for algorithms
C++ vs Python for algorithms (the real difference)
1) Speed (runtime)
C++ is faster (compiled, low-level control).
Python is slower (interpreted), but often “fast enough” for most class + interview problems.
Rule of thumb
If time limits are strict (competitive programming) → C++ wins
If you want to solve problems quickly and clearly → Python wins
2) Ease of writing algorithms
Python is easier: less code, cleaner syntax, faster to implement.
C++ is more verbose: more setup, more typing, more chances for small bugs.
Example: reading input + building list/array is simpler in Python.
3) Data structures availability
Both have what you need, but Python feels “ready to go.”
Python
list, dict, set, heapq (priority queue), deque
Very good for BFS/DFS, hashing, two pointers, sliding window
C++
vector, unordered_map, unordered_set, priority_queue, deque
Very fast and flexible, but you must be careful with types
4) Common algorithm topics: which is better?
Topic Better choice Why
Sorting, searching Tie both easy
Hashing / frequency Python ✅ dict is super simple
BFS/DFS graphs Python ✅ less boilerplate
Dynamic programming Python ✅ fastest to write
Very large input / tight time limits C++ ✅ speed + I/O
Competitive programming C++ ✅ performance
Interview coding Python ✅ clarity + speed of coding
5) Typical mistake patterns
Python mistakes
Timeouts on huge inputs
Recursion limit (DFS deep)
C++ mistakes
Segmentation fault / memory issues
Wrong types (int overflow)
More complicated debugging
Best practical advice
If your goal is learning algorithms + interview practice → Python
If your goal is competitive programming / speed-critical problems → C++
If you tell me where you’re using algorithms (class? LeetCode? competitions?), I’ll recommend the best language + a study path.
C S F003C - 4.5 Units - ADV DATA STRUCT/ALGRTHM PYTHON
A systematic treatment of advanced data structures, algorithm analysis and abstract data types in the Python programming language, intended for computer science majors as well as non-majors and professionals seeking advanced Python experience. Coding topics include large program software engineering design, multi-dimensional arrays, string processing, primitives, compound types, and allocation of instance and static data. Data structure concept topics include dynamic memory, inheritance, polymorphism, hierarchies, recursion, linked-lists, stacks, queues, trees, hash tables and graphs. Algorithm concept topics include searching, big-O time complexity, analysis of all major sorting techniques, top down splaying, AVL tree balancing, shortest path algorithms, minimum spanning trees and maximum flow graphs.
Systematic treatment of intermediate concepts in computer science through the study of Python object-oriented programming (OOP). Coding topics include Python sequences, user-defined classes and interfaces, modules, packages, collection classes, threads, lambda expressions, list comprehensions, regular expressions and multi-dimensional arrays. Concept topics include OOP project design, recursion, inheritance, polymorphism, functional programming, linked-lists, FIFOs, LIFOs, event-driven parsing, exceptions and guarded code.
Systematic introduction to fundamental concepts of computer science through the study of the Python programming language. Coding topics include control structures, functions, classes, string processing, lists, tuples, dictionaries, working with files, and elementary graphics. Concept topics include algorithms, recursion, data abstraction, problem solving strategies, code style, documentation, debugging techniques and testing.
This course is a systematic treatment of advanced data structures, algorithm analysis and abstract data types in the C++ programming language intended for CS majors as well as non-majors and professionals seeking advanced C++ experience. Coding topics include the development of ADTs from scratch, building ADTs on top of the STL templates, vectors, lists, trees, maps, hashing functions and graphs. Concept topics include searching, big-O time complexity, analysis of all major sorting techniques, top down splaying, AVL tree balancing, shortest path algorithms, minimum spanning trees and maximum flow graphs.
Formerly CIS 15C until 201321-cmln
This course is a systematic treatment of intermediate concepts in computer science through the study of C++ object-oriented programming (OOP) intended for CS majors as well as non-majors and professionals seeking intermediate-level C++ experience. Coding topics include C++ derived classes, class templates, function templates, virtual functions, operator overloading, an introduction to the Standard Template Library, multiple inheritance, pointers, dynamic memory allocation and file I/O. Concept topics include OOP project design, inheritance, polymorphism, method chaining, functional programming, linked-lists, FIFOs, LIFOs, events in GUIs and guarded code.
Formerly CIS 15B until 201321-cmln
This course is a systematic introduction to fundamental concepts of computer science through the study of the C++ programming language intended for CS majors as well as non-majors and professionals seeking C++ programming experience. Coding topics include C++ control structures, objects, global-scope functions, class methods, arrays and elementary data structures. Concept topics include algorithms, recursion, data abstraction, problem solving strategies, code style, documentation, debugging techniques and testing.
Formerly CIS 15A unitl 201321-cmln
C S F001C - 4.5 Units - ADV DATA STRUCT/ALGORMS JAVA
This course is a systematic treatment of advanced data structures, algorithm analysis and abstract data types in the Java programming language intended for CS majors as well as non-majors and professionals seeking advanced Java experience. Coding topics include the development of ADTs from scratch, building ADTs on top of the java.util collections, array lists, linked lists, trees, maps, hashing functions and graphs. Concept topics include searching, big-O time complexity, analysis of all major sorting techniques, top down splaying, AVL tree balancing, shortest path algorithms, minimum spanning trees and maximum flow graphs.
Formerly CIS 27C unit 201321-cmln
This course is a systematic treatment of intermediate concepts in computer science through the study of Java object-oriented programming (OOP) intended for CS majors as well as non-majors and professionals seeking intermediate-level Java experience. Coding topics include Java interfaces, class extension, generics, the Java collections framework, multi-dimensional arrays and file I/O. Concept topics include OOP project design, inheritance, polymorphism, method chaining, functional programming, linked-lists, FIFOs, LIFOs, event-driven programming and guarded code.
Formerly CIS 27B until 201321-cmln
This course is a systematic introduction to fundamental concepts of computer science through the study of the Java programming language intended for CS majors as well as non-majors and professionals seeking Java programming experience. Coding topics include Java control structures, classes, methods, arrays, graphical user interfaces and elementary data structures. Concept topics include algorithms, recursion, data abstraction, problem solving strategies, code style, documentation, debugging techniques and testing.
Foremerly CIS 27A until 201321-cmln
C S F010. - 4.5 Units - COMPUTER ARCHITEC/ORGANIZATION
The course covers the organization, architecture and machine-level programming of computer systems. Topics include mapping of high-level language constructs into assembly code, internal data representations, numerical computation, virtual memory, pipelines, caching, multitasking, IA-32 architecture, structured assembly language code, interrupts, input/output, peripheral storage processing, and comparison of CISC (Intel) and RISC (MIPS) instruction sets.
C S F018. - 5 Units - DISCRETE MATHEMATICS
Discrete mathematics: set theory, logic, Boolean algebra, methods of proof, mathematical induction, number theory, discrete probability, combinatorics, functions, relations, recursion, algorithm efficiencies, graphs, trees.
Cross-listed with MATH 22
Please do not install or run OpenClaw on any district-owned device or on any personal device that accesses district systems, email, or data. Recent analysis identifies serious cybersecurity risks—including a critical vulnerability that could allow remote takeover of your computer—as well as broader risks from autonomous “agentic” behavior that can spread across connected accounts and systems.
OpenClaw CCC Advisory
OpenClaw Notice
Welcome to Sp26 CS F003A Object Orien Prgm Meth Python 03W, 04W Reed 40365, 40879 < notifications@instructure.com > 9:01 AM (12 h...