Computer Studies

Computer Studies Courses

Department Philosophy

The Computer Studies Department at Episcopal High School strives to place students in a learning environment where problem-solving skills are enhanced. The department wants their students to adopt an orderly thinking style so they may approach and then solve a problem in an efficient and replicable manner. Students are reminded that the problem-solving strategies that they are taught can be applied across many other disciplines.

TECH 101

When students enter Episcopal High School they come with a variety of computer skills.
Tech 101 allows those students with minimal computer skills to learn the basics of computer usage, while challenging those with more advanced computer skills to use their skills in fun ways. Tech 101 teaches all new students how to care for their laptops, how to use the School’s network properly, and how to use the Internet safely. Indirectly, Tech 101 also teaches all new students how to be more effective students by teaching them organizational skills and how to follow directions.

Content
  1. How to use the EHS network
  2. Understanding the differences between wired, wireless, and workstation-only connection
  3. Understanding the use of the F:\ drive (students’ personal space on the EHSNet)
  4. Effectively accessing and using GroupWise e-mail
  5. The potential dangers of “banned software”
  6. Laptop care and feeding
  7. Using the EHS intranet
  8. Using Blackboard
  9. Installing and using printers
  10. Understanding the proper use of the Internet
  11. The effects of cyberbullying
  12. The proper use of social sites
  13. Staying safe while online
  14. Understanding the different types of intellectual property
  15. The consequences of plagiarism
  16. Effective use of PowerPoint
  17. Understanding the damage caused by malicious code and viruses
  18. Effective ways to prevent infection
Skill Objectives
  1. To be able to log in properly to the EHS network
  2. To be able to distinguish between a wired connection, a wireless connection, and a computer-only connection
  3. To be able to locate the students’ individual network drive, create folders, and save to the EHS network for backup purposes
  4. To be able to log in to GroupWise email
  5. To be able to send email, open attachments safely, send attachments, save email attachments, and identify the proper use of mass email
  6. To be able to identify “banned software” and the potential danger and damages created when installed
  7. To be able to identify ways to keep the laptop safe from physical damage
  8. To become familiar with the EHS intranet and be able to locate important links
  9. To be able to log in and locate announcements, tour information, classes, and all course material posted on Blackboard (assignments, tests, etc.)
  10. To be able to locate and install dorm and classroom printers
  11. To be able to follow directions which are given for an Internet scavenger hunt to become more familiar with using the Internet
  12. To be able to effectively identify ways that cyberbullying is more detrimental than in-person bullying
  13. To be able to name several ways to prevent cyberbullying
  14. To define social sites and how they are typically used
  15. To be able to identify proper ways to use social sites
  16. To be able to identify effective ways to stay safe while online and surfing the Internet
  17. To be able to define intellectual property and distinguish between what is in the public domain and what is not
  18. To be able to define plagiarism and list consequences of using plagiarized works
  19. To be able to create a PowerPoint and in so doing identify whether its content/context is, or is not, appropriate for oral presentation
  20. To be able to distinguish the difference between malware and viruses
  21. To be able to effectively perform updates of protection software and run scans
Methods of Evaluation
  1. Assignments
  2. Survey
  3. Quiz

INTRODUCTION TO COMPUTER PROGRAMMING

The art of programming is the putting together of a set of instructions for a computer so that the machine can solve the problem at hand. Emphasis will be placed on the design of structured algorithms to problems taken from a wide variety of applications, many of which are of a non-mathematical nature. No previous programming experience is expected. The Java language is used in this course. Therefore, there is an emphasis placed on object-oriented programming.

Content
  1. Introduction to Object-Oriented Programming and Problem Solving
  2. Elements of Java
  3. Classes and Methods
  4. Numeric Types
  5. Branching and Method Algorithm Design
  6. Loops and Files
  7. Control Structures
  8. Object-Oriented Software Engineering
  9. Arrays
  10. Inheritance, Polymorphism, and Scope*
  11. Array-Based Lists*
  12. Data Structures and Collections*
  13. Recursion*
  14. Applets*

* if time permits

Skill Objectives
  1. List the basic stages involved in writing a computer application
  2. Distinguish between hardware and software
  3. List the ways of structuring code in a Java application
  4. Name several problem-solving techniques
  5. Choose an applicable problem-solving technique
  6. Identify the objects from the statement of a problem
  7. Read and understand the formal syntax rules governing Java programs
  8. Distinguish between reserved words and identifiers
  9. Create and recognize legal Java identifiers
  10. Write simple output statements using the System.out class
  11. Construct a Java application
  12. Declare fields of type char and string
  13. Assign values to variables
  14. Construct string expressions
  15. Use comments appropriately
  16. Instantiate a Scanner object
  17. Write string input operations using the Scanner class
  18. Design an interactive user interface
  19. Determine the attributes and responsibilities of a class
  20. Write the heading for a new class, the class declarations, an instance method, a class method, a constructor, a helper method, and a value-returning method
  21. Assemble class declarations into a working class
  22. Declare named constants and variables of types int and double
  23. Construct and evaluate arithmetic expressions
  24. Read numeric values using the methods of the Scanner class
  25. Use Java math methods in expressions
  26. Use relational operators >, <, <=, >=, ==, and !=
  27. Construct logical (Boolean) expressions to evaluate the truth value of a given condition
  28. Construct various forms of if and if-else statements to perform specific tasks
  29. Apply functional decomposition to design a method algorithm
  30. Construct count-controlled and event-controlled loops using a while statement
  31. Use flags and end-of-file conditions to control loops
  32. Write applications that use data files for input and output using appropriate statements to read from and write to a text file
  33. Write a switch statement for a multiway branching problem
  34. Write a do statement and contrast it with a while statement
  35. Write a for statement as an alternative to a while statement
  36. Use the Java exception-handling facilities try, catch, and throw
  37. Declare and use an enum type
  38. Develop mutator and accessor methods
  39. Convert a CRC card into a Java class
  40. Draw a UML class diagram
  41. Declare and instantiate a one-dimensional array
  42. Access and manipulate the components in a one-dimensional array in which the components are either atomic or composite types
  43. Declare and instantiate a two-dimensional array
  44. Perform fundamental operations on the elements of a two-dimensional array by both rows and columns where the components are either atomic or composite types 
Materials
  • Programming and Problem Solving with Java (second edition) with student CD
  • TextPad software
  • Some handouts are also distributed
  • http://java.sun.com
Methods of Evaluation
  1. Programming projects
  2. Homework—end-of-chapter problems
  3. Quizzes

AP COMPUTER SCIENCE A

This information describes the second semester of programming following the semester of the Introduction to Computer Programming course. It covers the A level curriculum as described in the College Board's Advanced Placement course description for computer science (the "acorn" booklet). The up-to-date course description and information can be found at the College Board's website. The A course is roughly equivalent to the college CS-1 curriculum and may receive a one-year credit in college.

Content
  1. Introduction to hardware and software
  2. Introduction to software development
  3. Objects and classes
  4. Algorithms
  5. ava syntax and style
  6. Data types, variables, and arithmetic
  7. Boolean expressions and if-else constructs
  8. Iterative statements: while, for, do-while
  9. Implementation of classes and objects
  10. Strings
  11. Class hierarchies and interfaces
  12. Arrays and ArrayLists
  13. Searching and sorting
  14. Big-O analysis of algorithms
  15. Gridworld case study
  16. Ethical and social implication of computer use
Skill Objectives
  1. To be able to differentiate between hardware and software
  2. To be able to represent how information is stored in memory
  3. To be able to differentiate between compilers and interpreters
  4. To be able to explain the importance of the JVM and bytecode
  5. To be able to define a class and instantiate objects from that class in an application
  6. To be able to use fields, constructors, and methods (void and value return)
  7. To be able to write a good algorithm showing understanding of iteration and recursion
  8. To be able to use comments, proper syntax, and proper style in Java code
  9. To be able to use fields and variables of various primitive types
  10. To be able to display understanding of the concept of scope
  11. To be able to simplify and use arithmetic expressions, compound assignments, and increment/decrement operators
  12. To be able to use Boolean expressions and data type
  13. To be able to use arithmetic, relational, and logical operators correctly and in the correct order
  14. To be able to use switch, if, if-else and nested if-else structures
  15. To be able to use while, for, and do-while structures (return and break)
  16. To be able to use modifiers such as public, private, static, and final properly
  17. To be able to define constructors and void, return value, accessor, and modifier methods
  18. To be able to work with the string class and the methods contained therein
  19. To be able to design class hierarchies and demonstrate the use of inheritance
  20. To be able to demonstrate the use of polymorphism
  21. To be able to implement one- and two-dimensional arrays and ArrayList objects
  22. To be able to analyze algorithms—in particular various sorting and searching techniques using Big-O analysis
  23. To be able to understand, analyze, and implement recursive algorithms
  24. To be able to recognize searching techniques: sequential, binary search, and their Big-O comparison if appropriate
  25. To be able to recognize sorting techniques: selection sort, insertion sort, bubble sort, mergesort, quicksort, and heapsort, and their Big-O comparisons
  26. To be able to work with and understand the College Board’s case study  
Materials
  • Litvin, Maria, and Gary Litvin. Java Methods A and AB: Object-Oriented Programming and
    Data Structures, AP Edition, Andover, Mass.: Skylight Publishing, 2006.
  • The College Board’s GridWorld case study.
  • Wirth, Nicklaus. Algorithms + Data Structures = Programs, Englewood Cliffs, NJ: Prentice-
    Hall, Inc., 1976.
  • Current magazine and Internet articles discussing ethical and social issues related to computer use
  • Additional resources available at http://www.skylit.com/javamethods and
    http://www.skylit.com/oop
Methods of Evaluation
  1. Programming projects
  2. Quizzes
  3. Tests
  4. Exam  

LINUX FUNDAMENTALS

This course is designed for students who have limited or no knowledge of the Linux Operating System. It introduces the knowledge and skills needed to work with Linux and prepares them to take the Novell CLA exam. Students are required to have only basic computer skills on any operating system. Knowledge of a desktop operating system is sufficient.

Content
  1. Getting to Know SUSE Linux Enterprise 11
  2. Locate and use help resources
  3. Manage the Linux file system
  4. Work with the Linux shell and command line interface (CLI)
  5. Administer Linux with YaST
  6. Manage users, groups and permissions
  7. Use the vi Linux text editor
  8. Manage software for SUSE Linux Enterprise 11
  9. Install SUSE Linux Enterprise 11
  10. Manage system initialization
  11. Administer Linux processes and services
  12. Administer the Linux file system
  13. Configure the network
  14. Manage hardware
  15. Configure remote access
  16. Monitor SUSE Linux Enterprise 11
  17. Automate tasks
  18. Manage backup and recovery
  19. Administer user access and system security
Skill Objectives
  1. To be able to perform basic tasks in SUSE Linux Enterprise 11
  2. To be able to use the GNOME desktop environment
  3. To be able to access the CLI from the desktop
  4. To be able to access and use man pages
  5. To be able to access and use info pages
  6. To be able to access release notes and white papers on the Internet
  7. To be able use GUI-based help
  8. To be able to understand the File System Hierarchy Standard (FHS)
  9. To be able to manage directories and files  with the CLI and Nautilus
  10. To be able to find files on a Linux system
  11. To be able to search file content
  12. To be able to understand the concept of a command shell
  13. To be able to execute commands at the CLI
  14. To be able to work with variables and aliases
  15. To be able to understand command syntax and special characters
  16. To be able to use piping and redirection
  17. To be able to manage the network configuration information using YaST
  18. To be able to manage user and group accounts with YaST and the CLI
  19. To be able to describe basic Linux user security features
  20. To be able to manage file permissions and ownership
  21. To be able to work with different aspects of file system security
  22. To be able to use the vi editor to edit text and configuration files
  23. To be able to manage software with YaST
  24. To be able to manage RPM software packages
  25. To be able to manage software with zipper
  26. To be able to perform a  SLES 11 and SLED  11 installations
  27. To be able to troubleshoot the installation process
  28. To be able to describe the Linux load procedure
  29. To be able to manage GRUB (Grand Unified Bootloader)
  30. To be able to manage runlevels
  31. To be able to describe how Linux processes work  and manage them
  32. To be able to select an appropriate Linux file system
  33. To be able to configure file system partitions
  34. To be able to manage  Linux file systems
  35. To be able to configure LVM and software RAID
  36. To be able to set up and configure disk quotas
  37. To be able to set up network interfaces and routing using the ip tool
  38. To be able to test network connections with CLI tools
  39. To be able to configure hostname and name resolution
  40. To be able to describe how device drivers work in Linux
  41. To be able to manage kernel modules manually
  42. To be able to describe the sysfs file system
  43. To be able to describe how udev works
  44. To be able to provide secure remote access with OpenSSH
  45. To be able to enable remote administration with YaST
  46. To be able to access remote desktops using Nomad
  47. To be able to use system logging services to help monitor a SUSE Linux Enterprise 11 system
  48. To be able to monitor login activity
  49. To be able to schedule jobs using cron and at daemons
  50. To be able to understand different backup strategys
  51. To be able to create backups  with YaST and tar
  52. To be able to use the commands dd and rsync
  53. To be able to configure user authentication with PAM
  54. To be able to manage and secure the Linux user environment
  55. To be able to use ACLs for access control
Materials
  • SUSE Linux Enterprise 11 Fundamentals Manual version 2 by Novell Training Services—authorized courseware
  • SUSE Linux Enterprise 11 Fundamentals Manual Workbook by Novell Training Services—authorized courseware
  • SUSE Linux Enterprise 11 Administration Manualversion 2 by Novell Training Services—authorized courseware
  • SUSE Linux Enterprise Administration Manual Workbook by Novell Training Services—authorized courseware
  • http://www.novell.com/
Methods of Evaluation
  1. Labs and accompanying write-ups
  2. Quizzes
  3. Exam

ADVANCED LINUX

ADVANCED LINUX

This course is designed for students who have an intermediate level knowledge of Linux, including general system configuration and command line work. Configuration of an Apache web server, a SAMBA server, and a print server are examples of topics covered. This cours in combination with Linux Fundamentals will prepare the student for the Novell CLP (Certified Linux Professional) certification practicum. Prerequisites: Linux Fundamentals and by department permission.

Content
  1. Enable fundamental network  services
  2. Manage printing
  3. Configure and use OpenLDAP
  4. Configure and use Samba
  5. Configure a web server
  6. Configure and use IPv6
  7. Perform a health check and performance tuning
  8. Create shell scripts
  9. Deploy SUSE Enterprise Linux Enterprise 11
  10. Manage virtualization with Xen
Skill Objectives
  1. To be able to configure NFS (Network File System)
  2. To be able to configure time on SUSE Enterprise Server 11
  3. To be able to enable the extended internet daemon (xinetd)
  4. To be able to enable an FTP server
  5. To be able to configure CUPS (printing system)
  6. To be able to manage print jobs and queues
  7. To be able to configure and manage print server access
  8. To be able to describe how LDAP works
  9. To be able to install and configure OpenLDAP on SLES 11
  10. To be able to add, modify and delete entries to the LDAP directory tree
  11. To be able to describe the role and function of Samba
  12. To be able to configure a simple file server with Samba
  13. To be able to configure Samba authentication
  14. To be able to use Samba’s client tools
  15. To be able to use Samba as a domain controller
  16. To be able to integrate Samba into a Window’s domain
  17. To be able to set up a basic web server with Apache
  18. To be able to configure virtual hosts on a web server
  19. To be able to limit access to a web server
  20. To be able to configure Apache with OpenSSL
  21. To be able to install PHP on an Apache web server
  22. To be able to understand IPv6 theory
  23. To be able to configure IPv6 on SLE 11
  24. To be able to find performance bottlenecks on a SLES 11 system
  25. To be able to reduce system and memory load on a SLES 11 system
  26. To be able to optimize the storage system on a SLES 11 system
  27. To be able to tune the network performance
  28. To be able to write Bash shell scripts implementing variables, control structures, arithmetic operators, user input, etc.
  29. To be able to use commands such as date, grep, sed and test in scripts
  30. To be able to implement AutoYaST
  31. To be able to set up and use an installation server
  32. To be able to set up PXE boot for installation
  33. To be able to perform an automated installation
  34. To be able to understand how virtualization with Xen works
  35. To be able to manage Xen domains with Virt-Manager and from the CLI
  36. To be able to understand Xen networking
Materials
  • SUSE Linux Enterprise Server 11 Administration Manual by Novell Training Services—authorized courseware
  • SUSE Linux Enterprise Server 11 Administration Manual Workbook by Novell Training Services—authorized courseware
  • http://www.novell.com/
Methods of Evaluation
  1. Labs with accompanying write-ups
  2. Quizzes
  3. Exam