Computational technologies have significantly transformed modern society in many ways, both obvious and subtle. Few areas of life remain untouched. Living, working and contributing to society increasingly demands effective command of information technologies (course descriptions follow). In response, the Computer Science Department at St. John's aims to help each student:
- Think computationally by learning to understand, analyze, and solve problems creatively by applying a variety of strategies appropriate for computational technologies;
- Collaborate effectively with others in the course of solving significant problems;
- Program a computer and organize information effectively with one;
- Understand how computer hardware and communication systems (such as the web) are organized;
- Use information technology in an ethical and responsible way.
All high school students must complete a half credit of computer science before graduation, either Algorithmic Thinking and Computational Technologies or one of these electives: AP Computer Science Principles, AP Computer Science A, Introduction to Programming with Java, Introduction to Programming using C++, Programming in Visual Basic, or Robotics. In addition, our electives cover a wide range, from programming and robotics courses that stress problem solving, creativity, and teamwork to design courses with a more aesthetic emphasis such as web design and 3-D Drawing. In short, we strive to prepare students for the increasingly sophisticated technological world they will live in.
3D Graphic and Computer Aided Design - Honors, Accelerated, College Prep [1/2 credit]
The course introduces students to a professional computer-aided design (CAD) program through both individual and group exercises and project-based work on 2-dimensional and 3-dimensional CAD drawings. Students learn about perspective rendering, hidden surfaces, and the importance of appropriate dimensioning and labeling. Design thinking and the engineering process are introduced and permeate this course. Students are expected to be current on readings and projects throughout the course. Content will be delivered primarily through demonstrations, handouts and practical hands-on experience. Professionals working in the industry are included as guest lecturers when available. The course is based on the CAD course common for freshmen in college engineering programs.
AP Computer Science A [1 credit]
Prerequisite: Departmental approval
This course covers all topics that are part of the AP Computer Science A curriculum, including the basics of the Java programming language, simple data structures, common algorithms, recursion, and sorting. Students will also learn Big-O notation, a way of assessing the execution speed of computer programs. The course is open to both those with no programming experience and students who have taken a Java class previously, and there is no prerequisite. The course does not assume that the students have any prior programming experience. Once the AP exam date is past, the class will be devoted to writing a large-scale program (often a game with graphics) as a group software engineering project. The student should expect to spend additional time outside of class time in the lab or at home doing the exercises, homework, and reading in the text. Please note students cannot simultaneously enroll in Java along with AP Computer Science A. Or take Java after AP Computer Science A.
AP Computer Science Principles [1 credit]
Prerequisite: Departmental approval
AP Computer Science Principles introduces students to the foundational concepts of computer science and challenges them to explore how computing and technology can impact the world. It is equivalent to a college non-major’s course in computer science, introduces students to the essential ideas of computer science, and invites students to understand how computing changes the world. Programming experience is not required. The rigorous course promotes deep learning of computational content, develops computational thinking skills, and engages students in the creative aspects of the field. The course is founded on the big ideas of computer science including abstraction, data and information, algorithms, programing, the Internet and global impact as well as the computational thinking practices of drawing connections between different computing concepts, creating computational artifacts, abstracting, analyzing problems, communicating and collaborating.
- Students who complete the course are not eligible to enroll in Introduction to Algorithmic Thinking.
- This course fulfills the Computer Science programming requirement.
Desktop Publishing - Honors, Accelerated, College Prep [1/2 credit]
This course will provide the student with experience in the preparation of materials -- electronic and printed -- that can be published. There will be work with the use of a publishing software package and some graphics packages to design different types of printed materials. Additionally, the course will then shift to the world of electronic publishing and the use of PowerPoint for the development of electronic materials. The students will be expected to develop different types of print materials during the course. These will include such items as flyers, brochures, and newsletters. The electronic portion will involve the construction of different types of presentations and the elements for the efficient and effective presentation of information. There will be reading and written homework assignments, lab projects, and the preparation of a portfolio for the final evaluation of the student's work. The course will be offered at different levels with differing projects and assignments, depending on the level the student selects.
Multimedia and Digital Video Production - Honors, Accelerated [1/2 credit]
Multimedia & Digital Video Production brings technology and creativity together to help students master the skills they need to produce engaging, technically advanced videos.
Students can use any filming technology available to them and will use iMovie to edit and produce the final product. They develop a wide range of skills, including everything from script development, storyboarding, location and resource planning to camera work, special effects, scene transitions, editing, titling and audio. Students will also analyze movies, news programs, and other forms of media in order to gain a better understanding of the wide variety of techniques used in filming and editing. The course is primarily project based and students will be expected to work both individually and in groups.
Introduction to Algorithmic Thinking and Computational Technologies - Accelerated [1/2 credit]
Introduction to Algorithmic Thinking and Computational Technologies introduces students to algorithmic thinking and symbolic reasoning using modern programming languages and to basic concepts of modern computer science such as abstraction, digital representations of data, collaborative development of computational systems, and the ethical concerns raised by digital communications. The course explores the global, national and personal impact of technology. Students will be expected to work both individually and in groups to explore key concepts of computer science. While a significant component of the course will involve computer programming, no previous programming experience is expected. Students must complete either this course or a designated alternative course before graduation.
Introduction to iOS Programming - Honors [1/2 credit]
Prerequisite: AP Computer Science A or Departmental approval
Now that the mobile devices are more popular than desktop computers, programming for mobile systems has become much more important. In this course students will learn to program for Apple’s iOS operating system, beginning with an introduction to the Swift programming language and moving on to the tools and APIs for iOS progamming. Students should expect to spend substantial time programming outside class. The course will conclude with a group project in which all members of the class collaborate in writing a more sophisticated iOS program.
Introduction to Programming Using C++ - Honors [1/2 credit]
This course will introduce the student to programming in the C++ language. Topics covered include program mechanics, creating and editing files, function declaration and construction, simple data types, operating with arrays, building structures and object oriented programming. Homework, tests, computer labs and projects are used to determine grades.
Introduction to HTML and Web Design - Honors, Accelerated, College Prep
In this course, all aspects of web site creation and management are explored. Students will practice all the steps necessary to have their own sites on the web. Students will purchase a web domain, hire a hosting company, and learn to author pages in HTML5 to display on their sites. Students will be introduced to the syntax of Hypertext Markup Language (HTML) for creating Web pages and learn how to author Web pages including such elements as text, graphics, images, video clips, and links to other pages. Throughout the course, emphasis is on proper presentation using Cascading Style Sheets (CSS). In addition to writing basic HTML, students will also learn to use a sophisticated web page design program or content management system. Homework, exams, quizzes, computer labs and projects are used to determine grades. While there is no textbook, students should expect to budget a small amount of money (approximately $50) for the web domain purchase and hosting.
Programming in Visual BASIC - Honors, Accelerated, College Prep 1 [1/2 credit]
This course provides students with a look at the Visual BASIC programming language. Topics to be covered include primitive and composite data types. The use and creation of methods, which form the basis for the solution of various programming problems, are included. Once students have mastered the basic concepts of a procedural language, they will be introduced to the concept of the class and data structures. These form the basis of the Object Oriented Programming segment of the course. Lists and other data structures are examined. Predefined classes are examined in project work. The use of graphics will be the vehicle for the exploration of Objects. There is an expectation that the student will spend time outside of class doing the readings, working on written homework, and working on the development of the assigned projects.
Introduction to Programming with Java - Honors [1/2 credit]
In this course students will learn the basics of the Java programming language by programming simulations and games. The emphasis throughout the course is on the principles of object-oriented design. The course presumes no prior knowledge of programming. The course uses extensive project-based work, initially done individually by each student. As the course progresses students learn how to develop larger programs as part of a team. Students in the course are expected to spend an appreciable amount of time outside of class in project work and the homework and study needed for the course. Please note students cannot simultaneously enroll in Java along with AP Computer Science A. Or take Java after AP Computer Science A.
Robotics - Honors, Accelerated, College Prep [1/2 credit]
The course introduces students to the basics of robotics including both robotic hardware and software in a simplified form. A large focus of the course is on design analysis and engineering design theory. Much of the class time will be spend in teams designing, constructing, and analyzing functional robots programmed to perform some simple tasks. Students will also investigate the definition of a robot and the history of robotics through lectures, demonstration, and student research. Students will also produce a research paper on a topic related to robotics. There will be readings and research expected as part of this course.
Topics in Computer Science - Honors, Accelerated, College Prep [1/2 credit]
Prerequisite: Departmental approval
The course devotes approximately one quarter to exploration of hot topics in computer science under the direction of the teacher, and concludes with at least one quarter in which each student will explore a subject of interest to him in the area of computer science. Such topics for exploration can include the Linux operating system, animation, robotics, artificial intelligence, or advanced programming techniques in a language the student is already familiar with. Other projects are certainly possible since there are many other areas of interest in computer science. Each student will, among other things, be expected to present a well-written research paper and portfolio of his course work and present a multi-media presentation of the work that he has done. Enrollment limited to juniors and seniors.