Skip to content

Latest commit

 

History

History
111 lines (72 loc) · 5.27 KB

File metadata and controls

111 lines (72 loc) · 5.27 KB

Introduction to Computer Systems

This new course links together different ideas that you have encountered but not covered deeply in other courses. We'll learn about tools used in programming and how they work. The goal of this course is to help you understand how your computer and programming environment work so that you can debug and learn independently more confident.

Quick Facts

  • Course time: TuTh 12:30PM - 1:45PM Fall2023
  • Credits: 4

To request a permission number complete this google form

you must be signed into your URI google account to access the form

Why Take this course

  1. use and understand git/ GitHub
  2. make sense of cryptic compiler messages
  3. understand how file organization impacts programming
  4. fulfill your 300 level CSC elective requirement
  5. preview ideas that will be explored in depth in 411 & 412
  6. Further your understanding of systems abstractions

Topics covered

this is a partial list

  • git and other version control
  • bash and other shell scripting
  • filesystems
  • basics of hardware
  • what happens when you compile code
  • what are the different types of software on your computer

Catalog Description

How the history and context of computing impacts the practice of computing today. Tools used in programming and computational problem solving. How programming works from high level languages to hardware. Survey of computer hardware and representation of information. Pre: CSC110, any 200 level CSC course, or equivalent (prior experience programming in at least two languages).

Learning Outcomes

By the end of the semester, students will be able to:

  1. Differentiate the different classes of tools used in computer science in terms of their features, roles, and how they interact and justify positions and preferences among popular tools
  2. Identify the computational pipeline from hardware to high level programming language
  3. Discuss implications of choices across levels of abstraction
  4. Describe the context under which essential components of computing systems were developed and explain the impact of that context on the systems.

FAQ


You can see the notes and syllabus for Spring 2022 on the semester's [course website](https://introcompsys.github.io/spring2022). Some things will change for Fall 2022, but the basic ideas will be similar.
We will cover some topics in depth and others with less depth.  For example, there are whole courses on computer architecture (411), programming languages (301), and operating systems (412) so we won't cover these in as much detail in those courses, but we will touch on those in terms of how they relate to other topics.

We will cover topics that are currently not covered elsewhere in the curriculum in more depth, like version control, shells, etc.

A lot of the topics we'll cover have been touched at least in very brief passing in 110, 211, 212, but not explained how, just that they exist and this is the name.  We'll cover those topics in more detail.
4
CSC392 (actually all CSCx92) is a special course number we put in ecampus to allow
faculty to develop new courses or teach a one time offering. We call it a "Topics Course."
Courses offered as CSCx92 can be different every semester, or even multiple "sections" in
a given semester all covering completely different things.

A specific topic can be offered as CSCx92 three times before becoming a regular course
and getting its own course number.

This course will count toward the CSC Elective requirement.
The catalog says, "Two CSC or CSF courses at the 300-level or above. CSC 392, 491 may only be used with departmental permission." The department will approve this course for that purpose after you submit a Curriculum Modification to allow it to count.
This class is currently planned to be capped at 30 students. 
There is no separate lab to register, but this is an active learning course.  This means that I expect the class time itself to play a significant role in your initial learning of the topics.  You will preview and review outside of class and depending on your own goals explore topics deeper outside of class. Active participation, bringing your laptop to try things out as I show them and answering questions in class (verbally or through a classroom chat tool; free) are required. 
In theory, all courses should be manageable alongside other courses. However in practice, I recognize that some courses end up requiring more time than they should.  I strive to keep the workload for this course appropriate for the 4 credit expectation. For a four credit course, you should in general expect in class time + work outside of class to total about 12 hours per week, on average.