SP19 Course Outline
Welcome to ITP 175: Concepts of Programming Languages!
Course Description
Presents instruction in the fundamental concepts of computer programming languages. Emphasis on architectural reasons behind programming language constructs. Provides an understanding of how and why programming languages work the way they do.
Method of Instruction
This course is taught be leveraging the wealth of open online content on computer science and programming created by faculty and developers around the world.
There will be videos to watch, exercises to complete, lots of writing and reflection, and of course - coding.
Not much of this course will be conducted on Canvas, we will use industry tools used by technical teams around the world whenever possible.
Instructional Materials
There is no required textbook for this course. All resources will be freely available online.
High-Speed Internet Required
As such, a broadband Internet connection is required, either at home or through trips to campus/library/cafe/etc.
Course Objectives
Upon completion of this course, you will be able to:
- Identify programming terminology and concepts.
- Describe the structured design building blocks applied within programming solutions.
- Understand algorithmic and computational thinking for efficient problem solving.
Grading and Evaluation
You will be graded in three types of activities throughout the course.
⚛️ Projects will take various forms and will primarily focus on demonstrating mastery of topics.
📝 Journals will be used for documenting your learning process. Self evaluation is critical in many work environments and understanding what you're struggling with and excelling at is a key skill for continuous learning throughout life.
💬 Chats will be text or video with other students or the professor conducted in Slack. Think of it as "participation" but also an opportunity to use a popular communication tool used on developer teams and see its strengths and weaknesses.
Assignment | % of Course Grade |
---|---|
⚛️ Projects | 50% |
📝 Journals | 30% |
💬 Chats | 20% |
Learning Sequence
Important dates and assignments are listed below.
As you can see below, the goal is to have one of each type of assignment every time new content is introduced. The last few weeks are currently reserved and will be used either to explore other programming languages or to adjust the pacing of the content depending on class performance.
Due Dates
All assignments are due Mondays at 9am unless otherwise noted.
Starts | Assignments | Module | Academic Calendar |
---|---|---|---|
01/14 | 📚💬📝⚛️ | 00 Technology Setup | |
01/21 | 📚🔁💬📝⚛️ | 01 Linux CLI: File System | MLK Jr Day 01/21 |
01/28 | No assignments due to codecademy issues | Last day to add 01/29 Last day to drop 01/30 Graduation Application Due 01/30 | |
02/04 | 📚🔁💬📝⚛️ | 02 Linux CLI: Editors, Environment, Scripting | |
02/18 | 📚🔁💬📝⚛️ | 03 Git & Github | |
03/04 | Spring Break 03/04 - 03/09 | ||
03/11 | 📚🔁💬📝⚛️ | 04 Programming concepts and JavaScript Intro | |
03/18 | 📚🔁💬📝⚛️ | 05 JavaScript: Strings, Arrays | |
03/25 | Last day to withdraw 03/26 | ||
04/01 | 📚🔁💬📝⚛️ | 06 JavaScript: Functions, Comparison | |
04/08 | 📚🔁💬📝⚛️ | 07 JavaScript: Objects | |
04/15 | 📚🔁💬📝⚛️ | 08 JavaScript: Iteration | |
04/22 | No assignments this week. | Last day of class 04/29 Student research/reading day 04/30 | |
04/29 | Any regrade requests must be emailed or Direct Messaged to the professor by Friday 05/03. | Final exams 05/01 - 05/07 | |
05/08 | Grades due 05/08 |
Teaching Philosophy
My objective as a professor is to be true to the meaning of the verb to profess. To affirm my allegiance to learning and my belief that constant life-long learning is a requirement in the world we live in.
Specifically, my goal is to show people how technology has replaced the need to remember a lifetime of irrelevant facts and to spend their energy analyzing relevant information and applying critical thinking strategies to create solutions. In short we all need to be a modern Sherlock Holmes.
The 21st century needs generations of complex problem-solving strategists and molding myself and others to meet these challenges is a problem I attempt to solve.
I will provide as much real life application as possible in every course I teach.
I will create an environment where students learn from themselves, each other, and myself.
I will engage students to use technology to their advantage at home, work, and in the classroom.
I will challenge systems regularly to ensure there is no better way.
I will lead by example.
RCC Course Policies
If you are enrolled in this course at RCC can find a version of this syllabus will all RCC/VCCS course policies in Canvas.