#Rudd's COMPUTER SCIENCE FUNDAMENTALS (CSF) ###COURSE SYLLABUS
SESSION 1: Using an IDE, components of a computer, static vs. dynamic languages, running simple programs.
SESSION 2: Java programming overview – compiled vs. interpreted language, variables, control-flow, loops, functions
SESSION 3: Source control, code reviews, naming conventions, debugging in IDEA, intro to data structures
SESSION 4: Object-oriented programming (OOP): Constructors, inheritance, composition, polymorphism, encapsulation
SESSION 5: Object-oriented programming (OOP): Scope, object lifecycle
SESSION 6: Object-oriented programming (OOP): Memory usage and real world design examples
SESSION 7: Data structures: arrays, lists, stacks, queues Asymptotic notation (Big “Oh”)
SESSION 8: Advanced data structures: trees and traversals, sets
SESSION 9: Advanced data structures: maps, graphs
SESSION 10: Algorithms: Algorithm analysis (Big “Oh”), memoization, documentation
SESSION 11: Algorithms: Recursion, graph traversal, path-finding
SESSION 12: Algorithms: searching, sorting, sort implementations
SESSION 13: Design patterns: MVC, asynchronous operations, and other common patterns How to choose the right design pattern
SESSION 14: Concurrency, multi-threading Logging and performance testing
SESSION 15: Files Overview of File I/O
SESSION 16: Databases, and other persistent data stores SQL, non-relational data stores (NoSQL), message queues
SESSION 17: Final Project Workshop Guest Speaker or Site Visit
SESSION 18: Final Project Workshop Hiring Workshop
SESSION 19: Final Project Workshop
SESSION 20: Next Steps, TA Content
(SESSION 21): September 4: Final presentations