- #1
ecneicS
- 64
- 0
I have the option to take these two computer science courses. Would these courses be useful in my experimental-physics studies? My worry is that they would be too far theorized and that I wouldn't take anything out of the class that I could actually USE to do experimental-physics.
If someone who has experience in this area could give me their opinion on whether I should take these courses, it would be greatly appreciated.
Algorithms and Data Structures I:
-An introduction to algorithm design and analysis. Random access machine model. Time and space complexity, average and worst case analysis, upper and lower bounds. Application of correctness proof techniques. Algorithms: internal searching, merging, sorting, selection, hashing; graphs: traversals, topological sort, transitive closure, strongly connected components, shortest path, minimum spanning tree. The existence of intractable problems, heuristics. Data structures: B-trees, heaps and graphs.
Introduction to Computer Architecture
-The architecture of computer systems including concepts such as CPU, memory, buses, I/O, cache, instruction sets, interrupt processing, pipelining, performance. Families of processors, CISC, RISC. Memory organization and management (including virtual memory, protection, segmentation and paging). Computer arithmetic. The use of assemblers, linkers and loaders. Assembly language programming and its interface with a high-level language (C).
Both require Fundamentals of Programming I and II. (I and II are each term-long courses.)
If someone who has experience in this area could give me their opinion on whether I should take these courses, it would be greatly appreciated.
Algorithms and Data Structures I:
-An introduction to algorithm design and analysis. Random access machine model. Time and space complexity, average and worst case analysis, upper and lower bounds. Application of correctness proof techniques. Algorithms: internal searching, merging, sorting, selection, hashing; graphs: traversals, topological sort, transitive closure, strongly connected components, shortest path, minimum spanning tree. The existence of intractable problems, heuristics. Data structures: B-trees, heaps and graphs.
Introduction to Computer Architecture
-The architecture of computer systems including concepts such as CPU, memory, buses, I/O, cache, instruction sets, interrupt processing, pipelining, performance. Families of processors, CISC, RISC. Memory organization and management (including virtual memory, protection, segmentation and paging). Computer arithmetic. The use of assemblers, linkers and loaders. Assembly language programming and its interface with a high-level language (C).
Both require Fundamentals of Programming I and II. (I and II are each term-long courses.)