Search Results for "CSCI 0010"

CSCI 0010. Introduction to Computing

Units: 3
Advisory: Completion of MATH 0012 with grade of "C" or better
Hours: 72 (54 lecture, 18 laboratory)
Survey of computer science technologies and methods. Introduction to computer hardware and software, structured programming, operating system concepts, communications and social impacts of computer technology. Explore current and emerging topics such as robotics, computer security and artificial intelligence. (CSU, UC)

CSCI 0010 - Introduction to Computing

https://catalog.sierracollege.edu/course-outlines/csci-0010/
Catalog Description Advisory: Completion of MATH 0012 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: Survey of computer science technologies and methods. Introduction to computer hardware and software, structured programming, operating system concepts, communications and social impacts of computer technology. Explore current and emerging topics such as robotics, computer security and artificial intelligence. (CSU, UC) Course Student Learning Outcomes CSLO #1: Describe the software development life-cycle. CSLO #2: Describe the principles of structured programming and be able to describe, design, implement, and test structured programs using currently accepted methodology. CSLO #3: Explain what an algorithm is and its importance in computer programming. CSLO #4: Explain moral and ethical issues in computer science. Effective Term Fall 2026 Course Type Credit - Degree-applicable Contact Hours 72 Outside of Class Hours 90 Total Student Learning Hours 162 Course Objectives Lecture Objectives: 1. Identify at least three places computers can be found in our society, other than personal computers. 2. Compare and contrast data input and storage mechanisms from previous generations of computers to those in current use. 3. Compare and contrast the specifications of at least two commercially-available computer systems and associated common peripherals. 4. Describe the binary and hexadecimal counting systems. 5. Solve mathematical problems that are expressed in the decimal, binary, and hexadecimal counting systems. 6. Describe the relationship between bits and bytes. 7. Identify and describe the function of major computer components in a von Neumann architecture: CPU, CU, ALU, Bus, Disk Drive, RAM, ROM, Clock, and Input/Output Peripherals. 8. Identify the major components of mass storage devices (platters, read/write heads, recording surface, interface) and describe the logical layout of data (tracks, sectors, blocks, cylinders). 9. Describe the use of "abstraction" and "layering" in operating systems and networking. 10. Describe the purpose of disk-based virtual memory (swap) and the process by which swap space is used to alleviate shortages of RAM. 11. Identify the major components of modern graphical user interfaces: buttons, scrollbars, menus, windows, dialogs, input fields, text, images, cursor, click, drag. 12. Define and describe the networking terms: protocol, host, client, server, IP Address, TCP, LAN, router, checksum. Identify examples of each. 13. Apply current computer science theories, models, and techniques that provide a basis for problem identification and analysis, software design, development, implementation, verification, and documentation. 14. Distinguish the tradeoffs computer scientists must balance in software and hardware design in terms of cost, speed, and resource limitations. 15. Compare the relative efficiencies of at least two of the following algorithms: binary search, linear search, bubble sort, insertion sort, quicksort, find min/max. Laboratory Objectives: 1. Design, write, and run without errors a simple computer program utilizing variables, conditionals, and loops using a current programming language. 2. Prepare at least two simple web pages in HTML utilizing basic formatting tags, lists, images, colors, and links. View the web pages in a web browser. 3. Write, print, and save a document using a word processor. 4. Use a spreadsheet or database to define data fields, input data, express mathematical calculations that manipulate the data, and save the data. General Education Information Approved College Associate Degree GE Applicability AA/AS - Comm & Analyt Thinking CSU GE Applicability (Recommended-requires CSU approval) Cal-GETC Applicability (Recommended - Requires External Approval) IGETC Applicability (Recommended-requires CSU/UC approval) Articulation Information CSU Transferable UC Transferable Methods of Evaluation Objective Examinations Example: Objective Examinations: 1. Q: Turnstiles often contain an odometer-like device that counts the number of persons who have passed through. Argue whether the counter is an analog or digital device. A: There is no correct answer. It can be argued that because the turnstile can only measure "whole" persons, it is a digital device. On the other hand, because the counter is a mechanical device whose dials must physically turn from one count to the next, it could be an analog device. 2. Q: All modern computers work with a system of numbers called ________ ______________. a) Octal numbering system b) Decimal numbering system c) Binary numbering system A: c 3. The use of binary circuitry corresponds to: a) the use of a rotary dial on a telephone b) making use of fingers and toes to count c) the OFF and ON states of a light bulb d) the use of a voice activated answering device A: c Problem Solving Examinations Example: 1. Design a small web site about your family. The web site should contain at least three pages: a top "home" page listing all the members of your family and two or more pages, one for each member of your family. The home page should be hyperlinked to each of the family member pages and vice-versa. Each family member page should contain the following information: * His or her name * A brief description of that person * A list of hobbies * A picture of the person or of one of their hobbies The web pages should make use of a variety of HTML tags, including headings, bold, italics, horizontal rules, centering, images, and colors. Upload your web site to a web server and view it in a browser. Solution: The web pages need to include at least the minimum required tags. It should load correctly in a web browser. Each of the pages should be linked to each other as described. Skill Demonstrations Example: After doing the laboratory assignment about machine code and parts of the CPU, explain how a computer virus or worm can infect your computer without your knowledge by overwriting the contents of the PC (Program Counter) register. Solution: Because the PC register contains the address of the next instruction to be executed, a virus (or any other malicious program) can cause the computer to execute arbitrary instructions by replacing the contents of register with the address of one of its own instructions. The computer doesn't "know" it is about to execute unwanted instructions. To the computer, this is perfectly normal behavior. Often, the overwriting of the PC register is accomplished with a programming technique called "buffer overruns." Repeatable No Methods of Instruction Laboratory Lecture/Discussion Distance Learning Lab: Design, write and run a program to play the rock, paper, scissor game. Declare variables and use conditional statements and loops. Laboratory Objective one Lecture: We help the students learn about and visualize various sorting algorithms by using playing cards. Prior to class, the students have read about the bubble and quicksort algorithms. Each student is given a deck of cards to shuffle. Students are then asked to apply the bubble sort algorithm to the shuffled deck. The students should keep a count of the number of iterations. The student shuffles the cards again and applies the quicksort algorithm, also counting the number of iterations. The students then analyze their results to determine which algorithm is faster. We further analyze the algorithms by formulating scenarios in which either algorithm works at its fastest and its slowest running times. Throughout the activity the instructor facilitates the activity. Distance Learning The instructor will present a video lecture explaining the Bubble sort algorithm through multiple examples. Students will be given an unsorted list integer values to sort using the discussed Bubble sort algorithm. Typical Out of Class Assignments Reading Assignments 1. Read the chapter on the history of computing and be prepared to discuss in class. 2. Read the website entitled "Beginner's Guide to HTML." Work through the examples shown by typing them into a text file editor, saving them, and viewing them in a web browser and be prepared to discuss in class. Writing, Problem Solving or Performance 1. Robots are becoming increasingly useful in our society. For example, one can buy a small robot to automatically vacuum a house. We can explore some of the technologies that make this possible using simple robot construction techniques. Design and write a program in Java or RCX to instruct a robot outfitted with individually powered wheels and light and touch sensors to wander around the floor, automatically avoiding obstacles. The robot should not go over any path more than once. The program is finished when the robot finds the black circle located in an arbitrary place. 2. Write a two-page essay describing your personal experiences with malware. Conclude your paper by describing at least two things you can do to remove malware from your computer and/or prevent it in the future. 3. Write a two-page paper tracing the evolution of input devices (punched cards, magnetic tape, disk drives), focusing on how the devices of yesterday have influenced the devices of today. Other (Term projects, research papers, portfolios, etc.) Required Materials Computer Science, An Overview Author: Brookshear, Glenn Publisher: Pearson Publication Date: 2021 Text Edition: 13th Classic Textbook?: Yes OER Link: OER: Computer Science: An Interdisciplinary Approach Author: Robert Sedgewick, Kevin Wayne Publisher: Addison-Wesley Professional Publication Date: 2016 Text Edition: 1st Classic Textbook?: Yes OER Link: OER: Computer Science Illuminated Author: Dale & Lewis Publisher: Jones & Bartlett Publishers Publication Date: 2019 Text Edition: 7th Classic Textbook?: Yes OER Link: OER: Other materials and-or supplies required of students that contribute to the cost of the course.

CSCI 0012 - Programming Concepts and Methodology I

https://catalog.sierracollege.edu/course-outlines/csci-0012/
Catalog Description Prerequisite: Completion of CSCI 0010 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: Introduces the discipline of computer science using a high level language utilizing programming and practical hands-on problem solving. (C-ID COMP 122) (CSU, UC) Course Student Learning Outcomes CSLO #1: Demonstrate basic proficiency in the mechanics of the Java programming language. CSLO #2: Apply language fundamentals in support of utilizing and creating Object-Oriented (O-O) software elements. CSLO #3: Originate new Object-Oriented (O-O) software, using language fundamentals and O-O fundamentals, in accordance with sound software development principles. CSLO #4: Apply language fundamentals, O-O fundamentals, and sound program organization techniques, for the purpose of applying them to various realistic, real-world problem solving scenarios. Effective Term Fall 2026 Course Type Credit - Degree-applicable Contact Hours 72 Outside of Class Hours 90 Total Student Learning Hours 162 Course Objectives Lecture Objectives: 1. Analyze and explain the behavior of simple programs involving the fundamental programming constructs. 2. Choose appropriate conditional and iteration constructs for a given programming task. 3. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces. 4. Describe the mechanics of parameter passing. 5. Discuss the importance of algorithms in the problem-solving process. 6. Identify the necessary properties of good algorithms. 7. Create algorithms for solving simple problems. 8. Describe strategies that are useful in debugging. 9. Summarize the evolution of programming languages illustrating how this history has led to the paradigms available today. 10. Identify at least one distinguishing characteristic for each of the programming paradigms. 11. Explain the value of declaration models, especially with respect to programming-in-the-large. 12. Identify and describe the properties of a variable such as its associated address, value, scope, persistence, and size. 13. Discuss type incompatibility. 14. Demonstrate different forms of binding, visibility, scoping, and lifetime management. 15. Defend the importance of types and type-checking in providing abstraction and safety. Laboratory Objectives: 1. Modify and expand short programs that use standard conditional and iterative control structures and functions. 2. Design, implement, test, and debug a program that uses each of the following fundamental programming constructs: basic computation, simple I/O, standard conditional and iterative structures, and the definition of functions. 3. Use a programming language to implement, test, and debug algorithms for solving simple problems. General Education Information Approved College Associate Degree GE Applicability CSU GE Applicability (Recommended-requires CSU approval) Cal-GETC Applicability (Recommended - Requires External Approval) IGETC Applicability (Recommended-requires CSU/UC approval) Articulation Information CSU Transferable UC Transferable Methods of Evaluation Objective Examinations Example: Examination based on solutions to common business software problems, and evaluated for syntax and logic errors, readable, efficient, and maintainable code style, and applying Java Object Oriented Programming concepts (encapsulation, instantiation, inheritance, and polymorphism). Example: What is the difference between static and non static methods? Problem Solving Examinations Example: Example: Write a computer program that plays rock, paper, scissor game. Projects Example: Applying data file handling techniques for processing business data accurately and efficiently using file creation, updating, deleting, and maintenance. Example: Write an object oriented program to play the Tic=Tac-Toe game based on the given requirements. Repeatable No Methods of Instruction Laboratory Lecture/Discussion Distance Learning Lab: Once the material on creating user defined data types has been presented, assess whether the students have learned the material by having them write a simple class definition using the following specifications: The class should be named "Person" and be public. The class has four variables: name (String), age (int), height (int), and eyeColor (String). Write at least two of the getters and two of the setters. Write a public method called "birthday" that increments the age by Write a public method called "toString" that returns a String containing all the attribute of the Person in a human-readable format. Project the "interesting" solutions on the board so that other students may comment, criticize, and/or praise. Lecture: Assume the students have come to class having read the chapter on defining a class. Give a short lecture, supplemented with writing on the board or a slide presentation with handouts, showing the syntax of a Java class. Point out the major sections: class header, class variables, and methods. Discuss the differences between "public" and "private" methods. Discuss conventional "getter" and "setter" methods. Ask the students to answer the questions in the handout related to the lecture. Distance Learning The instructor will present a video lecture on writing classes. After the student views the lecture, they will then be asked to write a class called Circle with the radius as its attribute. The student will be asked to write a method for the class to calculate the area of the circle. Typical Out of Class Assignments Reading Assignments 1. Read & study the examples called Switch1.java and Switch2.java in "Java Programming Examples" and contrast the two versions of the switch statement and be prepared to discuss in class. 2. Read chapter on Classes to contrast classes versus objects. Review the concepts of encapsulation and instantiation. Study the examples of Java code illustrating data-hiding, member data, and methods. Be prepared to discuss in class. Writing, Problem Solving or Performance Laboratory assignment per week solving Business/Industry problems with Java Programming source code. Example 1: Write a program for a money exchange business, prompting for amount of U.S. dollars, asking for a country/currency (e.g. Japanese Yen, European Euro, Mexican Peso, etc.), input a currency exchange rate, calculate the equivalent amount in the new currency, validate input data for accuracy, and display the data on the screen. Apply repetition to loop through many currency conversions. Example 2: Sierra Fencing Company installs new fencing and repairs or replaces old fencing. Write a program that prompts for new or repair fencing, prompts for the cost-per-foot, prompts for fencing length, estimates the total cost, and displays the data on the screen and/or file. Other (Term projects, research papers, portfolios, etc.) Required Materials Building Java Programs: A Back to Basics Approach Author: Stuart Reges, Marty Steep Publisher: Pearson Publication Date: 2019 Text Edition: 5th Classic Textbook?: Yes OER Link: OER: Starting Out with Java Author: Tony Gaddis Publisher: Scott Jones Publication Date: 2019 Text Edition: 7th Classic Textbook?: Yes OER Link: OER: Java - An Introduction to Problem Solving and Programming Author: Walter Savitch Publisher: Pearson/Prentice Hall Publication Date: 2017 Text Edition: 8th Classic Textbook?: Yes OER Link: OER: Java Illuminated Author: Julie Anderson , Hervé J. Franceschi Publisher: ‎ Jones & Bartlett Learning Publication Date: 2022 Text Edition: 6th Classic Textbook?: OER Link: OER: Other materials and-or supplies required of students that contribute to the cost of the course.

CSCI 0027 - Visual Basic .NET Programming I

https://catalog.sierracollege.edu/course-outlines/csci-0027/
Catalog Description Prerequisite: Completion of CSCI 0010 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: Introduction to methods and techniques of Visual Basic .NET programming. Includes coverage of user interface design, variables, decisions, menus, functions, object-oriented programming, looping, arrays, and printing. Designed to bring students up to the necessary skill and knowledge level for an intermediate-level programming course. (CSU) Course Student Learning Outcomes CSLO #1: Apply techniques for good program design, including making the interface easy for users as well as following guidelines for designing maintainable programs. CSLO #2: Differentiate between various data types, apply proper naming conventions, and declare variables/constants. Perform calculations, convert/format various data types, and use Try/Catch blocks for error handling. CSLO #3: Use IF statements to control program flow, evaluate conditions using comparison operators, and combine conditions using logical operators. Perform validation on numeric fields, use a CASE structure for multiple decisions, and debug projects using breakpoints. CSLO #4: Create menus for program control, display and use common dialog boxes, and write reusable code in sub procedures and functions. CSLO #5: Include multiple forms in an application, understand the various form events and how to handle them, and declare variables with the correct scope and access level for multiform projects. CSLO #6: Differentiate between various types of lists, describe standard list operations, and use loops to process list elements. Effective Term Fall 2026 Course Type Credit - Degree-applicable Contact Hours 72 Outside of Class Hours 90 Total Student Learning Hours 162 Course Objectives Lecture Objectives: 1. Describe the process of visual program design and development. 2. Explain object-oriented programming. 3. Compare and contrast the concepts of classes, objects, properties, methods, and events. 4. List the three steps for writing a Visual Basic project. 5. Identify the elements in the Visual Studio environment. 6. Define design time, run time, and break time. 7. Explain how to concatenate strings of text. 8. Describe how to make a control visible or invisible at run time. 9. Distinguish between variables, constants, and controls. 10. Differentiate among the various data types. 11. Formulate calculations using variables and constants. 12. Compare and contrast numeric data type conversion using implicit and explicit conversions. 13. Summarize how to use Try/Catch blocks for error handling. 14. Explain how to accumulate sums and generate counts. 15. Describe how to use If statements to control the flow of logic. 16. Create flowcharts indicating the logic in a selection process. 17. Evaluate conditions using the relational operators. 18. Compare and contrast the AND and OR operators. 19. Explain how to use one event procedure to respond to the events for multiple controls. 20. Compare and contrast sub procedures and functions. 21. List the Windows common dialog boxes that relate to files, fonts, colors, and printing. 22. Define the following object-oriented terminology: encapsulation, inheritance, and polymorphism. 23. Differentiate between a class and an object. 24. Illustrate how to declare object variables and assign values to the properties with a constructor. 25. Compare and contrast shared members and instance members. 26. Explain the purpose of the constructor and destructor methods. 27. Differentiate among the available types of combo boxes. 28. Describe how to add and remove items in a list at run time. 29. Determine which item in a list is selected. 30. Explain how to use the Items. Count property to determine the number of items in a list. 31. Compare and contrast Do Loops and For/Next Loops. 32. Distinguish between direct access and indirect access of a table. 33. Analyze the advantages of using ListBox controls with arrays. Laboratory Objectives: 1. Design a user interface that has text boxes, group boxes, check boxes, radio buttons, and picture boxes. 2. Manipulate multiple controls simultaneously so that they are aligned vertically and horizontally. 3. Construct a project that has access keys, accept and cancel buttons, proper tab sequence, and Tool Tips. 4. Diagnose program errors using breakpoints, stepping program execution, and displaying intermediate results. 5. Create menus and submenus for program control. 6. Design a program that uses the Windows common dialog boxes. 7. Write reusable code in sub procedures and functions, then call them from other locations. 8. Create a two-tier application that separates the user interface from the business logic. 9. Create a program with list boxes and combo boxes. 10. Establish an array and refer to individual elements in the array with subscripts. 11. Create a structure for multiple fields of related data. 12. Write a table lookup for matching an array element. General Education Information Approved College Associate Degree GE Applicability CSU GE Applicability (Recommended-requires CSU approval) Cal-GETC Applicability (Recommended - Requires External Approval) IGETC Applicability (Recommended-requires CSU/UC approval) Articulation Information CSU Transferable Methods of Evaluation Essay Examinations Example: In an essay, explanation of each of the following OOP features: Encapsulation, Inheritance, Polymorphism. Objective Examinations Example: Example Objective question: When using inheritance, you can call the base class constructor with this code: a. BaseClass.Inherit() b. Inherit.Base() c. MyBase.New() d. New.BaseClass() Problem Solving Examinations Example: Write the code for a parameterized constructor that assigns the values to the FirstName and LastName properties in the class. Projects Example: The semester project is an opportunity for you to apply what you have learned in class to a real-world situation. You get to choose the topic. The only requirement is that the project must incorporate some of the concepts and principles that you have learned in class this semester. The semester project must be an original program. If your program was not created from scratch, then you must show us what it looked like before you started. In other words, if you are planning to do a "makeover" on an existing program, then you must show the "before" and "after", so that we have a clear picture of your involvement. Reports Example: Write a research paper that covers the following topic: Compare and contrast procedural programming with object-oriented programming. In particular, explain the advantages of Encapsulation, Inheritance, and Polymorphism. Use examples to illustrate the differences as they relate to a particular task. Cite references to current published works. Repeatable No Methods of Instruction Laboratory Lecture/Discussion Distance Learning Lab: Following an instructor discussion on visual basics, students will conduct a hands-on group computer activity based on the discussion. For example, have each group create a program using Visual Basic. Tasks would be design, coding, and debugging. The topic for the hands-on activity is chosen to reinforce the lecture and to prepare them for the homework assignment. Lecture: The instructor will utilize a slideshow presentation interspersed with topic-specific video clips and live demonstrations of programming techniques. For example, the lecture topic might be Visual Basic. First, review background and general terminology. Second, do a live demonstration on creating a program with Visual Basic. Third, students will then investigate further by summarizing a topic-specific video clip from a website. Distance Learning The instructor will present a video lecture describing the process of visual program design and development, classes, objects, properties, and methods. After the student views the lecture, they will then be given a problem to design and implement a program. Typical Out of Class Assignments Reading Assignments 1. Read the assigned pages from the textbook on classes and objects and be prepared to discuss in class the use of classes and objects in the context of visual inheritance. 2. Read the assigned pages from the textbook on arrays and be prepared to discuss in class the use of two-dimensional arrays to create dynamic lookup tables. Writing, Problem Solving or Performance 1. Complete all of the Case Studies at the end of the chapter and create test cases for 'If' statements to make sure that all program branches are working correctly. 2. Complete all of the Case Studies at the end of the chapter and test their outputs with different seed values for the random number generator. Other (Term projects, research papers, portfolios, etc.) Required Materials Programming in Visual Basic 2010 Author: Julia Case Bradley & Anita Millspaugh Publisher: Career Education Publication Date: 2010 Text Edition: 1st Classic Textbook?: Yes OER Link: OER: Programming in Visual Basic 2010: The Very Beginner's Guide Author: Jim McKeown Publisher: Cambridge University Press Publication Date: 2010 Text Edition: 1st Classic Textbook?: Yes OER Link: OER: Programming with Microsoft Visual Basic 2010 Author: Diane Zak Publisher: Course Technology Publication Date: 2020 Text Edition: 9th Classic Textbook?: Yes OER Link: OER: Visual Basic Programming, Real World Code & Explanations, For Beginners, Visual Basic Reference, Visual Basic for Application: Author: Virginia Cooper, Ray Yao Publisher: Independently published Publication Date: 2024 Text Edition: 1st Classic Textbook?: OER Link: OER: Other materials and-or supplies required of students that contribute to the cost of the course.

CSCI 0039 - Introduction to Computer Architecture and Assembly Language

https://catalog.sierracollege.edu/course-outlines/csci-0039/
Catalog Description Prerequisite: Completion of CSCI 0010 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: Assembly language programming techniques and introductory computer architecture concepts. Topics include addressing modes; pseudo operations; stack processing; subroutine linkage; arithmetic and logical operations; input and output; digital logic. Programs are designed, coded, tested, and debugged. (C-ID COMP 142) (CSU, UC) Course Student Learning Outcomes CSLO #1: Write simple assembly language program segments. CSLO #2: Implement a machine level language program based on the given high level language program. CSLO #3: Explain the internal representation of integer, floating point and non-numeric representation of data. CSLO #4: Explain addressing modes used to access data. CSLO #5: Use fundamental logic gates to design and implement combinational and sequential digital circuits. Effective Term Fall 2026 Course Type Credit - Degree-applicable Contact Hours 72 Outside of Class Hours 90 Total Student Learning Hours 162 Course Objectives Lecture Objectives: 1. Describe the programmer's model of the target computer. 2. Describe the operation and use of an assembler. 3. Pseudocode algorithms that perform multi-byte arithmetic. 4. Pseudocode algorithms that perform code conversion. 5. Pseudocode algorithms that make use of the input-output devices, such as the USART, on the microcontroller. 6. Demonstrate the ability to convert high-level pseudocode algorithms to assembly language. 7. Compare and contrast RISC and CISC architectures. 8. Compare and contrast microcontrollers and microprocessors. Laboratory Objectives: 1. Demonstrate the ability to use an assembly language integrated development environment. 2. Write assembly language programs that use multi-byte arithmetic and memory load-store operations. 3. Write assembly language programs that make use of LEDs as output devices and switches as input devices. 4. Write assembly language programs that perform code conversion. 5. Write assembly language programs that make use of common peripherals including the USART, timer-counter, analog to digital converter, pulse-width modulator, and EEPROM. 6. Write assembly language programs that interface to external peripherals using the SPI or I2C bus. 7. Write assembly language programs that interface assembly language modules to a high-level language program. 8. Write assembly language programs that demonstrate fundamental operating system concepts. 9. Design combinational logic circuits. General Education Information Approved College Associate Degree GE Applicability CSU GE Applicability (Recommended-requires CSU approval) Cal-GETC Applicability (Recommended - Requires External Approval) IGETC Applicability (Recommended-requires CSU/UC approval) Articulation Information CSU Transferable UC Transferable Methods of Evaluation Objective Examinations Example: 1. Convert the binary number 01001010 to decimal. 2. Which registers in the arm Cortex-M are used for the stack pointer, link register, and program counter? Problem Solving Examinations Example: The following assignment is evaluated based on program functionality (50%), appropriate division of labor in subprograms (30%), and quality of documentation (20%): Write an arm assembly language program that implements the four fundamental 64-bit math operations. Each binary operator subprogram should accept its operands though the R0 and R1 registers. Assume the operands are stored in little-endian notation. Skill Demonstrations Example: The following assignment is evaluated based on program functionality (50%), object-oriented design techniques (30%), and quality of documentation (20%): Write a program that counts in binary from 00000000 to 11111111. Your program should display each number on the LEDs connected to port B of the microcontroller. You will need to implement a 0.5 s time delay subprogram that is called after each number is displayed. Repeatable No Methods of Instruction Laboratory Lecture/Discussion Distance Learning Lab: Following an instructor discussion on the if/else in assembly language, students will be given a problem to be solved using if/else in assembly language. Lecture: When teaching the topic of addressing modes, the faculty uses primarily lecture. Each addressing mode is discussed in turn and multiple examples of each mode are written on the white board. Special attention is paid to indexed addressing and its use. Determining the length of a null terminated string is used an example of where indexed addressing is necessary. Students are assigned multiple labs that demonstrates their knowledge of addressing modes. Distance Learning Online lecture and discussion about microcontrollers and microprocessors, followed by students comparing and contrasting microcontrollers and microprocessors in a report that is posted for other students to review and provide comments. Typical Out of Class Assignments Reading Assignments 1. Read Chapter Three in Upton, Electronic Memory (pages 47-91). Create a table showing the various types of memory, a short description of each type, and the access time in nanoseconds and be prepared to discuss in class. 2. Read Chapter four in Upton, System on a Chip (SOC) and be prepared to discuss in class. Writing, Problem Solving or Performance 1. Implement the binary to ASCII decimal algorithm discussed in class. Use register R16 to pass the binary number into the subprogram, and a four byte memory buffer to store the result. Test Data Pass each of the following numbers to your binary to ASCII decimal subprogram: 0b00000001 0b11111111 0b10100101 0b00000000 0b11001100 You must call the subprogram once for each test datum. So there should be 5 calls to your subprogram in your main program. Make sure you clear the memory buffer before each call. 2. Write a pair of programs that count and display the number of times the switch connected to the low order bit of Port D is pressed. The first program accepts the switch input without debounce, and the second program adds a debounce delay. Recall that when a switch is pressed, the corresponding bit of the input port goes to logic-level 0. Other (Term projects, research papers, portfolios, etc.) Required Materials Learning Computer Architecture the the Raspberry Pi Author: Eben Upton, Jeff Duntemann, Ralph Roberts, Tim Mamtora, Ben Everard Publisher: Wiley Publication Date: 2016 Text Edition: 1st Classic Textbook?: Yes OER Link: OER: Modern Assembly Language Programming with the ARM Processor Author: Larry D. Pyeatt Publisher: Newnes Publication Date: 2016 Text Edition: 1st Classic Textbook?: Yes OER Link: OER: Raspberry Pi Assembly Language Programming: ARM Processor Coding Author: Stephen Smith Publisher: Apress Publication Date: 2019 Text Edition: 1st Classic Textbook?: Yes OER Link: OER: Introduction to Computer Organization: ARM Edition Author: Robert Plantz Publisher: No Starch Press Publication Date: 2025 Text Edition: 1st Classic Textbook?: OER Link: OER: Other materials and-or supplies required of students that contribute to the cost of the course.

CSCI 0050 - Introduction to Unix/Linux

https://catalog.sierracollege.edu/course-outlines/csci-0050/
Catalog Description Prerequisite: Completion of CSCI 0010 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: An introduction to the Unix and Linux operating systems with an emphasis on system programming. Topics include the filesystem, permissions, regular expressions, processes, networking, basic system administration, and shell scripting. Extensive hands-on experience using the command line interface. (CSU, UC) Course Student Learning Outcomes CSLO #1: Explain the basic Linux shell commands and utilize piping and redirection to construct more complex commands. CSLO #2: Utilize regular expressions to search for, extract, and transform data from input. CSLO #3: Construct shell programs utilizing control structures. CSLO #4: Read man pages and use the man command to find Unix/Linux commands to perform a specific operation. CSLO #5: Explain basic networking commands of ssh, sftp and how to use email. Effective Term Fall 2026 Course Type Credit - Degree-applicable Contact Hours 72 Outside of Class Hours 90 Total Student Learning Hours 162 Course Objectives Lecture Objectives: 1. Identify and describe prominent figures in Unix/Linux history: Ken Thompson, Dennis Ritchie, and Linus Torvalds. 2. From a written description, analyze and calculate correct permissions to set on files and directories using both numeric and symbolic representations. 3. Specify file locations using absolute and relative paths. Laboratory Objectives: 1. Create, edit, and remove files and directories using core commands: cp, mv, mkdir, rmdir, rm, ls. 2. Construct pipelines of commands to filter data. 3. Construct correct regular expressions to match patterns in data files. 4. Create and kill processes using job control commands and signals. 5. Copy files to and from remote machines. 6. Diagnose network problems using ping, nslookup, and netstat. 7. From written descriptions, write correct shell scripts utilizing sequencing of commands, conditionals, and iteration. 8. Compile and install third-party software packages. 9. Compile and execute user-supplied programs in Java, C, or C++. General Education Information Approved College Associate Degree GE Applicability CSU GE Applicability (Recommended-requires CSU approval) Cal-GETC Applicability (Recommended - Requires External Approval) IGETC Applicability (Recommended-requires CSU/UC approval) Articulation Information CSU Transferable Methods of Evaluation Objective Examinations Example: Example objective question: 1. Which of the following are relative paths? a. /home/unix/bbrown b. ../lab1/readme.txt c. public_html/sierra.jpg d. ../jsmith/../overview e. /bin/grep Answer: b, c, and d 2. The output of the "ls -l lab2.txt" file shows this: -rwxr-xr-- 1 jsmith engineering 253 2012-3-12 lab2.txt What can the jsmith user do with this file? a. Alter its contents b. Delete it c. Make it the current working directory d. Can't tell from the information given Answer: a (Not b, because only the containing directory will dictate whether it can be deleted; not c because it's not a directory.) Problem Solving Examinations Example: Write a bash shell script to create a thumbnail of each image listed on the command line. Place each thumbnail in a directory called thumbs. Each thumbnail should be 50 pixels high and the filename should be the same as the original. The original remains unaffected. Solution: while [ $# -gt 0 ] do jpegtopnm $1 | pnmscale -height 50 | pnmtojpeg > thumbs/$1 shift done Projects Example: Find at least three sources that describe the philosophies behind open source software, free software, and proprietary software. Write a two-page essay that analyzes situations in which each would be most appropriate for a) medical diagnostic software, b) voting software, and c) web site software. Repeatable No Methods of Instruction Laboratory Lecture/Discussion Distance Learning Lab: The instructor reviews the commands that manipulate permissions: chmod, chown, chgrp, and umask. Using a computer and projector on a live Unix/Linux system, the instructor demonstrates several examples of altering permissions and their effects. The instructor puts students into groups of 3 or 4 and assigns them Unix group names. Students work in groups to share files among their group members, following written problem descriptions. The instructor monitors progress by checking answers and visually verifying the results. (Laboratory Objective 7) On a prior day, the instructor requests that students bring in a Java, C, or C++ program they have been working on in another class, or a program they have written in the past. The instructor may also provide a program for students who don't have one of their own. On the day of the assignment, the instructor describes how to compile programs using the javac or gcc compilers and how to run them on the command line. The instructor also shows how to build a Makefile or build.xml file to automate the process using make or ant. In the lab, students apply the instructions to their own project (or instructor-supplied one). The instructor determines if the program has been successfully built by having the student show the intermediate object or class files and running the final executable. (Laboratory Objective 9) Lecture: Assume the students have read the appropriate section in the textbook about permissions or they have watched supplemental videos (if available). The instructor reviews file permissions by explaining the numeric (e.g., 764) and symbolic (drwxrw-r--) representation. The students work problems of converting one representation into the other, since they are equivalent. Distance Learning The instructor will present a video lecture describing how to compile programs using the javac or gcc compilers and how to run them on the command line. The instructor also shows how to build a Makefile or build.xml file to automate the process using make or ant. Students apply the instructions to their own project (or instructor-supplied one). The instructor determines if the program has been successfully built by having the student upload the intermediate object or class files and running the final executable. Typical Out of Class Assignments Reading Assignments 1. Read the chapter on the AWK programming language. Pay attention to examples of extracting columnar data from text files based on numeric criteria, such as "display all ages over 18." Practice it extracting columnar data by creating a criteria of your own. Be prepared to discuss in class. 2. Read web sites about the history of Unix. Take note of prominent figures over the past thirty years: Ken Thompson, Dennis Ritchie, Richard Stallman, and Linus Torvalds. Be prepared to discuss in class. Writing, Problem Solving or Performance Example 1: Use awk, grep, sort, and uniq to analyze a web server log file and show how many "hits" the server received each hour of the day, over the span of a month. Solution: awk -F: '{print $2}' /var/log/httpd/access_log | sort -n | uniq -c Example 2: Calculate the correct umask so that future directories will have permission drwxr-x--x and files will be -rw-r-----. Solution: umask 026 Example 3: Write a three-page report describing the similarities and differences between open source software, free software, and proprietary software. Which would be most appropriate in these situations: a) medical diagnostic software, b) computerized voting software, c) web service software? Other (Term projects, research papers, portfolios, etc.) Hands-on experience using the command line in a shared, server environment. Required Materials Practical Guide to Linux Commands, Editors, and Shell Programming Author: Sobell, Mark Publisher: Prentice Hall Publication Date: 2014 Text Edition: 4th Classic Textbook?: Yes OER Link: OER: Your Unix/Linux: The Ultimate Guide Author: Das, Sumitabha Publisher: McGraw-Hill Publication Date: 2012 Text Edition: 3rd Classic Textbook?: Yes OER Link: OER: Modern Operating Systems Author: Andrew S. Tanenbaum (Author), Herbert Bos Publisher: Pearson Publication Date: 2022 Text Edition: 5th Classic Textbook?: No OER Link: OER: Other materials and-or supplies required of students that contribute to the cost of the course.

CSCI 0052 - Introduction to SQL

https://catalog.sierracollege.edu/course-outlines/csci-0052/
Catalog Description Prerequisite: Completion of CSCI 0010 with grade of "C" or better Hours: 72 (54 lecture, 18 laboratory) Description: Survey of SQL (Structured Query Language). Includes database models, database design, table and view definition, transaction and data manipulation, queries and reports, data integrity, stored procedures, triggers, recovery and security. Hands-on experience using a popular SQL database. (CSU) Course Student Learning Outcomes CSLO #1: Design a database schema based on the conceptual model. CSLO #2: Explain the major components of a Database Management System (DBMS). CSLO #3: Use DBMS software to create a database in an Entity Relationship Diagram. CSLO #4: Query the data in a relational DBMS by creating SQL commands. Effective Term Fall 2026 Course Type Credit - Degree-applicable Contact Hours 72 Outside of Class Hours 90 Total Student Learning Hours 162 Course Objectives Lecture Objectives: 1. Design a database consisting of two or more tables from a written description of requirements. The design should include appropriately-named entities and attributes and appropriate data types. 2. Express a database design in an Entity Relationship Diagram using industry-recognized symbologies. 3. Enforce data integrity by utilizing any or all of the following constraints: primary key, foreign key, not null, unique, and check. 4. Analyze a query for potential optimizations and re-express the query in a more optimal form. 5. Analyze the schema of an un-normalized database and transform it into equivalent 1st, 2nd, and 3rd Normal Forms. 6. Identify many-to-many relationships between tables in a database design and transform them into equivalent one-to-many relationships using resolution tables. 7. Analyze tables to determine where indexes would increase the efficiency of queries. Apply indexes to the appropriate tables and fields. Test the hypothesis by measuring the increase or decrease in efficiency. Laboratory Objectives: 1. Construct valid SQL commands to create tables corresponding to a written description or ERD. 2. Construct valid SQL commands to insert, modify, and delete data into/from the tables. 3. Construct valid SQL commands to populate tables from tab-delimited and comma-separated external data files. 4. Based on written descriptions of the data to be selected and the format and ordering of the output, construct valid SQL commands to select data from one or more tables using joins, nested subqueries, functions, and/or operators where necessary. 5. Construct valid SQL commands to create and use views of multiple tables. 6. Construct valid SQL commands to create and use stored procedures and functions. General Education Information Approved College Associate Degree GE Applicability CSU GE Applicability (Recommended-requires CSU approval) Cal-GETC Applicability (Recommended - Requires External Approval) IGETC Applicability (Recommended-requires CSU/UC approval) Articulation Information CSU Transferable Methods of Evaluation Objective Examinations Example: Shown is a database schema taken from an Excel spreadsheet. It is not normalized. Show the equivalent 1st, 2nd, and 3rd Normal Forms as ERDs. Explain your rationales for making the transformations you chose. Problem Solving Examinations Example: 1. Using the database entity relationship design shown, write the appropriate SQL commands to answer the following questions. a. How many customers are represented in the "customers" table? ANSWER: SELECT COUNT(*) FROM customers b. What is the average age of the customers in each state? Present your answer arranged from least to greatest. ANSWER: SELECT state, AVG(age) FROM customers ORDER BY AVG(age) c. Display the names of each customer and the titles of the books they have ordered this year. ANSWER: SELECT name, title FROM customer, orders WHERE customer.id = order.customer_id AND orderdate >= '2012-01-01' 2. Which data type would be most appropriate for storing a phone number? a. int b. char(20) c. blob d. date ANSWER: (b) because phone numbers can contain non-numeric characters You have begun a transaction. During the transaction you create a table and insert some data into it. Then you rollback the transaction. What happens to the table? a. The data is thrown away, but the table structure persists. b. The table structure is discarded, but the data is retained. c. Both the table and data are discarded. d. Nothing; the table and data are both retained. ANSWER: (c) Projects Example: Jones family opened a pizza place a couple of years ago. Their business has been successful and they are opening more stores around the town. They value customer satisfaction and they are keeping track of their customers’ complaint using a spreadsheet. Each row of the spreadsheet records information about the store, the manager, the customer and the complaint. As their business is growing, spreadsheet will not be sufficient for what they are trying to do. Design a and implement a database with the same information as they have in their spreadsheet so they can evaluate the customer satisfaction in their stores. These are the information that they keep track of in their spreadsheet: store address, phone, manager, manager id, manager phone, customer id, customer name, customer address, customer phone, complaint date, complaint time, complaint description. Repeatable No Methods of Instruction Laboratory Lecture/Discussion Distance Learning Lab: Following an instructor discussion on SQL, the students are supplied word problems and must translate them into correct SQL commands. The instructor is on-hand to answer questions and critique answers. Lecture: Instructor lecture on database designs, followed by students reading a case study and design a database from it. When done, they will compare solutions with each other. The best ones will be presented to the class for critique and analysis. Distance Learning The instructor will present a video lecture on how to translate a written description of a database into the required tables and constraints. After the student views the lecture, a written description of a database will be given to the students to translate it to tables and constraints. Typical Out of Class Assignments Reading Assignments 1. Read the chapter about table joins. Summarize the SQL commands and options used to implement joins on a piece of paper to be used as reference during class discussion. 2. Two popular databases, PostgreSQL and MySQL, handle views differently. In particular, one of them supports updatable views and the other does not. Read the online documentation for both database systems and identify the one that does not support updatable views. Continue reading the documentation to discover how the built-in rules system can be modified to, in effect, support updatable views by overriding default behaviors. Be prepared to discuss in class. Writing, Problem Solving or Performance 1. Read the case study for a video library as given in the handout. Then do the following: a. Design a database that meets the criteria expressed in the case study. Draw an entity relationship diagram corresponding to your design. b. Create the tables from your design by writing the appropriate SQL commands. c. Populate the tables from the sample data given by the instructor. d. From the data, answer the following questions: * How many videos are currently being rented? * Which customers are renting videos? * Late fees are $2 per day. How much is owed to the video rental company from videos that are late? 2. You have been given a large spreadsheet which contains data in an un-normalized form. Using the normalization techniques discussed in class and from your readings, convert the flat (one table) spreadsheet into Third Normal Form (3NF) by drawing an ERD. Construct the appropriate SQL commands to implement your design on the computer. Other (Term projects, research papers, portfolios, etc.) Required Materials SQL: A Beginner's Guide Author: Oppel, Andy Publisher: McGraw-Hill Osborne Media Publication Date: 2015 Text Edition: 4th Classic Textbook?: Yes OER Link: OER: SQL Queries for Mere Mortals Author: Viescas, John L. Publisher: Addison-Wesley Professional Publication Date: 2018 Text Edition: 4th Classic Textbook?: Yes OER Link: OER: Database Design for Mere Mortals Author: Hernandez, Michael Publisher: Addison-Wesley Professional Publication Date: 2013 Text Edition: 3rd Classic Textbook?: Yes OER Link: OER: The Language of SQL: How to Access Data in Relational Databases Author: Larry Rockoff Publisher: Course Technology PTR Publication Date: 2010 Text Edition: 1st Classic Textbook?: Yes OER Link: OER: SQL Server Learning: Generate, Manipulate, Retrieve and Managing Data.: QuickStart Guides for Beginner. Author: Andrzej Śmigielski Publisher: Andrzej Śmigielski Publication Date: 2023 Text Edition: 1st Classic Textbook?: OER Link: OER: Other materials and-or supplies required of students that contribute to the cost of the course.