Cognitive Test for selection
Introduction Workshop @ Calcey
Semester 1
CS50's Introduction to Computer Science
- A broad and robust understanding of computer science and programming
- How to think algorithmically and solve programming problems efficiently
- Concepts like abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development
- Familiarity in a number of languages, including C, Python, SQL, and JavaScript plus CSS and HTML
- How to engage with a vibrant community of like-minded learners from all levels of experience
- How to develop and present a final programming project to your peers
- How to write a Web page
- Concepts of a markup language
- Basics of HTML5 and CSS
- Web design and style
- Page layout and flexbox
- Describe a relational database and explain relational database concepts.
- Design the schema of a relational database.
- Create database objects such as tables, keys, constraints, and views.
- Load tables with data from .CSV files.
- Demonstrate working knowledge of MySQL, PostgreSQL and IBM Db2.
- How to critically evaluate your role in workplace interactions
- How to employ strategies for active listening
- How to ask questions that move conversations forward
- How to communicate ideas clearly and succinctly
- How to assess needs of clients and colleagues
- Best practices for face-to-face and remote communication
Critical Thinking & Problem Solving
- How to perform strategic analysis and assessment
- How to perceive and assess a critical need and design a tailored solution
- How to identify key stakeholders and ensure their needs are met
- How to employ adaptive problem-solving
- How to work through obstacles collaboratively
- How to analyze failure to improve future performance
- How to understand the complexities of group dynamics and interactions
- How to motivate by improving group climate
- How to develop skills in leadership, problem-solving, conflict management, and other critical group dynamics
- How to assess team effectiveness and success
- Understand the elements of effective stories and how to use them in the workplace
- How to tailor your messaging to a defined target audience
- How to structure written messages for maximum audience impact, taking into consideration tone, style, point of view
- How various platforms convey messages differently in a professional setting
End semester exam at Calcey
Semester 2
- Learn the basics of C++ programming.
- Understand different data types and variable usage.
- Master various operators for C++ expressions.
- Gain proficiency in control structures (if, switch, loops).
- Explore arrays and string manipulation.
- Understand the concept and usage of pointers.
- Learn how to define and use functions for code modularity.
- Discover function overloading for flexible method creation.
- Understand the role of structures for user-defined data types.
- Be equipped with essential skills to write efficient C++ code.
Object Oriented Implementation Using C++
- Understand key object-oriented principles in C++.
- Create and work with classes and objects.
- Explore member functions within a class.
- Understand static members in classes.
- Learn about derived classes and inheritance.
- Study virtual functions and runtime polymorphism.
- Redefine operators for custom classes through operator overloading.
- Handle errors and exceptions in C++ with exception handling.
- Explore generic programming using templates.
- Describe version control and its place in social and collaborative coding and in DevOps.
- Explain basic Git concepts such as repositories and branches used for distributed version control and social coding.
- Create GitHub repositories and branches, and perform pull requests (PRs) and merge operations, to collaborate on a team project.
- Build your portfolio by creating and sharing an open-source project on GitHub.
- Perform basic SQL operations
- Create a database instance in the cloud
- Create tables and load data
- Query data using string patterns and ranges
- Sort and group data in result sets
- Invoke built-in database functions such as MIN(), MAX(), AVG(), etc.
- Work with various datatypes including INTEGER, CHAR, VARCHAR, DATE, TIME, TIMESTAMP
- Define the term NoSQL and the technology it references.
- Describe the major categories of NoSQL datastores (document, key-value, graph, etc.) and their architectural differences.
- List the most commonly used NoSQL datastores, their primary use cases and benefits (MongoDB, Cassandra, Cloudant, Couch DB, etc.).
- Understand the factors affecting return on investment for using locally hosted databases, versus hosted database versus DBaaS.
- Demonstrate hands-on working knowledge of MongoDB
- Demonstrate hands-on working knowledge of Cassandra
- Demonstrate hands-on working knowledge of Cloudant
AWS Cloud Practitioner Essential
- Define the cloud and how it works
- Differentiate between cloud computing and deployment models
- Describe the basic global infrastructure of the cloud
- Identify an appropriate solution using AWS Cloud services with various use cases
- Describe the Well-Architected Framework
- Explain the Shared Responsibility model
- Describe security services with the AWS Cloud
- How to apply the basic elements of the speech communication process
- Tools and methods for controlling public speaking anxiety
- How to craft a clear and impactful speech
- How to critique other communicators using the principles of this course
- How to identify main and supporting ideas
- How to utilize best practices for presenting quantitative data using images
- How to incorporate basics of visual design in everyday workplace presentations
- How to select impactful and appropriate images for various audiences to support your message
- How to understand visual hierarchy and other text-to-image relationships
End semester exam at Calcey
Semester 3
Data Structures & Algorithms II: Binary Trees, Heaps, SkipLists and HashMaps
- Develop mature Java programming skills by using recursion in Tree ADTs
- Investigate different nonlinear, linked data structures: Trees, Heaps, SkipLists and HashMaps
- Study the significant uses and applications of hierarchical tree structures
- Explore tree properties, and categorizing based on shape and order
- Design and implement the binary trees: BSTs and Heaps
- Examine edge cases and efficiencies in BST and Heap operations
- Understand the up-heap, down-heap and build-heap procedures
- Consider the probabilistic data structure, SkipLists, and randomization
- Implement a HashMap ADT with its key-value pairs
- Analyze the different collision strategies with HashMaps
- Compute amortized analysis for Heaps and HashMaps
Data Structures & Algorithms III: AVL and 2-4 Trees, Divide and Conquer Algorithms
- Improve Java programming skills by implementing AVLs and sorting algorithms
- Study techniques for restoring balance in AVL and (2-4) trees
- Distinguish when to apply single and double rotations in AVLs
- Investigate complex (2-4) trees that exhibit underflow and overflow problems
- Demonstrate the appropriate use of promotion, transfer and fusion in (2-4) trees
- Implement basic iterative sorting algorithms: Bubble, Insertion and Selection
- Explore optimizations to improve efficiency, including Cocktail Shaker Sort
- Contemplate two Divide & Conquer comparison sorting algorithms: Merge and Quick Sort
- Consider one non-comparison Divide & Conquer algorithm: LSD Radix Sort
- Analyze the stability, memory usage and adaptations of all sorting algorithms presented
- Study the time complexity for the AVLs, (2-4) Trees and sorting algorithms
- How to add JavaScript code in your Web site/Web app, and how to debug it
- How to make interactive Web sites through the DOM API
- How to change the CSS styles of HTML5 elements from JavaScript
- How to deal with HTML5 forms
- How to make basic graphics and animations using the HTML5 canvas
- How to adopt the 5 practices of Agile, a subset of DevOps: small batches, minimum viable product, pair programming, behavior- and test-driven development.
- How to create and refine a product backlog using the sprint planning process. Produce potentially shippable product increments with every iteration.
- How to write good user stories, estimate and assign story points and track stories using a kanban board. Incorporate Scrum artifacts, events, and benefits.
- How to create burndown charts to forecast the ability to meet a sprint goal. Use metrics to enhance performance, productivity, and client satisfaction.
Introduction to User Experience
- What's UX and why do we need it?
- When do we need UX, who does UX and how do we do UX
- Discuss the UX practice in terms of commonly used tools, challenges and wins
- Experiment the phases of a UX project (research, Ideation, prototyping and testing) and how they relate to each other
Building Web Applications in Django
- Describe and build a data model in Django
- Apply Django model query and template tags/code of Django Template Language (DTL)
- Define Class, Instance, Method
- Build forms in HTML
Automated Software Testing: Unit Testing, Coverage Criteria and Design for Testability
- How to test any software system using current state-of-the-arttechniques
- How to derive test cases that deal with exceptional, corner, and bad-weather cases by means of several different techniques
- The limitations of current testing techniques and how to decide on the best testing strategies for a given context
- How to develop testable architectures and to write maintainable test code
Automated Software Testing: Model and State-based Testing
- The key ideas behind advanced software testing techniques, such as mutation and property-based testing
- The current state-of-the-art in software testing research, such as the usage of artificial intelligence to automate testing activities
- The limitations of current testing techniques, and how todetermine the best testing strategies for a given context
End semester exam at Calcey