Computer Systems and Organization 1
This is part of the foundational CS courses: courses designed to cover content needed in later CS courses.
Getting Connected
Instructors: Daniel Graham PhD & Todd Delong PhD
- Email: cs2130@cshelpdesk.atlassian.net
- Office: Rice 411
- Office Hours:
Eligibility
You should take this course only if
-
You have credit (or passed the placement test) for at least one of CS 1110, CS 1111, CS 1112, CS 1113, or CS 1120
-
You do not have credit for CS 2110 or CS 2150
-
You will know some C- or Java-like language by the middle of the class, as e.g. by one of
- Having previously taken or being concurrently enrolled in DSA1
- Having had Java, C, or C++ in your Introduction to Programming course
- Independent study sufficient to understand this example:
int example() { for(int i = 0; i < 10; i += 1) { double j = 3; if (i/3 != i/j) return i; } return 10; } int example2(int count) { if (count <= 0) return 0; return 1 + example2(count - 1); }
You should be able to describe the use of
int
,double
, braces, semi-colons, andfor
and why the functionexample
returns 1, not 10. You should also be able to describe why callingexample2(10)
returns 10, not 1 or 0.
More information about the transition from previous courses to the new foundation may be found at advising.uvacs.org.
Scope and Content
In this course, we
- Begin with how data can be stored as charges in silicon and work up
- In hardware design, through gates and registers to general-purpose computers.
- In data representation, through bits and bytes to records, arrays, and pointers.
- In process representation, through circuits and assembly to C.
- Learn basic command-line tools and accessing command-line documentation.
- Practice quite a bit of C coding and using the C standard library.
- Discuss how security and social topics are related to these ideas.
For the sake of conversing with those familiar with our previous course offerings, this course covers the assembly-and-C half of CS 2150 “Program and Data Representation”; the basics of ECE 2330 “Digital Logic Design”; and the first part of CS 3330 “Computer Architecture”; in addition to having several new topics we felt were under-represented in our previous set of course offerings.