CS61B: Lecture #40 Course Summary, Lecture notes of Programming Languages

A summary of the CS61B course, which covers programming language topics such as object-based and object-oriented programming, generic programming, memory model, Java syntax and semantics, and standard idioms and patterns. It also covers data structures such as sequences, trees, searching, sorting, debugging, and version control. a list of courses related to computer science that students can take after completing the lower division courses.

Typology: Lecture notes

2021/2022

Uploaded on 05/11/2023

ehaab
ehaab 🇺🇸

4.2

(32)

275 documents

1 / 17

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Lecture #40: Course Summary
Announcement: one EC point for everyone if 75% of you fill out our
course survey.
Programming language: Java
Program Analysis
Categories of data structure: Java library structure
Sequences
Trees
Searching
Sorting
Pseudo-random numbers
Graphs
Pragmatic implementation topics
Last modified: Fri Apr 29 12:33:41 2022 CS61B: Lecture #40 1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Partial preview of the text

Download CS61B: Lecture #40 Course Summary and more Lecture notes Programming Languages in PDF only on Docsity!

Lecture #40: Course Summary

Last modified: Fri Apr 29 12:33:41 2022 • Pragmatic implementation topics • Graphs • Pseudo-random numbers • Sorting • Searching • Trees • Sequences • Categories of data structure: Java library structure • Program Analysis • Programming language: Javacourse survey. • Announcement: one EC point for everyone if 75% of you fill out our

Programming-Language Topics

  • (^) Generic programming (the (^) Idea of interface vs. implementation (^) Inheritance (^) Dynamic vs. static type • (^) Object-oriented programming: • (^) Object-based programming: organizing around data types

<· · ·> stuff).

Last modified: Fri Apr 29 12:33:41 2022 – Views (e.g., sublists) – Iterators – Partial implementations (e.g., AbstractList) – Objects used as functions (e.g., Comparator) • Standard idioms, patterns: • Scope and extent • Java syntax and semantics • Numeric types • Memory model: containers, pointers, arrays

• Generic skeleton implementations of collections, lists, maps ( • Map interface and its subtypes • Collection interface and its subtypes Major Categories of Data Structure

AbstractList

Last modified: Fri Apr 29 12:33:41 2022 • Complete concrete collection and map classes in Java libraryetc.)

CS61B: Lecture #40 (^4)

Sequences

  • (^) Trade-offs: costs of basic operations • (^) Circular buffering • (^) Stacks, queues, deques • (^) Linking vs. arrays (^) Sentinels (^) Single and double link manipulations • (^) Linking:

Trees

Last modified: Fri Apr 29 12:33:41 2022 • Game trees • Representing trees • Tree traversals • Basic operations: insertion, deletion • Uses of trees: search, representing hierarchical structures

Sorting

Last modified: Fri Apr 29 12:33:41 2022 • Complexity of various algorithms, when to use them? • Radix sort • Distribution sort • Quicksort and selection • Heap sort • Merge sort • Selection sorting • Insertion sort • Uses of sorting

Random numbers

Last modified: Fri Apr 29 12:33:41 2022 • Shuffling, random selection – Non-uniform distributions – Changing the range • Changing distributions: • Linear congruential and additive generators • Idea of a pseudo-random sequence • Possible uses

Debugging

Last modified: Fri Apr 29 12:33:41 2022 • JUnit mechanics. • Unit testing: what it means, how to use it.IntelliJ). • Details of some debugger (Eclipse, gjdb, various Windows/Sun products, • How to use to pin down bugs • What debuggers can do

Version Control

Last modified: Fri Apr 29 12:33:41 2022 – Tagging – Updating and merging changes. – Committing changes – Working copy vs. repository copy • Basic concepts behind our particular system: • What’s it for?

Assorted Side Trips

Last modified: Fri Apr 29 12:33:41 2022 • Storage management and garbage collection. • Parallel processing. • Compression.

• CS169A, CS169L: Software Engineering • CS168: Intro. to the Internet: Architecture and Protocols • CS164: Programming Languages and Compilers • CS162: Operating Systems and System Programming • CS161: Computer Security • CS160: User Interface Design • CS152: Computer Architecture • CSC100/Data C100: Principles & Techniques of Data Science What’s After the Lower Division?

Last modified: Fri Apr 29 12:33:41 2022

• CS194: Assorted Special Topics (Examples: What’s After the Lower Division? (III)

(^) Computer Vision and

  • (^) Numerous graduate courses: • (^) CS195: Social Implications of Computer TechnologyComputational Photography, Parallel Programming) (^) including advanced versions of 152,

Last modified: Fri Apr 29 12:33:41 2022 study (199) or directed group studies (198). • Various opportunities for participating in research and independent • And, of course, EE courses!many special topics.160, 161, 170, 184, 186, 189; plus Cryptography, VLSI design and

And Beyond!

Last modified: Fri Apr 29 12:33:41 2022 artists) ought to be fun! • Above all, I think that CS is a creative activity that (to the true • Internships offer more specific skills and exposure to real problems. • But EE and CS are just two of over 150 subjects!